DHS-multi-agent-plugin:把多智能体编排装进 DeepSeek Harness

前言

用 DSH 写智能体,单个 Agent 循环能覆盖大部分线性任务。但任务一旦多起来——先调研、再审查、最后汇总——你就得自己处理任务依赖、并行调度和失败恢复。这些逻辑写散在各处,既难测试也难复用。

下面介绍 Li3NGa 的 DHS-multi-agent-plugin,它把这部分编排基础设施做成了一个独立插件。

这是什么

DHS-multi-agent-plugin 是一个 DeepSeek Harness 插件,README 里的一句话定位是「将 DeepSeek Harness 变成强大的多智能体编排引擎」。仓库由 Li3NGa 维护,采用 MIT 许可证,npm 包名为 dhs-multi-agent,当前版本 0.2.0。

它解决的问题是:让多个智能体按声明的依赖关系协作,独立任务自动并行,失败时在预算内恢复,全程可观测。

仓库包含两套运行时:TypeScript Native 运行时(生产源代码位于 packages/dsh-multi-agent)和 Python 运行时(src/deepseek_multi_agent_plugin,带 CLI/HTTP/MCP 适配器)。docs/ 目录提供使用指南、API 参考、策略说明、部署指南、HTTP API、MCP 集成等文档。

核心功能

规划与路由

  • Planner:从自然语言意图生成结构化任务图;
  • Validator:严格的计划验证,拒绝不安全或格式错误的计划;
  • AgentRouter:基于能力的智能体路由,支持显式分配和自动匹配。

从 README 的架构图看,执行链路是 Planner → Validator → Router,之后分流到 Supervisor(按策略协作)或直接走 DAG 调度,最终由 AgentRunner 调用真实 DSH,Recovery 与 Diagnostics 模块贯穿其中。

DAG 并行调度

调度器按有向无环图执行任务:独立任务自动并发,依赖关系被保留,并行度在依赖约束下最大化,支持任意复杂的任务依赖拓扑。

有界容错恢复

恢复机制是「有界」的,四种手段各有边界:

  1. Retry:超时失败在预算内自动重试;
  2. Repair:不可用的智能体自动从路由池移除;
  3. Replan:依赖失败触发确定性重规划;
  4. Abort:取消操作永不触发恢复。

运行时可观测性

  • RuntimeDiagnostics:运行时诊断指标;
  • RunRegistry:运行注册与状态追踪;
  • Metrics 收集 + Observer 模式;
  • 诊断在内存内完成,不需要数据库。

安全

  • RBAC 角色层次访问控制;
  • HMAC 时序安全令牌认证;
  • CSRF 防护与输入验证;
  • 敏感信息自动脱敏。

协作策略

内置四种协作策略,均可直接调用:

  1. Sequential:顺序串行执行;
  2. Broadcast:广播并行执行;
  3. Relay:接力式传递;
  4. DAG:任意依赖图直接执行。

安装与启用

先装包:

npm install dhs-multi-agent

运行要求:Node.js >=22.14.0,且宿主环境需提供 DeepSeek Harness / Cordis 运行时。插件的依赖包括 @deepseek-ai/cordis ^4.0.1,以及 @deepseek-ai/dsh-agent、@deepseek-ai/dsh-llm、@deepseek-ai/dsh-session(均为 0.1.1-rc.2)。

再在宿主里注册插件:

import { apply } from 'dhs-multi-agent'

apply(ctx, {
  concurrency: 4,
  defaultTimeoutMs: 60_000,
})

apply 是插件入口,这里的配置把并发数设为 4,任务默认超时 60 秒。注册后即可通过 ctx.multiAgent 调用编排接口。

典型用法

运行一个 DAG 任务

runDag 传入任务数组,靠 dependsOn 声明依赖:

const result = await ctx.multiAgent.runDag([
  {
    id: 'research',
    agentId: 'researcher',
    prompt: '收集相关事实。',
  },
  {
    id: 'review',
    agentId: 'critic',
    prompt: '审查研究结果。',
    dependsOn: ['research'],
  },
])

这段代码里 review 依赖 research,会按依赖顺序执行;如果再加一个无依赖的任务,它会和 research 并发跑。

带恢复的编排

需要容错时改用 runWithRecovery,显式传入智能体能力表和恢复预算:

const result = await ctx.multiAgent.runWithRecovery(plan, {
  runId: 'run-1',
  input: '用户意图',
  agents: [
    { id: 'researcher', capabilities: ['research'] },
    { id: 'writer', capabilities: ['writing'] },
  ],
  recovery: { maxAttempts: 3, maxReplans: 2 },
})

maxAttempts: 3 限定重试上限,maxReplans: 2 限定重规划次数。

Python 示例

仓库 examples/ 目录提供可直接运行的脚本:

# 演示协作策略(无需 API Key)
python examples/demo_strategies.py

# 真实 DeepSeek 三人辩论
DEEPSEEK_API_KEY=sk-xxx python examples/demo_deepseek_team.py

# 启动 HTTP 服务
python examples/run_http_server.py

demo_strategies.py 不需要 API Key,可以先跑通策略逻辑;demo_deepseek_team.py 演示真实 DeepSeek 三智能体辩论;想通过 HTTP 调用时,用 run_http_server.py 起服务,接口文档在 docs/http_api.md

公共 API

apply 外,包还导出核心运行时(AgentRunner、Scheduler、Task、TaskGraph)、四个策略函数(runSequential、runBroadcast、runRelay、runDag)、Supervisor(Supervisor、createSupervisor)、恢复(createRecoveryManager)和诊断(RuntimeDiagnostics、RunRegistry、createRuntimeDiagnostics)。需要更细的控制时,可以绕过高层封装直接组合这些模块。

适用场景与注意

适合的场景:

  • 任务间存在依赖关系,需要 DAG 调度而非简单串行;
  • 多个智能体按角色协作(调研、写作、审查等);
  • 长流程需要失败恢复和运行时指标。

注意以下几点:

  1. 插件以当前 dsh 进程的权限运行,安装前应检查源码与许可证。仓库采用 MIT 协议,源码公开在 GitHub,可以自行审阅;
  2. 宿主环境需提供 DeepSeek Harness / Cordis 运行时,Node.js 版本不得低于 22.14.0;
  3. 当前版本为 0.2.0,具体配置项与接口以仓库 docs/ 下的文档为准。

测试方面,仓库包含 TypeScript 164+ 单元测试和 Python 386+ 测试用例,覆盖集成、Smoke 与安全测试,可用 pnpm --dir packages/dsh-multi-agent testpytest tests/ -q 本地跑一遍。

结尾

回顾一下:DHS-multi-agent-plugin 把规划、路由、DAG 调度、有界恢复和运行时诊断打包成一套 DSH 插件,让你不必自己拼装多智能体编排的基础设施。经过上面的步骤,从一个 runDag 最小示例到带恢复的完整编排都能跑起来。

  • 社区目录页:https://www.skillhub.cn/plugins/Li3NGa/DHS-multi-agent-plugin
  • GitHub 仓库:https://github.com/Li3NGa/DHS-multi-agent-plugin
羽毛球分组比赛记分
小程序二维码

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

小夜