AI智能体中上下文压缩技术的演进
LangChain
OpenRouter
AI智能体依赖消息历史来维持上下文,但过长的日志会耗尽大语言模型(LLM)的上下文窗口并导致性能下降。上下文压缩技术从简单的尾部截断,演进到摘要生成,再到保护头部和尾部信息,最终实现存储历史与工作上下文的分离,并借助工具按需检索细节。
AI代理是用户与语言模型(LLM)之间交换消息的循环过程,其中模型可以调用工具或MCP(模型上下文协议)。每次交互都会追加到对话历史中,而该历史通常会在下一次模型调用时完整发送。然而,上下文窗口虽然很大,但并非无限,而且随着历史记录庞大且结构不良,性能会下降。经典的《迷失在中间》论文展示了一个U形曲线:模型对长输入的开头和结尾利用得比中间更好。文章追溯了压缩上下文方法的发展历程:在LangChain中通过trim_messages进行简单的尾部裁剪(滚动窗口);在create_agent中使用SummarizationMiddleware将旧消息总结为摘要块;然后保护前N条消息和最新的尾部,同时压缩中间部分,如Hermes Agent和OpenRouter的中间向外压缩所示。最新的方法将存储的历史与工作上下文分离:完整历史保存在外部(例如,在文件中),模型调用接收包含最新尾部加摘要的视图,并给代理提供诸如read_file或grep等工具,以便从完整历史中检索细节。LangChain的Deep Agents库在其SummarizationMiddleware中实现了这一点,尽管该名称与基本中间件令人困惑地共享。这种演变是更广泛的上下文工程趋势的一部分,该趋势区分了代理所知道的内容(完整历史、工具结果、技能)与进入下一次模型调用的内容。
来源: Habr — хаб ИИ —
原文
