Agent上下文窗口

概念

上下文窗口就是大模型能一次处理的文本长度上限,有包括:系统提示词、工具定义、对话历史、工具调用结果、推理过程等。

  1. Agent是多轮执行的,每一轮都回家新的东西,一个复杂的任务很容易达到几十万token。
  2. 上下文长度大导致大模型的注意力衰减,中间的信息容易被忽略。
  3. 上下文长度大会导致推理时间和成本太大。

解决方法

所谓解决方法要从根因上解决:系统提示词、工具定义、对话历史、工具调用结果、推理过程。

滑动窗口( 对话历史**)**

比较垃圾的做法是用滑动窗口来保留最近N轮的对话,更早的就丢掉或者压缩。缺点是容易丢掉关键的记忆。

分层记忆( 对话历史**)**

分层记忆就是把重要的信息写入外部存储,像向量数据库,需要的时候按需通过检索拼到滑动窗口里。

记忆压缩( 对话历史**)**

把比较早的对话用再叫替代,比如说用专门的模型将前N轮的对话压缩成多少token等。有研究表示大模型对窗口的首尾注意力更强,那就是说最好压缩中间部分。

动态加载工具( 工具定义**)**

不将所有工具塞进上下文,根据上下文只加载相关的可能用到的工具。

精简工具描述、合成相关工具、分阶段工具调用( 工具定义**)**

压缩工具的描述,保留工具的关键信息。

将相关的工具合成一个大工具(比如将CRUD用户的工具合成一个用户管理工具)。

将工具名字和描述分开,让模型先选然后再加载详细的描述来让模型挑选。

工具结果截断( 工具结果**)**

一次数据库查询可能返回几千行数据,全塞进上下文既浪费token又干扰模型注

意力。可以只保留前50-100行,或者让模型自己指定只要哪些字段需要多少行数据。

事前控制、事中截断、事后摘要( 工具调用结果**)**

事前控制:在调用工具前就限制返回数据的数量,比如数据库查询加limit,限制接口返回的条数,可以把limit这些参数告诉Agent,让他自己控制。

**事中截断:**在工具返回数据后,在应用层做截断,比如按token按条数截,截断后可以附上数据的总结(统计信息),让模型知道一些样例数据和数据全貌。

**事后摘要:**就是把工具返回的数据,让另外一个专门的大模型压缩成关键信息。

分页加载( 工具调用结果**)**

就是让工具支持limit等参数,告诉大模型第一页的数据以及翻页需要的参数格式,大模型自己决定是否翻页。(需要告诉ai比如说最多翻页多少)

结构化截断( 工具调用结果**)**

截断不是简单的按照token阶段,而是要保留前几条完整数据、数据总数、以及数据统计让模型理解数据结构和特点。比如:

查询到了500条信息,前5条实例:

********

统计:平均成绩:90分,高于90分的50人,低于60分的120人,最高分99,最低分45。

多级压缩( 工具调用结果**)**

  1. 工具层limit的控制
  2. 结构化截断
  3. 如果还超过token阈值,做LLM语义压缩

监控Agent 的上下文使用

在应用层做token技术,每轮或者几轮循环前算一下上下文大小,接近阈值就压缩(可以这样设置:先压缩早期对话,接着截断工具结果,然后还是不行的话吧关键的记忆持久化然后卡一个新的对话(chatgpt就有这样的方式))。

大模型对上下文的注意力问题

大模型对上下文首尾的注意力比较强,可以将系统提示词放到首位将关键的信息放到尾部,压缩的历史信息放到中间。

相关推荐
Martina_03211 小时前
AI生成3D场景从白模换成精模后镜头全偏了?用6步检查单位、枢轴与层级替换
图像处理·人工智能·3d·ai·自然语言处理·材质·1024程序员节
装不满的克莱因瓶3 小时前
【SpringAI Alibaba】ReactAgent记忆管理MessageTrimmingHook与MessageDeletionHook
java·人工智能·ai·ai编程·springai·springaialibaba
七夜zippoe4 小时前
Agent 数据安全实战:输入校验、PII 脱敏与输出过滤的三道防线
ai·agent·数据安全·校验·过滤·pii脱敏
xiezhr5 小时前
workbuddy接管我的浏览器,帮我干活了
ai·浏览器自动化·ai-agent·workbuddy
不吃紫菜13 小时前
LangGraph 体系实战(上):建图、状态管理、控制流与持久化
ai
七夜zippoe17 小时前
Agent 优雅降级实战:模型不可用时的后备方案设计
ai·agent·模型·降级·后备方案
七夜zippoe21 小时前
Agent 超时与幂等性:重复请求、副作用控制与状态一致性
ai·agent·超时·控制·幂等性
秋饼1 天前
Computer Use Agent Java 落地实战:感知-行动循环、执行器与安全围栏生产级实现
java·ai·技术分享·后端开发
又过二十1 天前
结合Godot八向图实现网页角色设计器测试
ai·aigc·godot·game·qwen-image·游戏素材
aicat_cn1 天前
json-render 接入 Chat SDK:Agent 在 Slack 和 Teams 里直接回表格和按钮
ai·大模型