前言¶
DeepSeek Harness (DSH) 的插件机制允许开发者自定义 Agent 的行为。在常见的 Agent 工作流中,顶层 Agent 往往会直接调用工具(如读取文件、搜索网页、执行代码)。dsh-outsourcing-expert 插件提供了一套预设,强制顶层 Agent 不执行任何非管理类的工具调用,所有具体工作必须通过 subagent 委托给子智能体完成。
核心机制:硬拦截与委托¶
该插件在 tools/pre-execute 阶段对工具调用进行拦截。
对于非管理类工具(read, write, pwsh, bash, grep, web_search, workflow, skill 等),插件会直接返回 { kind: 'deny' },并要求 Agent 改用 subagent 或 subagent_fork 将任务外包。
仅允许的“管理类”工具包括:
* 沟通与规划:ask_user_question、todo_write、exit_plan_mode
* 目标管理:get_goal、create_goal、update_goal(需先询问下属建议)
* 委派操作:subagent、subagent_fork
* 照看下属:list_subagent_models、list_agents、send_message、interrupt_agent
子 Agent 不会受到同样的拦截限制。
侦察与能力表¶
在第一次委托前,插件要求执行一次“侦察”流程,以建立可用模型的能力表。
- 列出模型:调用
list_subagent_models获取授权模型列表。 - 联网调研:随机挑选一个模型作为“侦察兵”,通过
web_search查询各模型的擅长领域与口碑,并将结果按固定格式整理成能力表。 - 缓存结果:侦察结果会被持久化到
<DSH_HOME>/outsourcing-expert/models.json(即~/.dsh目录)。 - 后续使用:后续会话直接读取该 JSON 文件,不再重复联网搜索。
该能力表只作为选人依据,不会直接展示给用户。
三个预设模式¶
插件包声明了三个 Agent preset,其区别在于选人规则和纪律强度:
outsourcing-expert(外包高手)¶
标准模式。按照任务类型和难度,从能力表中选择最合适的模型。难度分级为:简单(轻量快速)、中等(均衡)、困难(代码专精)、极难(旗舰强推理)。
outsourcing-expert-reverse(独具慧眼)¶
反向模式。配置项 reverseHiring 为 true。故意选择能力表中“不适合该任务”的模型进行委派。
leader(领导模式)¶
配置项 mode: leader。不硬拦截任何干活工具,保留 Agent 的执行者身份。插件仅将其作为执行者 + 委派者,并注入同样的全局能力表供其参考。
安装与启用¶
使用官方 npm 包安装:
dsh plugin --profile <profile> add dsh-outsourcing-expert
安装后,新建会话并选择对应的 preset。该插件仅对声明了这三个 preset 的会话生效,其他 preset 完全不受影响。
注意事项¶
- 首次使用:必须先完成一次侦察,否则无法发起第一条委托。
- 领导模式差异:领导模式不硬拦截,仅提供能力表参考,具体纪律仍由 Agent 自身遵守。
- 缓存管理:能力表缓存由插件自动管理。可通过命令
/outsourcing-models查看缓存状态,或/outsourcing-models-clear清空。