前言¶
DeepSeek Harness 的插件生态强调灵活性与扩展性。在单次对话流中处理多领域任务、维护多个不同人设的上下文或编排复杂的流水线流程,通常需要频繁切换 Agent 或手动拆解任务。dsh-agent-dispatch 插件提供了一套机制,允许用户定义独立的 Agent 子代理,支持自动路由与优先级切换,并通过小队模板实现依赖驱动的编排。
核心功能¶
该插件主要解决以下几个问题:
- 自定义 Agent 与小队编排:用户可完全自定义 Agent 的系统提示词、触发域与人设,并通过小队模板定义多步骤的执行流程。
- 自动路由与模型优先级切换:为每个 Agent 配置模型路由表,当首选模型失败时自动切换至下一个可用模型。
- 悬浮活动球 UI:提供常驻右下角的悬浮球,用于快速唤出运行状态、历史记录及 Agent 列表,实现一键委派。
- 上下文复用与续聊:支持对已存在的 Agent 子会话进行追问,复用上下文而不重复新建。
安装¶
安装该插件需要 DeepSeek Harness 的环境。通过命令行注册源码即可启用:
dsh plugin --profile <你的 profile 名> add github:kiligzzz/dsh-agent-dispatch
安装后,数据目录与配置文件将统一存放在宿主配置目录下:
$DSH_HOME/data/dsh-agent-dispatch/
├── agents.json # Agent 定义列表
├── squads.json # 小队模板列表
└── dispatches.jsonl # 决策日志(上限 2000 行,自动轮转)
配置与定义¶
插件安装后默认为空,需用户自行配置。
定义 Agent¶
在 agents.json 中定义 Agent。核心字段包括 id、triggers(触发域)、routes(模型路由)以及 systemPrompt(人设)。
{
"version": 1,
"agents": [
{
"id": "log-tracer",
"name": "线上排查员",
"emoji": "🛠️",
"triggers": "报错日志;订单异常;接口报错;线上问题排查",
"systemPrompt": "……(完整 Agent 系统提示词 / persona)",
"routes": [
{ "provider": "deepseek-official", "model": "deepseek-v4", "effort": "high" },
{ "provider": "kimi-coding", "model": "k3-256k", "effort": "high" }
],
"enabled": true
}
]
}
- routes:模型优先级表,首个失败自动换下一个。
- effort:控制算力投入,支持
minimal/low/medium/high/xhigh/max。 - triggers:当用户消息命中这些关键词时,主 Agent 会自动触发委派。
定义小队¶
在 squads.json 中定义小队模板。steps 数组定义执行步骤,dependsOn 控制依赖关系。
{
"version": 1,
"squads": [
{
"id": "my-squad",
"name": "我的小队",
"steps": [
{ "agentId": "log-tracer", "phase": "日志", "dependsOn": [], "instruction": "{input}" },
{ "agentId": "sql-analyst", "phase": "数据", "dependsOn": [], "instruction": "查表核对:\n{input}" },
{ "agentId": "code-reviewer", "phase": "审查", "dependsOn": [0, 1], "instruction": "基于日志+数据:\n{input}\n\n【日志结论】\n{prev:0}\n\n【数据结论】\n{prev:1}" }
]
}
]
}
dependsOn:空数组表示首批并行,否则等待前置步骤完成。instruction:支持{input}(原始目标)和{prev:N}(引用前置步骤结果)。
使用方式¶
插件提供 5 个核心工具,通过主 Agent 调用:
- agent_dispatch(agentId, task):将任务委派给指定 Agent,返回
childId。 - agent_followup(childId, message):对已有 Agent 进行追问,复用上下文。
- agent_list():列出 Agent 目录,用于路由判断前的查询。
- agent_squad(squad_id, goal):按小队模板展开目标。
- agent_import_skill(skillDir?):将
~/.dsh/skills/<name>/SKILL.md一键导入为 Agent。
触发机制¶
用户可以通过以下三种方式触发委派:
- 对话自动路由:任务命中 Agent 的
triggers,主 Agent 自动调用agent_dispatch。 /触发器菜单:输入/唤起候选菜单,选中后插入$id前缀。- 悬浮活动球:点击右下角悬浮球,直接从弹窗中选择 Agent 或小队卡片进行委派。
显式指定¶
在用户消息中显式指定 Agent ID,使用 $<id> 前缀(例如 $log-tracer 查下 orders)。主 Agent 识别后直接委派,不进行路由判断或追问。
数据与日志¶
所有委派操作都会写入 dispatches.jsonl 文件。系统会通过 mergeDispatchHistory 合配 dispatch(开始)与 result(结束)行。为了防止日志膨胀,文件限制为 2000 行,超出后自动重写保留尾部。
注意事项¶
- 无内置内容:插件安装后为空,必须手动创建 Agent 或小队。
- 零依赖:不依赖
@deepseek-ai/dsh-tools,规避官方双实例 Bug。 - 单用建议:建议仅使用一套委派体系(如本插件),避免与
dsh-agent-teams等其他队长式插件同时使用,以免产生冗余子代理。
参考链接¶
- 插件目录:https://www.skillhub.cn/plugins/kiligzzz/dsh-agent-dispatch
- GitHub 仓库:https://github.com/kiligzzz/dsh-agent-dispatch