前言¶
在 DeepSeek Harness (DSH) 的使用中,若要构建一个包含多个角色的复杂工作流,通常需要为每个子任务现场描述 Prompt。这不仅繁琐,而且难以复用和标准化。dsh-subagent-library 插件旨在解决这一问题,它将常用的角色(如代码审查、红队测试、多模态理解)封装成一份持久化的具名子代理名册。模型通过标准工具接口即可选人并派活,主会话只需一句指令即可触发。
核心功能¶
- 具名子代理名册:将模型、Persona、工具过滤等配置持久化存储,支持热生效。
- 工具集成:为模型提供
list_subagents(列出名册)和delegate(派发任务)两个工具。 - 可视化编辑:在 DSH 设置页直接增删改条目,无需手动维护 YAML 文件。
- Host 平面工具注册:工具注册在 Host 平面,不依赖特定 Agent Preset,切换 Preset 不会丢失。
- 后台模式支持:支持
one-shot(一次性任务)和continuable(可续聊子代理)模式。
安装与启用¶
通过 npm 安装该插件:
npx @deepseek-ai/dsh plugin --profile web add dsh-subagent-library
安装完成后,重启 dsh web 进程并刷新页面即可使用。
配置与用法¶
目录结构¶
0.3 版本起,名册存储为目录结构,默认路径为 ~/.dsh/subagents/。每个具名子代理对应一个 YAML 文件(文件名即 ID)。
~/.dsh/subagents/
k3-reviewer.yaml # 对应 ID 为 k3-reviewer
glm-reader.yaml
_backups/ # 备份区,以下划线开头的文件/目录会被插件忽略
README.md # 可选,供 Agent 或人类阅读的说明
工具调用流程¶
- 主会话指令:主会话 Agent 只需告诉它“用 xxx 做这件事”。
- 模型决策:模型使用
list_subagents工具查看名册中的可用条目(包含描述、模型路由等)。 - 任务派发:模型使用
delegate工具,根据选中的library_id将任务派发给对应的子代理。 - 无需 Slash 命令:模型层面的交互完全通过工具完成,
/subagent命令仅用于人类在命令面板中查看名册。
配置项说明¶
单个条目文件(k3-reviewer.yaml)的配置示例:
description: Kimi K3-256K 独立只读审核,支持图片视觉走查
provider: kimi-coding
model: k3-256k
persona: |
你是运行在 Kimi K3-256K 上的独立审核 agent……
toolFilter:
deny: [write, edit, todo_write, create_goal, update_goal, subagent, subagent_fork, send_message, interrupt_agent, workflow, ralph, list_subagents, delegate]
maxDepth: 1
backgroundMode: continuable
主要字段含义:
* id:文件名,须匹配 [a-z0-9][a-z0-9-]*。
* description:角色描述,用于 list_subagents 展示。
* provider:LLM 路由(如 deepseek-official、kimi-coding)。
* model:LLM 模型 ID。
* subagentProvider:子代理传输层(默认取插件级默认 spawn)。
* persona:子代理的角色提示词,支持 {{…}} 模板插值。
* toolFilter:工具过滤名单。建议对只读角色将 list_subagents 和 delegate 加入 deny,防止子代理被全局提示词诱导链式派活。
* maxDepth:委派深度上限,防止递归过深。
* backgroundMode:后台模式,one-shot(默认)或 continuable。
设计说明¶
- 热生效:名册每次操作实时读取目录,修改 YAML 文件无需重启 DSH。
- Host 平面:工具注册在 Host 平面,确保切换 Preset 时工具依然可用。
- 容错性:解析或校验失败的文件会被跳过,错误信息会进入
list_subagents输出与诊断界面,不会导致名册崩溃。 - 原子操作:单条目写入采用临时文件 + rename 重试机制,多写者环境下后写生效。
适用场景与注意¶
- 适用场景:适合需要固定角色分工的长期工作流,例如代码审查、红队测试、多模态理解等。
- 安全注意:设置接口
/subagent-library/api遵循 DSH Web Host 的本地可信边界,插件自身不包含独立身份验证层。若将 DSH 绑定到公网或局域网,务必在外层配置认证与访问控制,不要将接口暴露给不可信客户端。 - 依赖关系:插件是独立社区项目,与 DeepSeek 无隶属关系。安装前建议查看源码与许可证。