上下文管理

学习资料:7.1 从提示工程到上下文工程 - 从零开始学 Agent 上下文窗口管理(Context Window Management):核心概念、使用场景与实践说明 | Agent Wiki

上下文管理的内容

首先先明确一下上下文管理在做什么,以及上下文中都会有哪些内容。大语言模型的上下文是有限的,Agent不能把所有记忆,RAG检索到的东西都塞进去,会导致大语言模型输出的质量下降。喂给大语言模型的上下文中主要包含以下内容:1.System Prompt 2.User Input 3.对话记忆,也就是一轮轮的对话内容 4.RAG检索到的文档 5.工具调用结果 6.任务状态,还有一些别的,例如 Skill 和工具的描述.

上下文管理的方法

LLM 可能在实际工程中问题,如遗忘,重复,偏题。

大模型对上下文的敏感程度也不同,它对开头和结尾敏感,对中间则不敏感。

针对有限的上下文,我们需要对不同的部分规定限额。例如像下面这样。

上下文管理的具体手段

1.滑动窗口,最简单的方法,只保留最近N次对话。2.摘要压缩,当对话达到指定轮数时触发摘要压缩,将之前的历史压缩成要点 3.语义过滤,将当前用户输入和之前的历史做语义上的相似度匹配,挑选出最相关的N条放入。

面试题

一个客服 Agent 需要支持 100 轮以上的长对话,同时集成了 40 个工具。请设计窗口管理策略,说明如何处理对话历史膨胀和工具描述过载两个问题。

答案:对话历史膨胀的处理:设置滑动窗口,保留最近 5-10 轮的完整对话;超出窗口的历史按每 10 轮生成一次摘要,将摘要链条作为压缩历史保留;关键信息(如用户姓名、订单号、已确认的需求)提取到结构化的"会话状态"对象中,始终保留。

工具描述过载的处理:实施 Tool Loadout(动态工具加载),根据用户当前查询的意图分类,只加载相关的 5-10 个工具描述;研究显示,工具超过 30 个时模型的工具选择准确率会显著下降,动态加载可提升约 44% 的准确率。

预算分配建议:系统指令 10% + 会话状态 5% + 压缩历史摘要 10% + 最近对话 20% + 动态工具描述 15% + 知识检索 15% + 输出预留 25%

相关推荐
大熊背10 小时前
ISP图像处理中大数乘法溢出处理(一)
人工智能·python·算法·溢出处理
wabs66611 小时前
关于栈【力扣1047. 删除字符串中的所有相邻重复项的思考】
数据结构·c++·算法·leetcode··代码随想录
疯狂打码的少年11 小时前
【数据结构】选择类排序:简单选择与堆排序
java·数据结构·笔记·算法
晚风醉蝶12 小时前
1-16-计数排序-CountingSort
python·算法·排序算法
疯狂打码的少年12 小时前
【数据结构】排序算法:归并排序与基数排序
数据结构·笔记·算法·排序算法
吃旺旺雪饼的小男孩12 小时前
U-Net 语义分割详解:原论文、PyTorch 实现与真实消融实
人工智能·pytorch·python·算法
lucas_AI12 小时前
35 种开源文档抽取配置,只有 4 个跨过 F1 0.5
人工智能·算法·llm
练习时长一年的RL研究者13 小时前
与AI对话后对 Actor-Critic 中 TD Target 的 a‘ 来源总结
算法
大熊背13 小时前
ISP图像处理中大数乘法溢出处理(二)
算法·大数乘法
roman_日积跬步-终至千里13 小时前
【算法3】二叉树中的最大路径和
算法