DeepSeek Harness 的角色化 Codex / Claude Code / ACP subagent provider——可续跑子任务、持久会话恢复、按角色授予产品权限并带权限上限委派
Role-based Codex / Claude Code / ACP subagent providers for the DeepSeek Harness — continuable children, durable session recovery, per-role product permissions, and delegation with a permission ceiling.
安装
dsh plugin --profile web add github:shaokeyibb/dsh-plugin-product-subagentsGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
English | 简体中文
面向 DeepSeek Harness 的基于角色的 Codex / Claude Code / ACP 子代理插件。把外部 Agent CLI 变成持久、可续聊的子代理:声明式角色库、按角色的产品权限、带权限天花板的委派、跨平台进程启动。
功能
- 可续聊子代理 — 同步 one-shot 或异步连续式(用
send_message/list_agents/interrupt_agent控制;用product_wait同步 attach)。 - 会话连续性 — 子代理的远程产品会话在空闲释放与进程重启后仍可恢复(持久注册表 + 日志标记;claude/codex 按 id 恢复,ACP 重连)。
- 声明式角色(
roles/*.json)—general(默认)、code-review、explore(禁派)、debug。委派默认开启,角色可显式禁止;未知角色回退general。 - 两层权限模型 — 中继模型永远是只读传话筒;
permissionMode(readonly/default/full)作用于远程产品,映射到各产品自己的 CLI 标志。 - 权限天花板 — 子代理不能派生出比自己权限更高的后代。
- 任意 ACP Agent — 通过
config.providers加 Cursor(agent acp)、CodeBuddy(cbc --acp)、Gemini(gemini --acp)等,零代码。 - 资源管理 — 空闲释放、可配超时、并发上限。
- 跨平台 — Windows
.cmd垫片、Windows 安全路径转义;CI 覆盖 macOS / Ubuntu / Windows。
环境要求
- DeepSeek Harness 部署(web profile)。
- 至少一个产品 CLI 在
PATH且已登录:claude、codex,或某个 ACP CLI(opencode、agent、cbc…)。 - Node ≥ 18。
安装
推荐方式 — dsh plugin add
dsh plugin --profile web add dsh-plugin-product-subagents
这一条命令同时完成装包与接线:插件通过 package.json 里的 dsh.bundle
声明自带 cordis.patch.yml,dsh plugin add 会自动将其注册为 profile 层
(无需手动编辑 cordis.patch.yml)。装完后重启 harness 即可生效。
如需自定义插件配置(例如加 ACP provider),在 profile 自己的
cordis.patch.yml(~/.dsh/profiles/web/cordis.patch.yml)里按
product-subagents id 覆盖:
- id: product-subagents
config:
idleTimeoutMs: 600000
providers:
cursor: { type: acp, command: agent, args: [acp] }
codebuddy: { type: acp, command: cbc, args: [--acp] }
注意: config 覆盖会替换整行
config对象,请把要保留的字段一并写上 (如上面的idleTimeoutMs)。
让 Agent 安装(一句话)
把这句粘贴给你的 DeepSeek Harness Agent(或任何有 shell 权限的编码 Agent), 它会自己完成所有步骤:
请把
dsh-plugin-product-subagents插件装进我的 DeepSeek Harness web profile:执行dsh plugin --profile web add dsh-plugin-product-subagents, 然后提醒我重启 harness 让插件生效。
手动安装(进阶)
如果你希望自己管理 profile,请在 profile 目录内使用 pnpm(不要用 npm), 以避免 peer 依赖被自动安装:
cd ~/.dsh/profiles/web
pnpm add dsh-plugin-product-subagents
然后在 profile 的 cordis.patch.yml 加一行宿主层:
- insert:
- id: product-subagents
name: 'dsh-plugin-product-subagents'
config:
idleTimeoutMs: 600000
providers:
cursor: { type: acp, command: agent, args: [acp] }
codebuddy: { type: acp, command: cbc, args: [--acp] }
快速开始
会话中的模型有六个工具:
| 工具 | 用途 |
|---|---|
product_delegate |
按角色委派任务(同步或连续式) |
product_roles |
列出角色库 |
product_submit |
子代理内部桥(仅连续式子代理) |
subagent_progress |
单个子代理的状态 + 内部 trace |
product_wait |
阻塞直到子代理结算,返回答案 |
product_agents |
Provider 可用性 + 活跃子代理 |
product_delegate role=general task="重构 demo-project/calc.js 并运行测试"
product_wait subagent_id=<childId>
配置
config:
providers: { cursor: { type: acp, command: agent, args: [acp] } }
idleTimeoutMs: 600000 # 结算后的子代理闲置超过此时长则释放远程会话(0 禁用)
maxConcurrentChildren: 8 # 同时存在的连续式子代理上限
rolesDir: <path> # 声明式角色库目录(默认 roles/)
registryPath: <path> # 持久化远程会话注册表
角色与权限
每个角色文件:
{
"id": "code-review",
"description": "审查代码的缺陷、安全与可维护性(只读)。",
"provider": "claude-code",
"permissionMode": "readonly",
"allowDelegation": true,
"instructions": "你是代码审查员。只读:绝不修改文件。…"
}
permissionMode映射到产品标志:readonly(claude--permission-mode plan/ codex--sandbox read-only)、full(claude--dangerously-skip-permissions/ codex--dangerously-bypass-approvals-and-sandbox)。- 中继模型任何角色都拿不到可写工具。
- 委派有天花板:
readonly < default < full;子代理不能派生出权限更高的后代。
自定义 ACP Provider
config.providers 接受任意讲 ACP 的 CLI —— 通用桥负责持久进程、session/load 恢复与死进程重连:
providers:
cursor: { type: acp, command: agent, args: [acp] } # Cursor CLI
codebuddy: { type: acp, command: cbc, args: [--acp] } # CodeBuddy
gemini: { type: acp, command: gemini, args: [--acp] } # Gemini CLI
opencode: { type: acp, command: opencode, args: [acp] } # opencode
只有命令在 PATH 上被检测到,Provider 才会出现在委派枚举里。内置三件套(claude-code / codex / acp)可用同名键覆盖。
开发
npm install
npm test # node:test — 纯逻辑 + fake bridge,不需要 CLI 或密钥
npm run lint # 语法检查所有模块
桥契约、权限模型与新增产品的方式见 docs/ARCHITECTURE.md。CI 在 macOS / Ubuntu / Windows × Node 18/20/22 上跑测试套件。
安全
这是配置即信任边界的工具:它会启动你配置的任何 CLI,full 会传递产品自己的"绕过所有权限检查"标志。见 SECURITY.md。
License
MIT
原始 README: https://github.com/shaokeyibb/dsh-plugin-product-subagents/blob/main/README.zh.md ↗
同类插件
查看全部 →
archify
Agent 技能:生成美观、可校验的架构图、工作流图、时序图、数据流图与生命周期图——自包含 HTML、带动画与清晰导出

dsh-turn-rewind
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。

dsh-plugin-cc
把 DeepSeek Harness 接入 Claude Code:评审、批评、委派与会话导入

dsh-interconnect
跨实例互联:经 interconnect 服务在多个 DSH 实例间转发消息与事件。

dsh-chat-import
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。

dsh-crew
DSH 插件:从 Claude Code / Codex 向 DSH agent 派活——原生 subagent 进度、宿主内 worker 会话(分级预设),以及为纯文本宿主补上视觉与图像生成的多模态桥