上下文管理是构建和优化LLM代理的关键,因为“上下文中的每一个token都会影响模型的行为,无论好坏”。以下介绍了大型语言模型(LLM)上下文中可能出现的失败类型以及相应的缓解和避免策略。
上下文失败的类型
长上下文可能导致模型失败的几种方式:
- 上下文中毒(Context Poisoning):当幻觉或其他错误进入上下文并被反复引用时。
- 上下文分散(Context Distraction):当上下文过长,模型过度关注上下文内容,而忽略了训练期间学到的知识。
- 上下文混乱(Context Confusion):当上下文中存在多余信息,导致模型生成低质量的响应。
- 上下文冲突(Context Clash):当上下文中积累的新信息和工具与提示中的其他信息发生冲突时。
对于LLM来说:“所有这些都关乎信息管理。上下文中的一切都会影响响应。所以我们又回到了‘垃圾进,垃圾出’这句老编程格言。”
上下文管理策略
因此为了应对上述4个问题,有以下六种上下文管理策略可供参考:
1. RAG(检索增强生成)
- 定义:“检索增强生成(RAG)是选择性地添加相关信息以帮助LLM生成更好响应的行为。”
- 核心思想:尽管模型上下文窗口不断增大(例如Llama 4 Scout达到了1000万个token),RAG仍然至关重要。将上下文视为“垃圾抽屉”,其中的垃圾会影响响应。因此,即使长上下文也需要精心管理,不能“一股脑全扔进去”。
2. 工具加载(Tool Loadout)
- 定义:“工具加载是指选择仅与上下文相关的工具定义添加到上下文中的行为。”
- 核心思想:为特定任务选择最相关的工具是关键。当工具数量超过一定阈值时(例如,DeepSeek-v3超过30个工具,Llama 3.1 8b超过19个工具),模型性能会急剧下降,原因在于“上下文混乱,而非上下文窗口限制”。
- 实践:可以通过对工具描述应用RAG技术来动态选择工具。例如,“RAG MCP”和“Less is More”论文中的方法,后者通过LLM驱动的工具推荐器使Llama 3.1 8b的性能提升了44%。
- 额外效益:缩小上下文还有助于“降低功耗和提高速度”,这对于边缘设备(如手机或PC)上的LLM操作至关重要,即使未能提高结果,也能带来显著的功耗(18%)和速度(77%)节省。
3. 上下文隔离(Context Quarantine/Isolate)
- 定义:“上下文隔离是将上下文隔离到自己的专用线程中,每个线程由一个或多个LLM单独使用。”
- 核心思想:通过将任务分解为更小、隔离的作业,每个作业拥有自己的上下文,可以获得更好的结果。
- 实践:Anthropic的多智能体研究系统就是一个典型例子。子智能体可以在自己的上下文窗口中并行操作,探索问题的不同方面,然后将最重要的信息提炼给主研究智能体。这种方法实现了“关注点分离”,减少了路径依赖,并使信息收集和提炼速度更快。
- 效果:Anthropic的内部评估显示,多智能体系统在广度优先查询(如识别S&P 500信息技术公司董事会成员)方面,“比单智能体Claude Opus 4表现高出90.2%”。
4. 上下文修剪(Context Pruning)
- 定义:“上下文修剪是删除上下文中不相关或不需要的信息的行为。”
- 核心思想:代理在运行工具和收集文档时会积累上下文,定期评估并删除“无关紧要的内容”是有益的。
- 实践:可以使用专门的工具进行修剪,例如Provence,它是一个“高效、强大的问答上下文修剪器”。Provence能够根据问题将文章内容剪掉95%,只留下相关子集。
- 建议:维护上下文的“结构化”版本(例如字典形式),在每次调用LLM之前将其编译为字符串,这将有助于修剪时确保主要指令和目标得到保留。
5. 上下文总结(Context Summarization)
- 定义:“上下文摘要是将累积的上下文提炼成简明摘要的行为。”
- 核心思想:虽然最初用于解决较小的上下文窗口限制,但即使在上下文窗口增大后,摘要仍然有益,可以防止“上下文分散”——当上下文显著超过一定阈值(如Gemini代理发现的10万个token)时,模型可能倾向于重复历史行为而非生成新颖的计划。
- 实践挑战:虽然摘要操作本身容易,但要完美实现却很难。关键在于“知道应该保留哪些信息,并将其详细告知LLM驱动的压缩步骤”。
6. 上下文卸载(Context Offloading)
- 定义:“上下文卸载是将信息存储在LLM上下文之外的行为,通常通过存储和管理数据的工具。”
- 核心思想:提供一个“草稿本”(Anthropic称之为“think”工具)让模型记录笔记和进展,这些笔记不会污染主上下文,但可供后续参考。
- 效果:Anthropic的研究表明,将“think”工具与特定领域提示相结合,可以使专业代理的基准测试性能提高“高达54%”。
- 适用场景:该模式在以下三种情况中特别有用:
- 工具输出分析:当LLM需要仔细处理工具调用输出并可能回溯方法时。
- 策略密集型环境:当LLM需要遵循详细指南并验证合规性时。
- 顺序决策:当每个动作都建立在前一个动作之上且错误代价高昂时。
本文是 此 的学习笔记,如需阅读原文请点击链接。

258

被折叠的 条评论
为什么被折叠?



