DSH Agent Preset vs Plugin
将 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 前,应检查每个包和本地模块。
发布清单
- 发布
agent.cordis.yml与清晰的preset.yml元数据。 - 写明兼容的 DSH Tag。
- 说明所有非官方插件和权限要求。
- 除非架构确实需要,否则不要把 Host 服务放进 Agent Plane。
- 提供最小安装方式和卸载方式。
- 测试重复挂载以及同时启动多个 Session。
- 尽可能提供真实产物或工作流截图。
- 如实描述限制,不把社区项目称为“官方”。
常见问题
Agent Preset 只是系统提示词吗?
不是。它可以为单个 Session 组合工具、插件、Skill、人设、策略和工作流行为。
能创建 Subagent 的 Plugin 就是 Agent 吗?
它可以提供委派能力,但这不代表它本身已经成为面向明确任务的完整 Agent Preset。
为什么原生 Agent 数量比插件少得多?
因为原生 Agent 目录采用更窄的结构规则:项目必须发布并使用原生 Session 组合来完成明确工作。