Skip to content

4.7 子代理 ​

本节目标

学会让 agent 把任务拆给子代理由主智能体委派出去执行子任务的子智能体,可并行工作、结果汇总回主会话。Subagent/sʌbˈeɪdʒənt/,多个子代理并行干活,主代理统筹汇总。

什么是子代理 ​

agent 干活是一个线程从头跑到尾。但有些任务天然适合分工:

  • 调研任务:同时查文档、查代码、查社区,三个方向互不干扰
  • 大项目改造:一个子代理改前端,一个改后端
  • 独立子任务:让一个子代理专门核对数据,另一个专门写测试

子代理由主智能体委派出去执行子任务的子智能体,可并行工作、结果汇总回主会话。Subagent/sʌbˈeɪdʒənt/就是 agent 委派出去的子 agent。主 agent 把任务拆开,分配给子代理并行执行,最后收集结果汇总给你。相当于主代理当项目经理,子代理是干活的组员。

怎么触发子代理 ​

不需要专门的按钮,直接在指令里说就行:

用两个子代理并行调研:一个查这个框架的文档,一个查社区的实践案例,最后汇总

agent 判断任务适合拆分时,也会自己决定使用子代理。你会在消息流里看到子代理行:它们像工具调用一样展示,但展开后是子代理自己的完整对话记录。

界面上的子代理 ​

子代理在界面上的呈现有几个特点:

  • 子代理行:消息流里每个子代理一行,显示它领了什么任务
  • 完整转写:点开子代理行,能看到子代理自己的完整对话(它思考了什么、调用了哪些工具、怎么交的差)
  • 子代理导航:从父会话一次独立的对话记录,有自己的上下文,互不干扰。Session/ˈseʃn/可以进入子代理的会话视图,就像打开一个子对话
  • 侧栏并排看:0.1.6-alpha.2 起,页头谱系行里的子代理可以直接在右侧边栏打开:优先独立分栏、主对话和子代理对话并排放,没法分栏时退回当前栏替换显示,边盯主对话边看子代理干活
  • 并行状态:多个子代理同时跑时,各自的状态独立显示

能对子代理做什么 ​

除了"派活",你还可以:

  • 给子代理发消息:中途补充信息、调整方向
  • 打断子代理:跑偏了让它停下来
  • 查看子代理列表:看清当前有哪些子代理在跑、什么状态
  • 接管子代理的人工收件箱:0.1.3-alpha.2 起,对于支持连续执行的子代理,你可以像管理主会话一样管理它的人工 inbox。子代理停下来等你确认时,你可以直接回复、继续或取消,操作体验和主会话一致
  • 调委派限制:0.1.6-alpha.2 起,侧栏插件页的 Subagent 卡片里可以改两个数:最大递归深度(子代理还能不能再派子代理,默认 1 层,即只许主 agent 直接委派)和 Subagent 并行数量上限(所有层级里同时活着、可续接的子代理总数,含等待中的,不算一次性运行和外部提供方)。保存后对后续委派生效,调低上限不会叫停已经跑起来的子代理。同一个卡片里还能管子代理模型选择:开个权限开关、勾选允许用哪些模型路由,防止委派时用错贵的模型

什么时候用子代理 ​

场景用子代理的收益
多方向调研并行查,省时间
前后端/多模块并行改互不阻塞
独立子任务上下文模型一次请求中可见的信息范围,包括对话历史、注入的提示和工具结果。Context/ˈkɒntekst/隔离,不互相干扰

提示

子代理适合"拆得开、各干各"的任务。任务紧密耦合、改一处影响全局的,反而不适合拆,交给一个 agent 从头做更稳。

用 Codex / Claude Code 当子代理 ​

除了 dsh 自带的进程内子代理,你还可以把真实的 Codex 或 Claude Code 应用接进来当子代理。它们是独立的可选 Profile 包,命令行装好再重启对应 Profile 即可:

sh
dsh plugin --profile web add @deepseek-ai/dsh-subagent-codex @deepseek-ai/dsh-subagent-claude-code

装完后它们只注册一个"待命"的 Host provider,并不会立刻获得工具权限。想让某个子代理真的能干活,复制一份完整的 Agent 预设,把对应工具行的 disabled 去掉,再开一个新会话即可。这属于进阶玩法,新手先熟悉内置子代理就够用。

常见问题 ​

问:子代理会失控吗?

不会。子代理继承主会话的权限agent 能执行的操作范围,由沙箱和审批策略共同决定。Permission/pərˈmɪʃn/边界,受同一套权限和审批agent 执行超权限操作前询问用户的机制,允许只放行这一次。Approval/əˈpruːvl/管理。它的每一步也在监管之下。

问:子代理的结果怎么回到主会话?

子代理完成后会把结果汇报给主代理,主代理汇总后统一回复你。你也可以点开子代理行看原始过程。

小结 ​

  • 子代理是 agent 委派出去的子 agent,适合并行、隔离的任务
  • 指令里说"用子代理并行干 X"即可触发,消息流里出现子代理行
  • 可以给子代理发消息、打断、查看,结果由主代理汇总
  • 0.1.6-alpha.2 起子代理对话可开进右侧边栏并排看,委派深度与并行上限在侧栏插件页可调

分工搞定了,下一节把长任务丢到后台,别挡住对话。

发现错误?提交反馈 · 欢迎 提 PR 改进本书