子 Agent 是否使用父 Agent 的全部上下文?

考查重点:子任务必要上下文与成本。子Agent通常只需目标、相关资料与完成条件,未必继承全部历史;按实际框架配置说明继承范围,结果以摘要和产物引用返回

本题目录

参考答案

核心回答

不一定,取决于宿主怎样构造子 Agent 的输入,以及框架的继承配置。 子 Agent 有自己的模型调用与执行上下文,常见做法是只传子任务和必要材料;有些框架也支持复制父 Agent 当时的会话历史,帮助它接续已有工作。

需要分别确认四件事:

  • 传入哪些历史:只有任务描述,还是还包含已保留消息、摘要、文件或证据引用。
  • 角色与工具如何配置:历史继承不意味着父 Agent 的系统提示、全部工具和权限也一同继承。
  • 是否持续同步:启动时的快照只代表派发时的信息,父 Agent 后续收到的更正通常需要另行传递。
  • 返回什么:主 Agent 通常接收结论、缺口和产物引用,子 Agent 的全部探索过程不必重新塞回主窗口。

判断具体项目时,应看调用参数和子 Agent 的初始消息,而不是根据“用了子 Agent”就断言全部共享或完全没有历史。

怎样选择传递范围

独立检索、局部代码分析等任务,可以传一个自足的任务包:子目标、相关约束、必要证据或文件位置、完成条件和返回格式。大量原文放在可访问的产物中,需要时再读。这样能控制重复输入与无关信息,也让角色分工更清楚。

如果任务是在接续父 Agent 已经排查过的问题,关键要求与失败尝试分散在多轮历史里,只给一句任务容易遗漏条件,这时可传一份选定历史或快照。代价是输入变大,并带入旧假设、过期决定或与当前职责无关的材料;应把它标明为背景,并明确最新任务范围。

上下文隔离也不等于文件系统或业务状态隔离。多个 Agent 仍可能访问同一工作区、数据库或产物,需要另外约定哪些对象可读、谁负责修改,以及新版本怎样通知接收者。

DeerFlowPython

基于 DeerFlow

这一版 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 汇总。

对应教程

参考资料

相关面经

3 篇

都学网

Agent 应用开发工程师
实习
查看原面经 →
子Agent有哪些?它们之间是什么关系?上下文是否独立?

腾讯

Agent 开发工程师
社招一面
查看原面经 →
调用sub-agent的时候,是会把主agent的一些context带到subagent里吗

阿里巴巴

AI 研发工程师
实习二面
查看原面经 →
追问
子Agent会使用父 4.Agent的所有Context吗?

相关题目

4 题