上下文管理

学习资料: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%

相关推荐
拓恒技术16 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
晨曦中的暮雨17 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
怕浪猫17 小时前
Claude Code vs Codex:Computer Use 实现原理深度拆解
算法·面试·github
罗西的思考19 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
淡海水19 小时前
07-02-源码-.NET Core GC分配路径
算法·unity·c#·.netcore·gc·1024程序员节
下一站春风里20 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
DRobot21 小时前
【机械制图与CAD实战(二十五)】螺纹的表示方法
算法·机械制图
用户老李21 小时前
卡尔曼滤波自学教程 10:无迹卡尔曼滤波(UKF)
算法
深圳市益普科技有限公司1 天前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法
程序员清风1 天前
算法题中的边界条件、测试与调试
开发语言·算法·kotlin