将 DSH Agent Preset vs Plugin 接入 DeepSeek API

DeepSeek Harness 强调“一切皆插件”,但一个插件不会自动成为 Agent。理解这个区别,才能正确安装社区项目、设计组合,并判断某个项目是否应进入原生 Agent 目录。

一句话定义

  • Plugin 提供某项能力或服务,例如工具、模型适配器、记忆层、UI 面板、Hook、调度器或存储 Provider。
  • Agent Preset 组合某个 Session 获得的能力,包括工具、人设、提示段、委派行为与压缩策略。
  • DSH 原生 Agent 是利用这种组合完成明确工作的 Preset 或 Harness 发行版。

磁盘文件结构

用户 Preset 通常是一个目录:

my-agent/
├── agent.cordis.yml
├── preset.yml          # 可选的展示元数据
├── skills/             # 可选的 Preset Scope Skills
└── local-plugin.mjs    # 可选的本地插件

agent.cordis.yml 是可执行组合。preset.yml 保存名称和描述等展示元数据;它不会提供信任,也不负责定义 Preset ID。目录名称才是 ID。

Host Plane 与 Agent Plane

Host Plane 负责进程级基础设施:注册表、Session 持久化、凭证、设置、模型路由、沙箱与审批服务。Agent Plane 提供某个选中 Session 实际看到的内容:作用域工具、提示段、人设与工作流行为。

把进程级服务重复放进每个 Preset,可能造成重复注册,或让 Host Consumer 永远等待只挂载在单个 Agent Scope 中的服务。原生 Agent 作者必须先判断一行配置属于哪个 Plane。

为什么 Preset 里仍然包含 Plugin

“Preset vs Plugin”不是两个互斥的包格式。Preset 本来就是由 Plugin 组合而成。它可以引用官方包、社区包、相对路径本地模块和 Skill 目录。区别描述的是角色:

  • Plugin 实现零件;
  • Preset 选择零件并限定作用域;
  • 运行中的 Agent 是这个 Session 组合的结果。

哪些项目不算原生 Agent

  • 改变颜色的主题;
  • 让 DSH 能调用某模型的 Provider;
  • 切换 Preset 的按钮;
  • 可供所有 Preset 使用的记忆插件;
  • 支持 DeepSeek API、但不运行在 Harness 上的通用 Agent;
  • 只在 README 描述 Agent,却没有发布原生组合的项目。

这些项目仍可能非常有价值,只是应该进入插件、客户端或集成目录,而不是原生 Agent 数据集。

信任边界

用户 Preset 的权限等于它引用的插件权限。复制官方 Preset 不会让之后添加的包变成官方或经过审查。为敏感工作区选择 Preset 前,应检查每个包和本地模块。

发布清单

  1. 发布 agent.cordis.yml 与清晰的 preset.yml 元数据。
  2. 写明兼容的 DSH Tag。
  3. 说明所有非官方插件和权限要求。
  4. 除非架构确实需要,否则不要把 Host 服务放进 Agent Plane。
  5. 提供最小安装方式和卸载方式。
  6. 测试重复挂载以及同时启动多个 Session。
  7. 尽可能提供真实产物或工作流截图。
  8. 如实描述限制,不把社区项目称为“官方”。

常见问题

Agent Preset 只是系统提示词吗?

不是。它可以为单个 Session 组合工具、插件、Skill、人设、策略和工作流行为。

能创建 Subagent 的 Plugin 就是 Agent 吗?

它可以提供委派能力,但这不代表它本身已经成为面向明确任务的完整 Agent Preset。

为什么原生 Agent 数量比插件少得多?

因为原生 Agent 目录采用更窄的结构规则:项目必须发布并使用原生 Session 组合来完成明确工作。