前言¶
在 DeepSeek Harness(DSH)的使用中,子代理通常会自动继承父会话的 agent preset 配置。这种继承机制虽然方便,但在处理需要特定 RL(强化学习)轨迹的模型时,如果没有专门的引导配置,子代理在首次请求时可能无法以最佳状态启动。DSH 的 complete-persona 机制使得通过 hook 覆盖子代理配置变得不可靠。该插件旨在通过安装一个 agent preset,解决子代理启动状态不一致的问题。
是什么¶
dsh-anchored-subagent 是一个社区维护的 DSH 插件,由 GY-Bai 开发。它通过一套“暗号”机制,确保主代理和所有子代理在会话开始时都使用 Minimal condition(bash + str_replace_editor + Minimal persona)启动,随后解锁完整的工具目录。该插件基于 DeepSeek RL 训练轨迹设计,旨在让模型在首次请求时进入最强的行为轨迹。
核心功能¶
- 启动引导:安装 agent preset,使主代理和子代理以 Minimal condition(
bash+str_replace_editor+ Minimal persona)启动。 - 工具解锁:在首次请求后解锁完整工具目录。
- 自动继承:子代理自动继承父级的 agent preset,无需额外配置。
- Persona 处理:处理自定义子代理 persona(启动时剥离,升级后恢复)。
安装与启用¶
使用官方安装命令添加插件,安装后需重启 DSH。
dsh plugin add github:GY-Bai/dsh-anchored-subagent
重启 DSH 后,在会话中选择 dsh-anchored-subagent agent preset(或设为默认)。
插件会将 preset 复制到本地目录:
~/.dsh/.agent-presets/dsh-anchored-subagent/
典型用法¶
该插件的工作流程分为两个阶段:
- Bootstrap 阶段:在首次模型请求(主代理或子代理)时,仅提供
bash和str_replace_editor工具,以及完整的 Minimal persona。此时模型会以 RL 训练时的标准轨迹(如We need...)开始思考。 - Promoted 阶段:在第一次持久的工具调用(
tool/call)或助手消息(assistant/message)后,插件自动将完整工具目录恢复给代理,使其可以使用所有工具。
对于子代理,如果配置了自定义 persona,该插件会在引导阶段将其剥离,确保子代理以纯净的 Minimal persona 启动;待子代理完成首次持久请求后,原始 persona 会重新恢复。
配置¶
编辑配置文件 ~/.dsh/.agent-presets/dsh-anchored-subagent/agent.cordis.yml。关键配置项如下:
| 配置项 | 默认值 | 说明 |
|---|---|---|
promoteOn |
either |
提升触发条件,可选 either、tool-call 或 assistant-message。either 表示任意一种情况均可触发。 |
bootstrapMaxTokens |
null |
可选的首次请求输出限制(Token 数)。 |
suppressedContextSources |
["agent-instructions","skill-catalog"] |
控制引导阶段自动剥离注入的上下文源。设置为空数组 [] 可禁用剥离。 |
适用场景与注意¶
该插件适用于需要在子代理启动时强制使用 Minimal condition 的场景,以获得最佳的 RL 轨迹响应。
需要注意以下几点:
* 需重启 DSH 以应用更改。
* 这是一个社区插件,未获得 DeepSeek 官方背书,基于 MIT 许可证开源。
* 插件利用了 DeepSeek RL 训练轨迹中的“暗号”机制。
* 支持通过 suppressedContextSources 控制上下文注入。
总结¶
dsh-anchored-subagent 通过在启动阶段强制使用 Minimal condition,确保 DeepSeek 模型能够进入其最强的 RL 轨迹,随后再解锁完整能力。这对于需要稳定子代理行为的复杂工作流非常有用。