最近在折腾一个 AI Agent 项目,用 LangChain 搭的,主要做多步文档问答。比如用户问“对比去年Q3和今年Q3的销售数据,再总结趋势”,Agent 需要先检索两个季度的报告,再调用工具做对比。但问题来了:检索出来的 chunks 一多(比如每个季度抽了5-10个片段),再加上 Agent 自己的思考链,上下文窗口很快就塞爆了,经常报 token 超限或者生成结果开始胡扯。我试过调低 top_k 或者用更小的模型,但效果不理想,核心信息反而丢了。想问下大家,有没有比较成熟的上下文管理策略?比如动态摘要、滑动窗口,或者干脆把中间结果存到外部存储里?求推荐实战经验,谢谢!
楼主
1天前
RAG + Agent 做复杂任务时,上下文太长老是崩,有什么好办法?
请 登录 后发表回复
全部回复
共 5 条
2楼
8小时前
试试把检索结果先做一轮摘要再塞给Agent,我这么搞之后上下文压力小多了。
3楼
7小时前
试试把检索结果先做一轮摘要再塞进上下文,或者用记忆模块把历史步骤存向量库里按需调取。
4楼
5小时前
试试把中间结果存到向量数据库里,只传关键摘要给Agent,这样上下文压力小很多。
5楼
4小时前
你这问题太典型了,我也踩过类似的坑。试下来觉得动态摘要挺管用的——每轮Agent决策后把非关键上下文压缩成一句话,再配合滑动窗口只保留最近两轮思考链,能省不少token。另外把中间结果存向量数据库里,需要时按相关性召回,比全塞进提示词里靠谱得多,推荐试试。
6楼
4小时前
刚入门,这个对我帮助很大。