收藏必备!Agent架构设计中的上下文压缩实战方案,助你拿下大厂P7
本文探讨了Agent架构设计中的上下文压缩方案,提出5种工程实践方法。无损压缩包括:1)省略一致出入参;2)长文后期省略;3)分段读取。有损压缩包括:4)就地压缩长文;5)LLM+压缩口令Prompt终极方案。文章强调应优先采用无损压缩,必要时结合有损方案,以解决大模型上下文窗口限制和注意力衰减问题,确保Agent稳定运行。这些方案既可单独使用,也可组合实施,为Agent开发提供实用指导。
本文介绍了Agent架构设计中的5种上下文压缩方案:无损压缩包括省略一致出入参、长文后期省略、分段读取;有损压缩包括就地压缩长文和LLM+压缩口令Prompt终极方案。文章强调应优先无损压缩再考虑有损压缩,以平衡信息保留与上下文长度,解决大模型上下文窗口有限和注意力机制导致的性能衰减问题。

编者的话
从本文开始,我将陆续介绍关于Agent架构设计的一系列实践。不只是代码以及技术设计层面的实战,还有更高层面的抽象总结。有兴趣的读者可以实操后拿去做面试题或者面试答案。以我多次面试别人以及被面试的经验来看,如果系统掌握这些实践,拿个大厂P7(或对应)职级应该不是问题。Boss直聘、脉脉上大量关于Agent开发的职位,例如:Agent开发工程师、AI工程开发、大模型应用平台开发等。
当然,我个人也不提倡因为需要面试而“背”答案,只背答案而不去实操,面试的时候也容易漏洞百出。
本系列实践主要用于构建完全自主规划的Agent,类似Manus,而非基于workflow的Agent,至于二者区别,本系列实践中也将有专门论述。

本系列实践的相关内容
- 架构选项讨论,自主型的Agent vs. Workflow型的Agent;
- 架构详细设计,从多智能体到智能体工具交互协议;
- 上下文工程,上下文压缩的几种方案(本文);
- 上下文工程,Agent运行过程中错误处理的几种方案;
- 其他主题,如有兴趣,可以评论区或私信交流。
ps. 欢迎订阅本公众号,以便于接收后续更新.
上下文压缩的几种方案
- 为什么要做上下文压缩?
在上下文工程中,为什么要做压缩,这个问题的答案很明显:
- 大模型的上下文窗口有限,虽然近来新模型(Gemini 3 pro/kimi k2/minimax m2等)上来就是百万token,但是依然无法承载几百轮Agent Loop上下文的叠加,对于几万页的pdf更是无法处理;
- 假设,大模型的上下文窗口是无限的,根据注意力机制,上下文变长后,注意力将“涣散”,无法准确理解任务意图。在《上下文腐败:逐步增长的Tokens如何影响LLM的性能》(https://research.trychroma.com/context-rot)一文中,作者通过实验证明长下文会使LLM的性能严重衰减。
因而,要让Agent稳定可靠地运行下去,必须对上下文进行压缩。本文仅讨论5种工程方案。当然除了工程方案也有算法方案,不过算法方案对大部分人来说门槛过高。因而本文不做介绍。
- 上下文压缩的方案
上下文压缩方案从是否有损的角度看,分为有损以及无损两种。先来看一段原始上下文:
<操作>
<第0轮>
<执行ID>op00000</执行ID>
<执行函数>create_todo_list</执行函数>
<参数>
{
id: "todo001",
"steps": [
"搜索最新的人工智能发展趋势",
"整理搜索结果",
"撰写总结报告"
]
}
</参数>
<执行结果>
{
"status": "success",
"message": "待办事项列表已创建,ID为 todo001"
"steps": [
"搜索最新的人工智能发展趋势",
"整理搜索结果",
"撰写总结报告"
]
}
</执行结果>
</第0轮>
<第1轮>
<执行ID>op12345</执行ID>
<执行函数>search_with_google</执行函数>
<参数>
{
"query": "最新的人工智能发展趋势", "num_results": 5
}
</参数>
<执行结果>
{
"results": [
{
"title": "2024年人工智能发展趋势分析",
"link": "https://example.com/ai-trends-2024",
"snippet": "本文详细分析了2024年人工智能的发展趋势,包括生成式AI、AI伦理和可解释性等方面。"
},
{
"title": "人工智能的未来:2024及以后的展望",
"link": "https://example.com/future-of-ai-2024",
"snippet": "探讨了人工智能在各个行业中的应用前景以及未来的发展方向。"
},
{
"title": "2024年人工智能技术的十大趋势",
"link": "https://example.com/top-ai-trends-2024",
"snippet": "列出了2024年最重要的人工智能技术趋势,包括自动化、机器学习和深度学习的最新进展。"
},
{
"title": "人工智能在医疗领域的最新进展",
"link": "https://example.com/ai-in-healthcare-2024",
"snippet": "介绍了人工智能在医疗诊断、治疗和患者管理中的最新应用和发展。"
},
{
"title": "生成式AI的崛起及其影响",
"link": "https://example.com/rise-of-generative-ai-2024",
"snippet": "分析了生成式AI技术的发展及其在内容创作、设计和娱乐领域的影响。"
}
]
}
</执行结果>
</第1轮>
<第2轮>
<执行ID>op67890</执行ID>
<执行函数>file_reader</执行函数>
<参数>
{
"file_path": "ai_trends_summary.txt"
}
</参数>
<执行结果>
{
"content": "2024年人工智能发展趋势总结:\n
1. 生成式AI技术的快速发展,推动内容创作和设计领域的创新。\n
2. AI伦理和可解释性成为关注焦点,推动行业规范和政策制定。\n
3. 人工智能在医疗、金融等关键行业的应用不断深化,提高效率和服务质量。\n
4. 自动化和机器学习技术的进步,促进各行业的数字化转型。 \n
5. 多模态AI的发展,使得AI系统能够处理和理解多种类型的数据,提高交互体验。 \n
6. 边缘AI的兴起,推动实时数据处理和智能设备的发展。"
}
</执行结果>
</第2轮>
</操作>
以上内容约4000个token。
我们来逐步分析以上内容如何压缩。首先,我们观察到第0轮:create\_todo\_list 出入参有相同之处,可以省略。
2.1 无损压缩方案1:当出入参部分一致时,可以省略部分出参
create_todo_list,可以压缩为:
<第0轮>
<执行ID>op00000</执行ID>
<执行函数>create_todo_list</执行函数>
<参数>
{
"id": "todo001",
"steps": [
"搜索最新的人工智能发展趋势",
"整理搜索结果",
"撰写总结报告"
]
}
</参数>
<执行结果>
{
"message": "待办事项列表已创建,ID为 todo001"
}
</执行结果>
</第0轮>
对于todo list、plan相关的函数,可以使用类似压缩策略。
出入参压缩完成后,我们看search\_with\_google的压缩方案。这类长文的压缩方案,我们可以在第n+3轮调用时,进行省略,通过给LLM提供一个长文查阅的工具,以备不时之需。
2.2 无损压缩方案2:长文在第n+3轮调用时,进行省略
例如,在第1轮时,调用了search\_with\_google方法,在第4轮Agent Loop时,其相关上下文会被省略为:
<第1轮>
<执行ID>op12345</执行ID>
<执行函数>search_with_google</执行函数>
<参数>
{
"query": "最新的人工智能发展趋势", "num_results": 5
}
</参数>
<执行结果>
执行结果被省略,如需要,请使用view_return_value(execution_id)查看结果
</执行结果>
</第1轮>
这种方法,适用于search、file_reader等长文执行结果方法。
在长文压缩后,我们再看file_reader如何压缩与优化。file_reader主要作用是从文档中读取内容,使其对LLM可见,可是,一旦文档内容过长,上下文里面就“爆掉”,对此,我们的压缩方案是:分段读取,或就地压缩。
2.3 无损压缩方案3:长文分段读取
所谓长文分段读取,就是在file_reader中要求,读取必须提供begin_line,end_line序号,且要求一次最多不许超过n行,如下(注意参数部分):
<第2轮>
<执行ID>op67890</执行ID>
<执行函数>file_reader</执行函数>
<参数>
{
"file_path": "ai_trends_summary.txt"
"begin_line": 0
"end_line":5
"max_range":10
}
</参数>
<执行结果>
{
"content": "2024年人工智能发展趋势总结:\n
1. 生成式AI技术的快速发展,推动内容创作和设计领域的创新。\n
2. AI伦理和可解释性成为关注焦点,推动行业规范和政策制定。\n
3. 人工智能在医疗、金融等关键行业的应用不断深化,提高效率和服务质量。\n
4. 自动化和机器学习技术的进步,促进各行业的数字化转型。 \n
5. 多模态AI的发展,使得AI系统能够处理和理解多种类型的数据,提高交互体验。 \n
6. 边缘AI的兴起,推动实时数据处理和智能设备的发展。"
}
</执行结果>
</第2轮>
注意,这种方法,只能让文本被正常读取,但不能彻底解决长文问题,甚至还可能引发多次读取的副作用。如果要彻底解决该问题,需要进行有损就地压缩。
2.4 有损压缩方案1:就地压缩长文
所谓就地压缩,就是不读取内容,而是直接让LLM尝试回答文章的问题。我们把file_reader换成ask_document:
<第2轮>
<执行ID>op678900</执行ID>
<执行函数>ask_document</执行函数>
<参数>
{
"file_path": "ai_trends_summary.txt"
"question": "提取文章的核心内容,不超过20字"
}
</参数>
<执行结果>
{
"content": "2024年人工智能发展趋势总结:内容创新、边缘AI等"
}
</执行结果>
</第2轮>
注意,这里只是提取了核心内容,更多文章细节可能丢失,因而称为“有损压缩”。
最后,我们讨论一种方法,堪称压缩的“大招”。就是做完以上压缩方案后,内容依然超长。此时就需要使用有损压缩的终极方案。
2.5 有损压缩的终极方案:通过LLM + 压缩口令Prompt进行压缩
方案分两步走:
- 检测Agent Loop上下文窗口,超过一定数量以后启动压缩,例如超过60000 token后,开始压缩;
- 将Agent Loop的上下文,以及压缩口令Prompt交给LLM启动压缩,压缩口令Prompt如下:
请将以下操作记录进行压缩,保留所有轮次(包括第0轮、第2-4轮)的关键信息,
如执行ID、执行函数、参数和执行结果的核心内容,但简化描述以减少冗余。
压缩后的输出应保持原始的XML格式结构,
包括使用相同的标签(如<操作>、<第X轮>、<执行ID>等),
并确保内容简洁明了。
使用这段口令,对原始上下文压缩后的结果为(from deepseek网页版):
<操作>
<第0轮>
<执行ID>op00000</执行ID>
<执行函数>create_todo_list</执行函数>
<参数>{"id": "todo001", "steps": ["搜索最新的人工智能发展趋势", "整理搜索结果", "撰写总结报告"]}</参数>
<执行结果>{"status": "success", "message": "待办事项列表已创建"}</执行结果>
</第0轮>
<第1轮>
<执行ID>op12345</执行ID>
<执行函数>search_with_google</执行函数>
<参数>{"query": "最新的人工智能发展趋势", "num_results": 5}</参数>
<执行结果>{"results": [{"title": "2024年人工智能发展趋势分析"}, {"title": "人工智能的未来:2024及以后的展望"}, {"title": "2024年人工智能技术的十大趋势"}]}</执行结果>
</第1轮>
<第2轮>
<执行ID>op67890</执行ID>
<执行函数>file_reader</执行函数>
<参数>{"file_path": "ai_trends_summary.txt"}</参数>
<执行结果>{"content": "2024年AI趋势总结:生成式AI、AI伦理、医疗应用、自动化、多模态AI、边缘AI等关键发展。"}</执行结果>
</第2轮>
</操作>
只有1200 token,但是我们看到部分内容也丢失了。所以使用有损压缩,要充分考虑损失是否影响最终结果。
总结
本文讨论了在Agent架构设计中,具有代表性的5种上下文压缩方案,及其应用场景。在实践中,优先考虑使用无损压缩,再考虑有损压缩。
AI时代,未来的就业机会在哪里?
答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具,到自然语言处理、计算机视觉、多模态等核心领域,技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。

掌握大模型技能,就是把握高薪未来。
那么,普通人如何抓住大模型风口?
AI技术的普及对个人能力提出了新的要求,在AI时代,持续学习和适应新技术变得尤为重要。无论是企业还是个人,都需要不断更新知识体系,提升与AI协作的能力,以适应不断变化的工作环境。
因此,这里给大家整理了一份《2025最新大模型全套学习资源》,包括2025最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题等,带你从零基础入门到精通,快速掌握大模型技术!
由于篇幅有限,有需要的小伙伴可以扫码获取!

1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

5. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

为什么大家都在学AI大模型?
随着AI技术的发展,企业对人才的需求从“单一技术”转向 “AI+行业”双背景。企业对人才的需求从“单一技术”转向 “AI+行业”双背景。金融+AI、制造+AI、医疗+AI等跨界岗位薪资涨幅达30%-50%。
同时很多人面临优化裁员,近期科技巨头英特尔裁员2万人,传统岗位不断缩减,因此转行AI势在必行!

这些资料有用吗?
这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


大模型全套学习资料已整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】

更多推荐

所有评论(0)