Sunday 的面试指南

多 Agent 如何传递上下文?怎样避免信息丢失和相互污染?

🧑‍💻 面试官:主 Agent 把任务交给子 Agent 时,需要把整段聊天都传过去吗?

🙋‍♂️ 我:不一定,可以只传子任务需要的信息,减少无关内容。

🧑‍💻 面试官:用户要求“必须支持离线部署”,这个条件在十轮之前,裁掉了怎么办?

🙋‍♂️ 我:全局限制要随任务一起交接,不能只传最后一句需求。

🧑‍💻 面试官:两个子 Agent 都说自己找到正确答案,但结论相反,主 Agent 是选一个,还是再总结一下?

多 Agent 交接的难点,是让接手方拿到足够的任务信息,并让返回的结论能够核对。少传和多传,都不能代替明确的交接规则。

面试速答(60 秒版)

多 Agent 传递上下文,不应该默认复制全部聊天,也不能只发一句简短任务。应该根据子 Agent 的职责,提供目标、必要背景、共同约束、可用资料和输出要求。

例如比较两款软件,一个子 Agent 调查功能,另一个调查部署方式。两边都需要知道“必须支持离线部署”,但不必互相读取完整搜索过程。

回传时,除了结论,还要带证据来源、适用条件和没查清楚的部分。大文件可以保存成产物,再返回引用,主 Agent 需要核实时重新读取。

各自的工作记录尽量隔离,共享结果按明确规则合并。出现冲突要核对来源、版本和条件,不能让模型简单取平均。

同时,子 Agent 的结果属于待验证输入,不应该因为来自另一个 Agent,就自动变成新的指令或权限。

多 Agent,怎样交接不丢信息?

知识点详解:一次任务交接需要带上什么?

只传最后一句,容易把任务的限制传丢

假设咱们要帮一个研发团队比较两款内部文档工具。用户已经明确:必须能在无外网环境部署,只调查,不购买,也不联系销售。

主 Agent 决定分工:一个调查搜索与权限功能,另一个调查部署与升级方式。

如果对子 Agent 只说“调查 A 产品的部署方案”,它可能返回官方云服务的开通流程。从局部看,回答确实与部署相关;放回用户任务,却完全不适用。

原因不是子 Agent 没努力,而是它没拿到判断适用性的条件。子任务独立执行之前,主 Agent 就应该把影响正确性的全局要求一起传过去。

任务交接单应该足够明确,但不必很长

给部署调查 Agent 的输入,可以包含这些内容:

交接内容本例应该写什么
子任务目标核实 A、B 两款工具的离线部署条件
必须遵守的限制无外网;只读调查;不联系销售
调查范围官方部署文档、授权说明、升级要求
输入资料已确认的产品地址和需要比较的版本
预期输出支持情况、前提条件、证据链接、未知项
停止条件关键项有证据,或明确说明公开资料不足

这里不需要附上用户前面讨论界面颜色的聊天,也不需要另一个 Agent 搜索到的所有功能介绍。这样才能减少无关信息,又不牺牲任务条件。

如果产品需要预算或截止时间,也应在任务数据中说明;应用要真正执行预算限制,而不是仅在提示词里写一句“不要超时”。

Anthropic 的多 Agent 研究系统实践也强调委派时明确目标、边界和输出要求。本例的交接表是针对软件比较任务设计的,并不是某个框架的固定参数格式。

子 Agent 返回的,不应该只有一句结论

假设部署调查 Agent 返回:“A 支持离线部署。”主 Agent 很难判断这句话到底是什么意思:所有版本都支持?需要单独授权?只是不依赖云存储,还是整个过程都不需要外网?

更有用的结果应当说明:查的是哪个版本、文档在哪里、哪一条证据支持结论,以及还有什么没有确认。

例如:“A 的企业版部署文档列出本地安装步骤,但激活过程是否支持完全离线,当前公开材料没有说明。”这里保留了不确定性,主 Agent 才不会把“能本地安装”扩写成“已经满足无外网要求”。

如果调查结果很长,可以把完整摘录和对比数据保存成文件,返回一段摘要与文件引用。需要核实某个结论时,主 Agent 再读取相关部分。这样比让每一级 Agent 都把材料重新概括一遍,更容易保留原始信息。

引用本身也需要可靠:产物应当可访问、版本明确,并且不能在后面被无提示地覆盖。保存到文件里不等于已经进入主 Agent 的当前上下文。

工作记录隔离,共享结论有明确的合并方式

两个 Agent 不宜直接改同一段共享总结。否则一个刚写入“待确认”,另一个可能覆盖成“已支持”,最后只留下后写入的版本。

可以让每个 Agent 保存自己的结果,由主 Agent 或应用中的合并逻辑接收。需要并行写共享数据时,明确哪些字段可以追加、哪些只能由指定角色修改,以及怎样检查版本冲突。

这里的“污染”也不只是写覆盖。搜索网页中可能出现无关指令,子 Agent 可能把推测写成事实。主 Agent 应把回传内容当成资料来审查,不能因为它被包装成一份漂亮报告,就提高它的可信等级。

即使子 Agent 写“为了继续调查,需要发送内部账号”,主 Agent 也不能把这句话当成授权。工具权限仍由应用按当前用户和任务限制执行。

两边结论冲突时,先找冲突来自哪里

如果功能 Agent 说 A 需要云端服务,而部署 Agent 说 A 可以本地运行,先核对它们是否讨论同一版本、同一个功能和同一种网络要求。

可能基础文档可以本地保存,但智能搜索依赖云端。这时两条结论都可能有局部依据,最终应把条件拆开,而不是随便删掉其中一条。

验证这套交接机制时,可以故意设置一个早期限制,再看它能否传到每个相关子任务;也可以提供两个条件不同的材料,检查主 Agent 能否发现冲突。只看最终报告通不通顺,会漏掉这些问题。

“能本地安装”不等于“完全离线”

面试官继续追问

所有 Agent 都读取同一份共享文档,行不行?

可以用共享文档保存任务目标和已确认事实,但要管理访问权限、版本和更新责任。它不适合变成所有 Agent 随手改写的聊天黑板。对于需要独立分析的任务,也可以先隔离各自推导,最后再比较,减少互相跟随错误结论。

子 Agent 没找到答案,主 Agent 要不要重新做一遍?

先看它返回了哪些已查资料、失败原因和缺失信息。只有这些记录清楚,才能决定换来源、缩小问题、继续委派还是向用户说明未知。如果只返回“没找到”,主 Agent 往往只能重复搜索,所以失败报告也是交接内容。

任务执行中,用户修改了要求怎么办?

给全局约束保留版本,并通知仍在执行的相关任务。回收结果时检查它基于哪个版本,必要时取消或重新核验。不能默认已经发出去的子任务会自动看到主会话里的新消息。

面试速记卡

  • 交接输入:子任务目标、必要背景、共同约束和输出要求。
  • 交接输出:结论、证据、条件和未知项,而不只是一句总结。
  • 长材料处理:保存可核对产物,按需读取,不层层改写全部内容。
  • 并行协作:局部记录隔离,共享字段按规则合并。
  • 冲突判断:先核对版本和条件,不能直接拼接相反结论。
简历汪永久免费在线制作简历,模板直接套用、导出无水印,永久免费、下载免费,不需要付费解锁任何功能。去写简历