最近读到了国外博主Drew Breunig的关于Agent长上下文失效原因的文章,它对Agent的长上下文失效的原因进行了分类,并指出了分别造成这些问题的原因,很受启发,在此分享给大家。大家可以点击阅读原文查看原始文章。

管理好上下文是构建成功Agent的关键

随着前沿模型的上下文窗口持续扩大(许多模型现已支持高达100万token的上下文),我看到许多令人兴奋的讨论,认为超长上下文将实现我们梦寐以求的智能体。毕竟,只要窗口足够大,你就可以简单地把所有可能需要的内容——工具、文档、指令等——全部塞进提示词中,让模型自行处理其余部分。

长上下文削弱了人们对RAG(检索增强生成)的热情(既然能将所有内容放入提示词中,何必费力寻找最佳文档!),推动了MCP(模型上下文协议)的热潮(连接所有工具,模型就能完成任何任务!),并激发了人们对智能体的热情。

但现实中,更长的上下文并不会产生更好的响应。过度填充上下文会导致你的智能体和应用以意想不到的方式失效。上下文可能被污染、分散注意力、造成混淆或产生冲突,这些都会严重影响Agent的效果,因为它们依赖上下文来收集信息、综合发现并协调行动。

让我们来看看上下文可能失效的几种方式,然后探讨缓解或完全避免上下文失效的方法。

上下文失效类型

作者总结了4种典型的失效类型:

  • 上下文中毒(Context Poisoning):幻觉挫折错误信息进入了上下文

  • 上下文干扰(Context Distraction):上下文太长、太杂时,模型会过度关注上下文而忽视训练时所学到的

  • 上下文混淆(Context Confusion):多余内容进入上下文,增加了模型认知负担,造成精度下降

  • 上下文冲突(Context Clash):存在冲突的内容进入了上下文

下面将分别介绍:

上下文中毒

上下文中毒是指幻觉或其他错误进入上下文,并被反复引用。

DeepMind团队在Gemini 2.5技术报告[1]中指出了上下文中毒问题。在玩宝可梦游戏时,Gemini智能体会偶尔产生幻觉,污染其上下文:

这个问题的一种特别严重的表现在于"上下文中毒"——上下文的多个部分(目标、摘要)被关于游戏状态的错误信息"污染",这通常需要很长时间才能纠正。结果,模型可能会执着于实现不可能或无关的目标。

如果其上下文中的"目标"部分被污染,智能体就会制定出荒谬的策略,并重复执行无法达成目标的行为。

这个最典型的例子其实是很多大模型产品的联网检索,有时候你明明看到各种榜单上报道模型效果各方面都很强,怎么问了一个非常简单大问题,回答得很差,有一种可能就是它在联网检索时,检索到了低质/错误的内容,并基于这些内容生成了最终的答案。

上下文干扰

上下文干扰是指上下文变得过长,导致模型过度关注上下文,而忽视了训练期间学到的知识。

在智能体工作流中,随着模型收集更多信息并积累历史记录,上下文会不断增长——这种累积的上下文可能变得分散注意力而非有所帮助。玩宝可梦的Gemini智能体清晰地展示了这个问题:

虽然Gemini 2.5 Pro支持超过100万token的上下文,但在智能体场景中有效利用这一能力仍是一个新的研究前沿。在这种智能体设置中,观察到当上下文显著超过10万token时,智能体倾向于重复其庞大历史记录中的行动,而不是综合制定新计划。这一现象突显了长上下文用于检索与长上下文用于多步生成推理之间的重要区别。

智能体没有利用大模型已训练的知识开发新策略,而是执着于重复其上下文历史中的过去行动。

对于较小的模型,分散注意力的上限要低得多(其实就是长上下文能力比更大的模型更弱)。Databricks的一项研究[2]发现,Llama 3.1 405b模型的正确性在约32k token处开始下降,而更小的模型则更早出现下降。

如果模型在填满上下文窗口之前很久就开始表现异常,那么超大上下文窗口的意义何在?简而言之:摘要和事实检索。如果你不做这两件事,就要警惕你所选模型的分散注意力上限。

上下文混淆

上下文混淆是指上下文中的多余内容被模型用来生成低质量响应。

有一段时间,似乎每个人都打算推出一个MCP[3]。一个强大模型连接到你所有的服务,完成所有琐碎任务的梦想似乎近在眼前。只需将所有工具描述扔进提示词中,然后点击运行即可。Claude的系统提示词[4]为我们指明了方向,因为它主要包含工具定义或使用工具的说明。

但即使整合和竞争不会减缓MCP的发展,上下文混淆也会。事实证明,工具数量确实可能过多。

BFCL(Berkeley Function-Calling Leaderboard)[5]是一个大模型工具使用测评基准,评估模型有效使用工具响应提示的能力。现在已是第三版,排行榜显示,所有模型在提供超过一个工具时表现更差。此外,伯克利团队“设计了没有提供相关函数的场景……我们期望模型的输出是不调用任何函数。”然而,所有模型偶尔都会调用不相关的工具。

浏览函数调用排行榜,你可以看到随着模型变小,问题变得更加严重:

在论文Less is More: Optimizing Function Calling for LLM Execution on Edge Devices[6]中可以看到上下文混淆的一个显著例子,该论文评估了小模型在GeoEngine基准上的表现,该测试包含46种不同工具。当团队给量化(压缩)后的Llama 3.1 8b模型提供包含全部46种工具的查询时,它失败了,尽管上下文远在16k上下文窗口之内。但当他们只给模型提供19种工具时,它成功了。

问题在于:如果你把某些东西放入上下文中,模型就必须关注它。 这可能是无关信息或不必要的工具定义,但模型将其考虑在内。大型模型,尤其是推理模型,正变得越来越擅长忽略或丢弃多余的上下文,但我们不断看到无用信息绊倒智能体。更长的上下文让我们能塞入更多信息,但这种能力也带来了缺点。

这里应该是比较容易理解的,几乎所有的Agent搭建平台,像扣子、蚂蚁百宝箱、Dify等,都会限制工具数量,核心原因就在于此。

上下文冲突

上下文冲突是指你在上下文中积累的新信息和工具与其他上下文中的信息相冲突。

这是上下文混淆的一个更严重版本:这里的所说的更严重,不是说上下文中引入了无关信息,而是指存在提示词中的信息冲突。

微软和Salesforce团队在最近一篇论文LLMs Get Lost In Multi-Turn Conversation[7]中精彩地记录了这一点。该团队从多个基准中提取提示词,并将其信息"分片"到多个提示中。可以这样理解:有时,你可能会坐下来在ChatGPT或Claude中输入几段文字,然后再按回车,考虑所有必要细节。其他时候,你可能会从一个简单提示开始,然后在聊天机器人的回答不满意时添加更多细节。微软/Salesforce团队修改了基准提示词,使其看起来像这些多步骤交换(可以理解为多轮对话):

左侧提示中的所有信息都包含在右侧的多条消息中,这些消息会在多轮聊天中展开。

分片提示产生了明显更差的结果,平均下降了39%。该团队测试了一系列模型——OpenAI备受赞誉的o3模型得分从98.1降至64.1。

这是怎么回事?为什么模型在分阶段收集信息时表现比一次性收集所有信息时更差?

答案是上下文混淆:组装的上下文包含整个聊天多个轮次的全部内容,其中包含模型在尚未获得所有信息前尝试回答的早期尝试。这些不正确的答案仍保留在上下文中,并在模型生成最终答案时对其产生影响。该团队写道:

我们发现LLM经常在早期轮次中做出假设并过早尝试生成最终解决方案,然后过度依赖这些方案。简单来说,我们发现当LLM在对话中走错方向时,它们会迷失方向且无法恢复。

这对智能体构建者来说不是个好兆头。智能体从文档、工具调用以及其他负责子问题的模型中组装上下文。所有这些来自不同来源的上下文都有可能相互矛盾。此外,当你连接到非自己创建的MCP工具时,它们的描述和指令更有可能与提示词的其余部分产生冲突。

这个在做RAG项目时其实也比较常见,绝大多数公司的知识管理其实做得很一般,文档分散在各处,Wiki、Word、PDF、内部系统等,术语、版本其实并未统一,有时候针对相同的主题,会衍生出非常多的版本来,可能是内部培训时,学员根据讲义做的笔记,可能是流程/系统版本发生变化,文档也随之变化了,但在构建知识库时,这些很难做系统性的清理,因为你在做系统性清理时,又有新的文档产生了,又会有这样的问题,这样的知识库在实际使用时,就会出现相同问题对应多个存在矛盾的参考的问题。所以归根结底,这是个管理问题,文档编写规范太严,就意味着内部知识很难有效积累,规范太松,就会导致各种不一致。

结语

百万token上下文窗口的到来感觉是变革性的。能够将智能体可能需要的一切都扔进提示词中,激发了人们对超级智能助手的想象——这些助手可以访问任何文档,连接到每个工具,并保持完美记忆。

但正如我们所见,更大的上下文创造了新的失效模式。上下文中毒会嵌入随时间推移而累积的错误。上下文干扰导致智能体过度依赖其上下文并重复过去行动,而不是向前推进。上下文混淆导致无关工具或文档的使用。上下文冲突则产生内部矛盾,破坏推理过程。

这些失效对智能体打击最大,因为智能体恰恰在上下文膨胀的场景中运行:从多个来源收集信息、进行顺序工具调用、参与多轮推理并积累大量历史记录。

 AI大模型从0到精通全套学习大礼包

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

只要你是真心想学AI大模型,我这份资料就可以无偿共享给你学习。大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!

如果你也想通过学大模型技术去帮助就业和转行,可以点扫描下方👇👇
大模型重磅福利:入门进阶全套104G学习资源包免费分享!
在这里插入图片描述

01.从入门到精通的全套视频教程

包含提示词工程、RAG、Agent等技术点
在这里插入图片描述

02.AI大模型学习路线图(还有视频解说)

全过程AI大模型学习路线

在这里插入图片描述

​​在这里插入图片描述

03.学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

在这里插入图片描述

04.大模型面试题目详解

在这里插入图片描述

在这里插入图片描述

05.这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

所有的视频由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

在这里插入图片描述
在这里插入图片描述

智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

在这里插入图片描述
如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

Logo

更多推荐