Agents-Platform 系列 · 最佳实践
上下文隔离与任务委派的最佳实践
章节
6
应用场景
5
对照表
1
本指南涵盖
01 何时该用 SubAgent
02 默认 SubAgent 的作用
03 SubAgent 继承关系详解
04 Description 字段写法
05 系统提示词变化
06 Skill 中引用 SubAgent
速览
general_purpose(全量继承主 agent);自定义 SubAgent
不自动继承,上下文始终隔离
Available subagent types:
列表(名称: 描述)
feng-chu),不要用中文展示名
第一章
核心动机是上下文隔离,而不是单纯「分工」。当主 agent 在执行过程中会产生大量中间噪音时(网页搜索结果、文件读取内容、数据库查询返回等),这些内容会迅速塞满上下文窗口,让模型「迷失在细节里」、性能下降。
适合拆成 SubAgent 的场景
中间输出量大、只需结论 — 某个子任务会产生大量中间 tool 输出,但主 agent 只需要最终结论。例如「查一下这几个城市的天气」——中间调用过程不需要保留在主上下文里。
需要专用工具 / 受限权限 — 只允许某个 SubAgent 访问特定 API,做权限隔离。主 agent 不直接持有敏感凭证。
搜索 / 查找类任务,试错多 — 不确定前几次尝试能不能命中,这类任务本身就会有很多「试错」式的中间调用,适合隔离执行。
任务可以并行化 — 多个独立子任务可以并发调用多个 SubAgent,最后汇总结果。无需等待前一个完成再启动下一个。
任务可以流水线化 — 串联多个 SubAgent,前一个的输出作为后一个的输入,形成处理管道。
判断标准
如果这段子任务的执行过程本身不重要、只有结果重要,就该丢给 SubAgent 去隔离掉。反之,如果中间推理步骤需要主 agent 参与判断或交互,则不适合委派。
并行 & 流水线示意
多个独立任务并发执行,或串行管道,最后汇总至主 agent。
第二章
Agent 创建后,即使没有传入任何
subagents
参数,内部也会自动配备一个名为
general_purpose
的默认子智能体。
与主智能体共享完全相同的模型、工具和系统提示词,用于隔离上下文和 token 使用量来完成特定复杂任务,具备与主智能体完全相同的功能。
用途:在没有专门定制
SubAgent 的情况下,仍然能通过
task
工具把「耗费大量上下文的子任务」委派出去执行,执行细节不会污染主
agent 的上下文。
这也解释了为什么即使不传
subagents
参数,也能观察到并行调用子智能体完成任务的现象。
第三章
SubAgent 不自动继承主 agent 的配置。不同类型的 SubAgent,继承行为差异显著:
| SubAgent 类型 | 继承情况 |
|---|---|
general_purpose默认子智能体 |
全量继承 模型、工具集、技能、系统提示词与主 agent 完全相同 |
|
自定义 SubAgent 字典 / CompiledSubAgent |
不自动继承 需自行配置工具 /
提示词;只拿到
task
调用时传入的任务描述作为输入
|
| 上下文 | 完全隔离 委派式通讯,SubAgent 内部的工具调用历史、中间结果不会带回主 agent,只有最终一条消息会合并进主 agent 上下文 |
第四章
作为 SubAgent 被其他 Agent 引用时,父 Agent 会据此判断何时触发调用。请写成 trigger(触发条件),重点写「何时该叫我」,而不是能力说明书。
主 agent 并不知道 SubAgent 内部具体怎么实现,只能靠这段描述做路由。写法上应聚焦以下三个方面:
适用场景 / 触发时机
什么样的任务应该路由给它——例如「当需要查询多个城市天气时使用」,而不是「这是一个天气 SubAgent」
输入输出的边界
它能处理什么、不能处理什么,避免主 agent 误判后把不合适的任务丢进去
与其他 SubAgent 的区分度
多个 SubAgent 之间描述要有清晰的语义边界,否则主 agent
可能选错(比如误用默认的
general_purpose
而非你定制的那个)
正例 vs 反例
「负责处理天气相关任务」
偏「身份介绍 / 能力说明书」,模型难以据此路由——它不知道具体什么情况下该调用你。
「当用户询问某个城市的天气、或需要对比多个城市天气数据时调用此 SubAgent」
直接把触发条件写进去,让主 agent 决策时有明确依据。
记住
Description 不是自我介绍,而是路由规则。主 agent 通过它判断「这个任务该不该交给你」。
第五章
配置
sub_agents
后,主 agent 的系统提示词中会自动注入可用子智能体列表,供主 agent
在决策时参考。格式为
名称: 描述,其中描述即该 agent 的
description
字段内容。
注入示例
Available subagent types: general-purpose: General-purpose agent for researching complex questions, searching for files and content, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries use this agent to perform the search for you. This agent has access to all tools as the main agent. feng-chu: [凤雏] - 智慧异于常人---卧龙异父异母的亲兄弟
主 agent 看到的是
名称: 描述
的键值对列表,根据描述内容决定将任务路由到哪个 SubAgent。
第六章
在 Skill 中提及 / 引导调用 SubAgent 时,请使用英文名称(即 agent 的 name / slug),不要用中文展示名。
正确
feng-chu
错误
凤雏
主 agent 通过英文名称匹配并调用对应的 SubAgent;使用中文名可能导致无法正确路由。
核心要点回顾
→ 上下文隔离 > 简单分工
→ Description = 路由规则,不是自我介绍
→ 自定义 SubAgent 不自动继承,需显式配置
→ Skill 中引用用英文名称,不用中文展示名