Skip to main content
子 Agent 是主 Agent 在对话过程中临时创建的执行单元。主 Agent 把一个独立的任务交给它,它在自己的上下文中完成任务,然后返回结果。任务过程中打开的网页、读取的文件和执行的命令都不会进入主对话。
子 Agent 是临时的,没有独立的身份、记忆和渠道,也不会出现在 Agent 列表中。

两个作用

  • 独立的上下文:中间过程不占用主对话的上下文,节约 token,也让模型的注意力集中在相关内容上
  • 并行执行:一次可以创建多个子 Agent 同时执行,总耗时取决于最慢的一个

继承与隔离

子 Agent 从主 Agent 继承一部分环境,但不是主 Agent 的副本: 因此子 Agent 只知道主 Agent 传递给它的内容。它看不到对话历史,也无法向用户提问,所需的路径、标识、约束和已确定的结论,都需要主 Agent 在创建任务时一并写明。

触发时机

由主 Agent 自行判断,无需配置,也没有专门的命令。 会创建子 Agent 的情况:
  • 有多件互不依赖的事情可以同时进行,例如「分别调研 A 和 B 两个产品」
  • 某件事会产生大量中间内容,但只需要结论,例如「查一下这个报错社区里有没有已知解法」
不会创建的情况:
  • 主 Agent 需要中间结果才能继续(自己读几个文件、搜索几次属于正常执行)
  • 任务依赖对话中之前的内容,或执行过程中需要向用户确认
  • 需要跨对话长期执行的任务,这类任务应使用定时任务
如果希望某件事一定由子 Agent 执行,在对话中说明即可,例如「用子 Agent 分别调研这两个方向」。

运行展示

每个子 Agent 在 Web 控制台和桌面端都对应一张独立的卡片,展开可以看到它当前调用的工具和执行到的步骤,结束后卡片内是它的完整报告。多个子 Agent 各自开始和结束,可以直接看出哪一个尚未完成。

内置类型

创建时会选择一种类型,类型决定系统提示词和可用的工具范围:

自定义类型

在工作区的 subagents/ 目录下放置一个 .md 文件即可新增一种类型,格式与技能一致:
字段说明: 限定 tools 是最可靠的约束方式:只有 read, ls, search_files 的类型无法修改任何文件。 工作区首次启动时会在 subagents/ 下生成 README.mdexample.md.template,把后者复制为 .md 文件即可启用。模板每轮对话重新读取,新增文件在下一条消息生效,无需重启。
工具名按精确匹配,tools 白名单不包含 MCP 工具。需要使用 MCP 工具时请省略该字段。

禁用的工具

以下工具对所有子 Agent 不可用:

相关配置

子 Agent 默认开启。可在 Web 控制台与桌面端的「配置 → Agent 配置」中开关,修改后下一轮对话生效,无需重启。更细的限制在 config.json 中调整:

实现设计

  • 上下文隔离:子 Agent 以空白消息历史启动,不加载人设文件,不接入记忆管理器。主对话中只保留一次调用记录和最终结论。
  • 并行执行:单次调用中的多个任务在各自线程中执行,共享同一份时长预算;同一轮中发出的多次调用也会同时启动。
  • 步数减半:子 Agent 的最大步数为主 Agent 的一半。任务范围已经明确,不需要与整场对话相同的预算;超出时会要求它对已完成的部分作出总结。
  • 超时可追溯:超时的任务会被取消并标记为超时,结果数量始终与任务数一致,主 Agent 能够区分「没有查到」和「没有执行完」。
  • 展示与上下文分离:返回给模型的是结构化数据,展示给用户的是排版后的报告,两者由同一份结果生成,展示内容不进入模型上下文。