前端进阶之旅前端进阶之旅
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
首页程序员面试题库orchestrator 子任务 上下文传递 裁剪
AIAI Agent多 Agent 协作

Orchestrator 给 worker 下发子任务时,上下文应该传多少,传整个对话历史会有什么问题?

Orchestrator 向 worker 下发子任务时,应只传与当前子任务相关的必要上下文,而非整个对话历史。整段历史会引入无关 token、造成上下文污染,并显著增加成本和延迟。

前端进阶之旅 · 一题精讲更新于 2026.09.05
AI Agent#多 Agent 协作#多 Agent#并发编程
先看核心答案
理解线索

上下文精简与自包含的平衡

  1. 相关性优先只传与子任务直接相关的片段
  2. 引用替代拷贝传文档 ID 或定位符可节省 token
  3. 必须有约束缺失硬性要求会导致 worker 自由发挥

裁剪不是无脑丢历史,而是要将任务的执行所需信息编码进 prompt。

核心回答

先记住这个答案

只传递子任务所需的最小上下文,包括任务目标、关键约束、必要的数据摘要或引用,以及期望的输出格式。整个对话历史会让 worker 被无关信息干扰,增加 token 消耗,且可能泄露敏感内容。可裁剪为任务相关的原始数据或结构化摘要,必要时附上来源标识。

  • 整个对话历史会使 worker 上下文拥挤且成本失控
  • 子任务上下文应聚焦目标与必要数据
  • 过简上下文丢失约束,需平衡自包含与裁剪

上下文传递的机制:历史膨胀与注意力稀释

orchestrator 与用户多轮交互后,对话历史可能包含大量中间陈述、已修正的错误和无关闲聊。若把完整历史原样塞给每个 worker,LLM 的上下文窗口被无差别占用,有效信息密度下降,模型对关键指令的注意力会被稀释。尤其在使用长上下文模型时,细节位置错乱可能导致 worker 忽略任务核心。

更隐性的问题是“上下文偏差”:历史中未撤销的旧指令、其他 worker 的结果或对同一术语的不同用法,都会成为干扰源。worker 只应看到完成该子任务所必需的输入和规则。token 成本也随输入长度线性增长,整段传递会使成本随子任务数乘数上升,令多 Agent 协作在经济上不可持续。

场景:代码库多文件变更的分解

假设 orchestrator 接管一个修复任务:用户报告某个 API 返回超时,需要检查后端服务、前端调用和数据库查询。orchestrator 决定派两个 worker——一个分析后端日志,一个审查前端代码。如果给每个 worker 传完整 5 万 token 对话历史,其中包含用户最初的产品讨论、团队闲聊、以及给另一个 worker 的长篇指令,worker 不仅要付出高成本,还可能错误地修改前端代码以适应后端日志中的奇怪提示。

有效做法是给后端 worker 传:任务目标、相关日志文件的路径、超时错误的堆栈片段、明确要求只输出根因分析;给前端 worker 传:前端调用 API 的代码位置、超时现象描述、禁止改动后端。这样每个 worker 的上下文限制在 2-3 千 token,输出质量更高,成本更可控。orchestrator 需在任务描述中写清验收标准,并让 worker 在结果中引用它看到的输入片段,保证可追溯。

适用边界:上下文裁剪何时失效

当子任务强烈依赖全局约束时,过度裁剪会失败。比如用户要求“修改所有涉及金额的地方,并确保使用 decimal 类型”,若裁剪后没告诉 worker 全局金额处理规范,worker 可能只在局部改动而遗漏其他位置。此时应把全局规范压缩成简短的原则列表加入每个 worker 的上下文,而不是传整个历史。

另一个风险是上下文中的隐含引用:worker 需要理解用户原话中的委婉说法或指代。若直接删掉历史上下文,模型可能误解意图。解决之道是 orchestrator 在派发前主动“改写”任务,用自包含的语句复述目标与约束,并校验 worker 的计划是否符合预期。此外,有些 worker 需要结合前序 worker 的输出,则应传前序的最终结论而非其内部推理长文。

回答前,多想一步

容易答错的地方

传整个历史是损失最小的做法
事实上,完整历史会引入大量无关 token 和指令冲突,导致 worker 聚焦困难、输出质量下降,并显著提高成本。现代模型虽支持长上下文,但注意力分布并不均匀,相关细节可能埋没在噪声中。应该用最小必要上下文。
裁剪就是提取最后几轮对话
简单保留最后几轮可能遗漏早期设定的关键约束。裁剪应是语义级的,需要识别任务所依赖的目标、约束、数据源和输出格式,并重新组织成自包含的指令,而非机械截断。
试着用自己的话回答

面试官还会怎么问?

如何决定哪些上下文必须传给 worker?

可基于任务描述逆向推导:worker 要执行动作需要哪些输入数据、哪些边界条件不可违背、最终输出需满足什么形式。用 checklist 验证,遗漏时 worker 应主动询问或根据默认假设执行。

上下文裁剪是否适用于所有 orchestrator-workers 场景?

不适用。若子任务个数极少、历史极短,裁剪收益可忽略。而当 worker 需要全局视野(如跨文件重构)时,可传压缩后的全局规则而非原始历史。裁减策略应基于任务依赖度。

如何避免裁剪导致上下文缺失关键信息?

引入校验循环:worker 执行前先让它复述任务目标和关键约束,若 orchestrator 发现复述有遗漏则补充上下文。也可在 worker prompt 中强调“如缺少必要信息请明确请求”。

从一道题,走向一组知识

把知识连起来

多 Agent 协作

多 Agent 系统中的 orchestrator-workers 模式是什么,它和工作流式编排的本质区别在哪?

同属「多 Agent 协作」专题,接着看 多 Agent orchestrator-workers 模式 与 workflow 区别 在具体场景中的处理方式。

多 Agent 协作

Agent 交接时把结构化结果总结成自然语言会丢信息,如何避免有损交接?

同属「多 Agent 协作」专题,接着看 agent 交接 结构化输出 信息丢失 在具体场景中的处理方式。

参考资料

  • Building effective agents

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 上下文传递的机制:历史膨胀与注意力稀释
  3. 场景:代码库多文件变更的分解
  4. 适用边界:上下文裁剪何时失效
  5. 容易答错的地方
  6. 面试官还会怎么问
  7. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑