子 Agent 是否使用父 Agent 的全部上下文?
未标记
考查重点:子任务必要上下文与成本。子Agent通常只需目标、相关资料与完成条件,未必继承全部历史;按实际框架配置说明继承范围,结果以摘要和产物引用返回
本题目录
参考答案
核心回答
不一定,取决于宿主怎样构造子 Agent 的输入,以及框架的继承配置。 子 Agent 有自己的模型调用与执行上下文,常见做法是只传子任务和必要材料;有些框架也支持复制父 Agent 当时的会话历史,帮助它接续已有工作。
需要分别确认四件事:
- 传入哪些历史:只有任务描述,还是还包含已保留消息、摘要、文件或证据引用。
- 角色与工具如何配置:历史继承不意味着父 Agent 的系统提示、全部工具和权限也一同继承。
- 是否持续同步:启动时的快照只代表派发时的信息,父 Agent 后续收到的更正通常需要另行传递。
- 返回什么:主 Agent 通常接收结论、缺口和产物引用,子 Agent 的全部探索过程不必重新塞回主窗口。
判断具体项目时,应看调用参数和子 Agent 的初始消息,而不是根据“用了子 Agent”就断言全部共享或完全没有历史。
怎样选择传递范围
独立检索、局部代码分析等任务,可以传一个自足的任务包:子目标、相关约束、必要证据或文件位置、完成条件和返回格式。大量原文放在可访问的产物中,需要时再读。这样能控制重复输入与无关信息,也让角色分工更清楚。
如果任务是在接续父 Agent 已经排查过的问题,关键要求与失败尝试分散在多轮历史里,只给一句任务容易遗漏条件,这时可传一份选定历史或快照。代价是输入变大,并带入旧假设、过期决定或与当前职责无关的材料;应把它标明为背景,并明确最新任务范围。
上下文隔离也不等于文件系统或业务状态隔离。多个 Agent 仍可能访问同一工作区、数据库或产物,需要另外约定哪些对象可读、谁负责修改,以及新版本怎样通知接收者。
DeerFlowPython
这一版 DeerFlow 的普通 task 委派提供两种 context_mode:默认 isolated,只用当前委派任务作为对话输入;显式选择 snapshot 时,再附带父会话的保留历史和摘要。子 Agent 仍使用自己的角色、工具配置和执行链路。
快照复制什么,何时复制
task 校验委派类型与允许范围后,在子 Agent 初始化前调用 ParentContextSnapshot.from_state(...)。快照读取派发当时的 summary_text 与仍保留的对话消息,过滤父系统消息和框架注入等内容,再序列化为独立数据。
因此,父会话若已经压缩,子 Agent 得到的是当前保留内容与摘要,不会恢复所有被压缩掉的原始消息。快照也不会因为父状态后来发生变化而自动更新;重新构建子消息时使用独立容器,不与父消息或兄弟任务共用可变历史。
历史作为背景,当前任务单独传入
子 Agent 初始输入的顺序是:自己的 SystemMessage、名为 parent_context_snapshot 的背景 HumanMessage,然后是当前任务的 HumanMessage。背景里保留用户要求、已知决定和观察,但不提升为子 Agent 的系统指令。
父 Agent 已完成的工具调用会与保留结果匹配后,以“历史工具调用”的文本进入背景;尚未取得对应结果的调用不作为可重放操作传入。这样既能解释过去查到了什么,又避免子 Agent 把父方调用、回执或历史动作误认为自己本次已经执行的结果。
怎样使用两种模式
任务目标和资料位置已经明确时,选 isolated,减少重复携带父会话。接续复杂排障、需要理解多轮更正或失败尝试时,选 snapshot,同时在任务中指出当前要解决的部分。
为避免多轮规划不断追加子任务,SubagentLimitMiddleware 在模型返回后统计本条消息的 task 调用,并结合委派账本中当前 run_id 的已用次数,只保留单次上限与本次运行剩余额度共同允许的调用。超出部分被裁去,不会转成等待队列;总量耗尽则附加限额说明,要求主 Agent 基于已有结果收敛。委派限额与是否传入父会话快照是独立控制。委派限额实现。
两种模式都不等于复制父 Agent 的全部运行状态。工具所需的工作区、线程或上传文件信息可由宿主另外传入,这与复制聊天历史是两条路径。父方后来出现新要求时,需要明确补充或重新派发;子任务完成后,再将报告与产物交回父 Agent 汇总。
对应教程
- 深度研搜第 1 章:DeepAgents 基础与核心概念:参考第 4.3 节主智能体委派、子智能体独立执行并回传结果的分工;具体历史继承按本项目配置说明。
参考资料
- 国内:JavaGuide:多 Agent 协作系统设计:参考任务契约、角色状态与产物交付的分工,组织必要输入及结果回传,避免用完整对话代替清楚的委派要求。
- 国内:Onefly / zero2Agent:多 Agent 协作:借鉴私有执行上下文与结构化交付的区别,说明大量工具过程为何可留在子 Agent,以及主窗口接收结果摘要的作用。
- 国内:WeThinkIn:Agent 设计模式与工作流编排高频考点:参考角色输入输出、停止条件和写入责任的划分,解释独立窗口与共享文件状态为何分别管理。
- 国内:Datawhale:第九章 上下文工程:参考
ContextBuilder按相关性和预算选择材料的实现,说明子任务输入应围绕当前目标取舍,而非机械复制全部资料。 - 国外:LangChain:Subagents:依据独立与历史继承模式的配置说明,解释“子 Agent 一定拿不到父历史”为何不是通用结论;
DeerFlow的快照范围以其实现为准。 - 国外:Anthropic:How we built our multi-agent research system:参考目标、输出格式和任务边界的委派要求,以及摘要和产物引用回传方式,解释上下文完整度与通信成本的取舍。
- 国内:DeerFlow:固定版本委派工具:项目答法中的模式选择与捕获时点以此为依据;快照构造与子任务执行器核对消息范围、工具历史与初始消息顺序。


