dsh-solo-agent:DSH 单人编排与上下文优化插件

前言

在 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 层挂载,仅供子代理使用。

闭环调度机制

插件实现了闭环调度流程,通过不同的子代理分工协作:

  1. subagent_explore:负责只读研究,初始化一次,产出目标测试用例、测试命令和根因分析。
  2. 迭代循环(最多 5 轮):
    • subagent_editor:聚焦代码编辑,不自测。
    • subagent_general:负责执行测试并返回原始输出。
    • 决策:Solo 主 Agent 仅依据 subagent_general 返回的原始测试输出进行决策。
  3. 对抗性验证:当发生大改动或高风险操作且测试通过后,启动 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 插件。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜