前言¶
在 DeepSeek Harness (DSH) 中,子代理(subagent)通常继承主代理的模型配置。如果缺乏显式控制,子代理在处理复杂任务时可能消耗过多的推理算力或输出 Token,导致成本失控或任务超时。
dsh-orquestrator 插件通过在代码层面强制执行模型选择、推理努力上限和输出 Token 限制,解决了这一问题。无论通过何种工具启动子 DSH,插件都会介入,确保子代理使用指定的模型和配置。
插件定位¶
- 名称:dsh-orquestrator
- 描述:DeepSeek Harness 插件,用于选择子代理运行的模型,带有推理努力上限和输出 Token 限制,在每次子 DSH 启动时强制执行。
- 维护者:frederico-kluser
- 类别:模型推理
- 许可证:MIT
核心功能¶
-
模型选择
允许用户为子代理指定特定的模型。该选项适用于所有类型的子代理,包括 workflow 启动的代理、ralph 轮次、单次后台任务以及代理团队。如果未选择,子代理将继承主代理的模型。 -
推理努力上限与输出 Token 限制
插件为每个受控的子代理设置了推理努力上限和输出 Token 限制。这防止了子代理在处理边缘情况时耗尽整个预算。 -
代码强制执行
与普通的提示词指令不同,此插件在代码层面进行强制。插件充当了 DSH 启动子进程的守门人,主代理无法通过指令绕过这些限制。 -
全局代理技能
插件内置了全局代理技能orchestrate-subagents。默认情况下,该技能在对话框中处于勾选状态,并随消息发送。该技能旨在教导主代理将工作拆解为小块,并行运行子代理,并使用验证子代理检查结果。 -
原生 UI 集成
插件提供与 DSH 原生外观一致的对话框。用户可以在发送消息前进行配置。
安装与启用¶
使用官方安装命令添加插件:
dsh plugin --profile web add github:frederico-kluser/dsh-orquestrator
重要提示:安装或更新插件后,必须重启 dsh 进程,而不仅仅是刷新浏览器页面。插件的宿主端在 dsh 启动时加载,浏览器端仅在页面加载时加载。仅刷新页面会保留旧的宿主端运行(以及旧的守门机制),导致插件行为异常。
典型用法¶
-
发送消息
在编辑器中输入任何内容并发送。无论消息是纯文本、@file引用还是/skill调用,插件都会在消息发送前弹出一个对话框。 -
配置选项
- 子代理模型:开启开关并从下拉列表中选择模型。该模型将应用于所有子代理。如果关闭,子代理将使用主代理的模型。
- 推理努力:选择推理努力级别(低到高)或“模型默认”。该选项始终可见。
- 编排技能:勾选“orchestrate-subagents”复选框以应用内置技能。如果消息中已包含
/orchestrate-subagents令牌,该复选框将锁定并显示为已选中。
-
发送与取消
- 点击“Send with these options”发送消息。
- 点击“Cancel”、“Esc”或“✕”按钮将中止发送。这不会发送任何内容,不会出现气泡,且文本保留在编辑器中作为草稿。
-
按需打开
使用/orquestrar命令可随时打开相同的对话框,用于修改或清除已存储的配置。
适用场景与注意事项¶
- 适用场景:需要精细控制子代理模型和资源消耗的开发者,希望避免子代理无限制消耗 Token 或推理算力的情况。
- 注意事项:
- 对话框针对每次发送都会弹出,无法设置“不再询问”选项。
- 插件以 DSH 进程的权限运行,安装前应检查源码与许可证(MIT)。