dsh-agent-dispatch:自定义 Agent 与自动路由编排

前言

DeepSeek Harness 的插件生态强调灵活性与扩展性。在单次对话流中处理多领域任务、维护多个不同人设的上下文或编排复杂的流水线流程,通常需要频繁切换 Agent 或手动拆解任务。dsh-agent-dispatch 插件提供了一套机制,允许用户定义独立的 Agent 子代理,支持自动路由与优先级切换,并通过小队模板实现依赖驱动的编排。

核心功能

该插件主要解决以下几个问题:

  1. 自定义 Agent 与小队编排:用户可完全自定义 Agent 的系统提示词、触发域与人设,并通过小队模板定义多步骤的执行流程。
  2. 自动路由与模型优先级切换:为每个 Agent 配置模型路由表,当首选模型失败时自动切换至下一个可用模型。
  3. 悬浮活动球 UI:提供常驻右下角的悬浮球,用于快速唤出运行状态、历史记录及 Agent 列表,实现一键委派。
  4. 上下文复用与续聊:支持对已存在的 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 调用:

  1. agent_dispatch(agentId, task):将任务委派给指定 Agent,返回 childId。
  2. agent_followup(childId, message):对已有 Agent 进行追问,复用上下文。
  3. agent_list():列出 Agent 目录,用于路由判断前的查询。
  4. agent_squad(squad_id, goal):按小队模板展开目标。
  5. agent_import_skill(skillDir?):将 ~/.dsh/skills/<name>/SKILL.md 一键导入为 Agent。

触发机制

用户可以通过以下三种方式触发委派:

  1. 对话自动路由:任务命中 Agent 的 triggers,主 Agent 自动调用 agent_dispatch。
  2. / 触发器菜单:输入 / 唤起候选菜单,选中后插入 $id 前缀。
  3. 悬浮活动球:点击右下角悬浮球,直接从弹窗中选择 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
羽毛球分组比赛记分
小程序二维码

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

小夜