前言¶
在 DSH(DeepSeek Harness)的插件化生态中,处理复杂任务时,单一 Agent 往往难以兼顾探索、编辑、验证和测试。如果随意开放文件系统工具,上下文占用会迅速膨胀,且模型调度容易陷入混乱。dsh-solo-agent 是一个解决这一问题的插件,它向用户 agent-presets 注入 solo preset,通过严格的权限控制和闭环调度机制,优化上下文占用和模型调度。
插件定位¶
- 名称:dsh-solo-agent
- 作者:TheHeartFickle
- 类别:模型推理
- 许可证:MIT
这是一个 DSH 插件,核心功能是向用户的 agent-presets 注入 solo preset。它通过隔离主 Agent 与子 Agent 的工具权限,实现闭环调度,从而在不牺牲任务复杂度的前提下控制上下文大小。
核心设计¶
Solo 主 Agent 的编排者角色¶
Solo 主 Agent 是纯编排者,不包含文件系统(shell/fs)和内容编辑工具。在模型可见目录中,它被隐藏了 bash、pwsh、read、write、edit、glob、grep 和 str_replace_editor 等工具。
Solo 主 Agent 仅保留必要的工具:ask_user_question、todo_write、skill 以及 4 个前台 subagent 工具。文件系统和 shell 工具由 solo-bootstrap.mjs 在 preset 层挂载,仅供子代理使用。
闭环调度机制¶
插件实现了闭环调度流程,通过不同的子代理分工协作:
subagent_explore:负责只读研究,初始化一次,产出目标测试用例、测试命令和根因分析。- 迭代循环(最多 5 轮):
subagent_editor:聚焦代码编辑,不自测。subagent_general:负责执行测试并返回原始输出。- 决策:Solo 主 Agent 仅依据
subagent_general返回的原始测试输出进行决策。
- 对抗性验证:当发生大改动或高风险操作且测试通过后,启动
subagent_verify进行对抗性验证,返回 PASS/FAIL/PARTIAL。
子代理 minimal 锚定¶
插件借鉴了 anchored-standard 的机制,实现了子代理的 minimal 锚定。该机制只对 delegationDepth > 0 的子代理生效。这意味着 Solo 主 Agent 本身不受锚定限制,保证了全局调度的灵活性。
压缩功能¶
插件默认启用一组压缩功能以优化上下文:
* dsh-compaction-basic
* dsh-compaction-tool-result-pruner
* dsh-command-compact
角色分工¶
插件在 lib/roles.js 中维护了角色注册表。以下是各角色的职责与工具可见性:
| 角色 | 职责 | 可见工具 | Skill |
|---|---|---|---|
subagent_explore |
只读研究,产出 target tests / test command / root-cause | read, read_image, glob, grep, bash, web_search, web_fetch | 无 |
subagent_editor |
聚焦编辑,不自测 | read, write, edit, str_replace_editor, glob, grep, bash | 无 |
subagent_verify |
对抗性验证,返回 PASS/FAIL/PARTIAL | read, read_image, glob, grep, bash, skill | 有 |
subagent_general |
杂活/测试执行,返回原始输出 | read, write, edit, str_replace_editor, glob, grep, bash, web_search, web_fetch, skill | 有 |
项目结构与典型用法¶
插件通过 dsh.plugin.json 中的配置将 solo preset 注入到系统中。其内部结构包含以下关键文件:
dsh.plugin.json:插件清单,定义contributes.presets = ["solo"]。lib/index.js:负责写入或更新~/.dsh/.agent-presets/solo。templates/solo-bootstrap.mjs:负责子代理 minimal 锚定逻辑以及主 Agent 的目录过滤。templates/compaction-epoch.mjs:用于压缩后重新锚定的 epoch 跟踪。
开发者可以通过以下命令进行测试和打包:
npm test
npm run package:registry
适用场景与注意¶
- 适用场景:需要高度结构化工作流、对上下文大小敏感、且任务需要明确分工(探索-编辑-测试-验证)的场景。
- 注意:
- Solo 主 Agent 不受锚定影响,这是其全局调度的关键。
- 压缩功能依赖外部插件(如
dsh-compaction-basic等),需确保这些依赖已安装。
总结¶
dsh-solo-agent 提供了一套严谨的 Agent 分工与调度方案,通过限制主 Agent 的工具权限和引入闭环验证机制,有效解决了上下文占用和模型调度问题。对于需要精细控制智能体行为的高级用户,这是一个值得尝试的 DSH 插件。