DeepSeek Harness 子代理 Subagent:委派任务给子 Agent
2026-08-16 14:36:46阅读 3
一个大任务压在单个 agent 身上,上下文会爆炸、过程会拖沓。DSH 的解法是委派:主 agent 把子任务交给"子代理"(subagent)去干,干完回收结果。子代理是独立的对话上下文,不占主 agent 的注意力,还能并行铺开。
子代理是什么
一个 agent 通过注册的提供方,把工作委派给子 agent。关键特性:
- 独立上下文:子代理有自己的对话历史,主 agent 看不到它的中间过程,只收最终结果——这正好避免主对话被海量细节撑爆
- 可并行:多个子代理同时跑,各干各的
- 可嵌套:子代理还能再派孙代理(有深度限制可配)
你在主对话里常看到 agent"派几个小分队分别查 A、B、C",就是它在用子代理。
两种模式:一次性 vs 可继续
| one-shot(一次性) | continuable(可继续) | |
|---|---|---|
| 生命周期 | 干完即散,结果返回后消失 | 有持久身份,可跨轮次继续对话 |
| 典型场景 | "帮我查一下这个库的最新版本" | "你负责跟踪这个模块,我随时来问进展" |
| 主 agent 操作 | start(启动并等待结果) | startContinuable + followup(追加消息)+ interrupt(打断) |
日常使用大部分是 one-shot;continuable 适合"常驻专员"式的分工。
主 agent 怎么管子代理
- followup:给子代理追加一条消息,开启它的下一轮(只在可继续模式下有意义)
- interrupt:打断子代理正在进行的轮次(已排队的工作保留)
- reportFrom:子代理主动向主 agent 汇报
- listChildren / listDescendants:查看直接子代理/整棵子孙树
这套操作在 Web UI 里有对应展示;用 SDK 时则是 ctx.subagents 服务的 API。
三个可配的"缰绳"
| 能力 | 作用 |
|---|---|
| outputSchema | 强制子代理返回结构化结果(比如必须返回 JSON 字段,而不是自由文本) |
| depthLimit | 限制委派深度,防止子代理无限往下派 |
| toolFilter | 限制子代理能用的工具——只给它文件工具,不给她命令执行权 |
这三条是"放心委派"的关键:给子代理限权,比信任它自觉更可靠。
委派的正确姿势
- 任务要自包含。子代理看不到主对话,交代时把背景说全("在 ~/repo 目录下,读 README 并总结三句话"),而不是"你去看看那个"——子代理没有"那个"的上下文
- 要结果不要过程。让子代理返回结论/文件/结构化数据,而不是长篇过程
- 用限权控制风险。只读任务就别给写工具
这些正是 工作流 Workflow 里批量委派的基础——下一篇讲怎么把多个子代理编排成流水线。
常见疑问
| 问题 | 解答 |
|---|---|
| 子代理知道主对话的内容吗? | 不知道。它只有你委派时交代的那段话 |
| 子代理结果丢失了? | one-shot 结果返回后即结束;需要长期跟踪用 continuable |
| 能限制子代理的成本吗? | 通过 toolFilter 限制工具、depthLimit 限制深度;单次子代理的模型用量在其会话内结算 |
接下来读什么
- 多个子代理编排成流水线 → 工作流 Workflow:脚本编排与扇出
- 主 agent 的长线任务管理 → 目标 Goal:持久化与自动续行
- 给子代理限权的前提 → 沙箱与安全:三种权限模式
← 上一篇:3.6 Skill 技能:SKILL.md 格式与使用 | 下一篇:4.2 工作流 Workflow:脚本编排与扇出 →
↑ 返回 教程总目录




