安装
在 DeepSeek Harness 里通过 dsh-market 安装
dsh plugin --profile web add dshmarket
或使用命令行
dsh plugin --profile web add dsh-multi-model-orchestrator
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。
README
一个 DeepSeek Harness(dsh)插件:让主 AI 成为多模型协作的「主脑」。任务复杂时,它会把任务拆解成多个子任务,并分派给你所配置的最合适模型(GLM / Kimi / Qwen / 任意 OpenAI 兼容路由)上的子代理,同时按 provider/model 统计 token 用量。
功能
- 多模型编排指引 —— 注入一段系统提示,引导主脑拆解复杂任务、用
list_subagent_models查看可用路由,并通过subagent工具带provider/model参数把每个子任务分派出去。 - 按模型优缺点分派 —— 你只需在配置里写明各路由的优缺点(见配置),主脑便会据此分派(复杂推理给强模型、简单量大给快模型)。
- 按模型查看 token 用量 ——
model_token_usage工具按provider/model报告输入/输出/缓存读写 token 与请求次数,进程内累计。
插件不改动任何 harness 内部。所有模型路由与子代理允许列表都是普通的 harness 配置——见 examples/settings.yaml。
安装
安装到某个 dsh profile(通常是 web):
dsh plugin --profile web add dsh-multi-model-orchestrator
或从 git 仓库安装:
dsh plugin --profile web add github:YOU/dsh-multi-model-orchestrator
之后重启 harness(或热重载 profile)。插件通过自身的 cordis.patch.yml 作为一个 profile 层加载。
快速开始
在
$DSH_HOME/settings.yaml(默认~/.dsh/settings.yaml)加入第三方模型路由。GLM / Kimi / Qwen 现成可粘贴的预置见 examples/settings.yaml。每个路由只需在apiKeyEnv对应的位置填一个 API Key(环境变量、$DSH_HOME/.credentials.yaml或 Web「模型」页均可)。开启子代理模型选择,让主脑能为每个子代理挑模型:
subagent-model-selection: enabled: true allowedModels: - { provider: glm, model: glm-4.6 } # ...其它路由(可选)添加模型 Notes,供主脑分派时参考:
multi-model-orchestrator: modelNotes: glm/glm-4.6: description: 智谱旗舰,强推理。 strengths: 复杂推理、编码、Agent 工具调用 weaknesses: 较慢、较贵重启 harness 后直接提出复杂任务,例如:
把这件事拆成并行的子任务,分别派给最合适的模型。
API Key
密钥在每个请求时经各路由的 apiKeyEnv 解析,任选其一提供:
- 环境变量:按你路由里写的名字,如
GLM_API_KEY/KIMI_API_KEY/DASHSCOPE_API_KEY。 - 凭据库
$DSH_HOME/.credentials.yaml:GLM_API_KEY: sk-xxxx KIMI_API_KEY: sk-xxxx DASHSCOPE_API_KEY: sk-xxxx - Web「模型」页:直接粘贴 Key(写入受管凭据文档)。
未配置 Key 的路由会在请求时报 MISSING_CREDENTIAL,不影响其它已配置模型。
主脑工作流
在主对话直接下达复杂任务即可。主脑会:
- 用
todo_write记录拆解出的子任务; - 调用
list_subagent_models查看可用路由; - 通过
subagent(带provider/model)把每个子任务分派给最合适的模型——在同一条消息里一起启动相互独立的委托,默认后台运行; - 汇总各子代理结果,合成最终交付。
路由名以你 profile 实际注册的为准——示例里的 GLM / Kimi / Qwen 只是示意。如果你注册的路由在其它 provider 名下(例如
zai网关),请在subagent-model-selection与modelNotes里用那些确切的provider/modelid。可用list_subagent_models查看实时列表。
查看用量:让主脑调用 model_token_usage,或直接问「各模型用了多少 token」。
配置参考
全部在 $DSH_HOME/settings.yaml 中配置:
| 配置段 | 作用 |
|---|---|
llm-pi-ai.providers |
OpenAI 兼容的第三方模型路由(任意厂商)。 |
subagent-model-selection |
允许子代理工具分派的 {provider, model} 白名单。 |
multi-model-orchestrator.modelNotes |
各路由优缺点,主脑据此分派。 |
要接入自己的厂商,在 llm-pi-ai.providers 下按 { api, baseURL, apiKeyEnv, models } 扩展(任意 api: openai-completions 的兼容网关均可),再在 subagent-model-selection.allowedModels 与 multi-model-orchestrator.modelNotes 补上对应条目。
说明与限制
- token 用量为进程内累计(重启 harness 后清零);逐条会话用量仍由内置 token meter 展示。
model_token_usage需要自加载以来至少有一次模型调用返回了usage块,才会开始输出。- 编排指引为全局注入,子代理也会读到;其措辞保证子代理在聚焦单一子任务时不会递归拆解。
- 第三方路由默认按「非推理模型」接入;如需推理开关(
reasoningEfforts/compat.thinkingFormat),可在 Web「模型」页为具体模型补上。 - 部分推理模型缺省参数会拒掉调用:智谱 GLM-5.3 系即如此——默认参数分派会报错,显式加
reasoning_effort(如low)后才响应。若某路由分派子代理报错而该模型本应可用,请给分派补上显式reasoning_effort。请求在 API 层成功却始终 0 token 返回的路由,通常是路由/上游问题,而非编排器问题。
故障排查
ERR_MODULE_NOT_FOUND: Cannot find package '@deepseek-ai/...'—— 插件是手工 link 的(裸link:+ 手工建的node_modulesjunction),而不是通过dsh plugin ... add正式安装。请把它装成 profile 的真实依赖并移除 junction。model_token_usage显示 “No records yet” —— 自加载以来还没有模型调用返回 usage;发一次请求再问即可。- 子代理无法分派到某路由 /
list_subagent_models为空 —— 检查subagent-model-selection是否为enabled: true且allowedModels非空,并确认这些路由存在于llm-pi-ai.providers。
License
MIT
评论
评论存放在 GitHub Discussions。用 GitHub 账号登录后可发表评论或点表情。