文章探讨了AI Agent在执行任务时面临的上下文管理问题,详细介绍了CAMEL团队提出的三种上下文工程技术:上下文摘要保留重要内容;工作流记忆记录解决问题的经验供未来参考;工具输出缓存将详细工具输出存储在上下文外。这些技术能有效减少token消耗,减轻LLM认知负担,提高智能体性能和效率,是优化AI Agent记忆管理的重要手段。
绝大多数智能体在执行一段时间后,整个LLM的历史记录,会变成下面这样的结构:
system prompttool descriptionuser prompttool call1tool call result1tool call2tool call result2tool call3tool call result3...对于复杂的场景,可能会连续进行几十轮甚至上百轮的工具调用,而越到后面,前面的工具调用结果有极大的概率就用不到了,但它还必须一直在上下文中,对LLM增加认知负担的同时,给推理造成了很大的压力,token开销也会随之很大。
我们在好文解读:AI Agent的有效上下文工程 from Anthropic中介绍了一个Anthropic的经验——清理工具调用结果,说起来比较容易,但如果你直接清除的话,很有可能导致后续如果需要在用到这个工具调用结果时,无法获取到必要的信息,造成上下文丢失。总的原则无法是压缩、将历史记录保存到硬盘上,但落实到操作层面上如何做,不同的实现方式还是有很大差异的,著名的Agent开发团队CAMEL近期发布了一篇文章,把这一点说的非常清楚——生成一个唯一ID,用这个ID标识工具调用结果,然后再配套相应的工具,让LLM自行决定是不是在需要的时候加载完整结果。
以下是原文:
你的智能体之所以会遗忘,是因为你让它遗忘。实际上你对智能体的智能控制比你想象的要多,而上下文工程就是实现这一点的美味秘方。
上下文工程一直是CAMEL工程团队的主要关注点之一。我们不断思考如何将上下文控制权交给开发者,让他们能够优化智能体的记忆以实现最大性能和效率。
上下文工程不必复杂
这听起来可能是个复杂术语,但"上下文工程"实际上建立在一个非常简单的理念之上:只给智能体提供实现目标所必需的信息。
当你用低信号冗余信息污染上下文时,模型的智能会受到挫折。这种上下文腐化会以各种方式损害智能体的能力,例如回忆关键信息、选择正确的工具或遵循明确的提示指令。
你可以阅读这篇博客文章,了解长上下文如何失败以及如何修复。
这篇博客文章不是对上下文工程技术的解释。有很多高质量文章解释了公司如何创造性地设计其智能体的上下文,我不打算重复相同的信息。但随着你关于上下文工程及其在行业中的实际应用,你会开始看到一些非常简单的技术,你可以轻松学习并应用到自己的智能体中。
为什么这很重要
因为如果你开发智能体,或者与它们一起工作,你必须认真对待优化它们感知上下文的方法和技术。其中一些技术实际上是低垂的果实。它们不需要对你的工作智能体进行大量实施和更改,但在性能和成本方面,它们与驱动智能体的后端LLM同样有效。
在这篇博客文章中
…我们解释了CAMEL框架中实现的三种技术,这些技术保持智能体记忆清洁和上下文清晰:上下文摘要、工作流记忆和工具输出缓存。
是的,原理简单直观,但实现起来却很复杂。
你将看到:
- 我们在智能体工作流中遇到的实际问题
- 我们用于优化上下文的方法
- 还有哪些需要完成的工作**(以及你如何提供帮助)**
我们还在CAMEL仓库中开放了一些问题,以便你可以参与其中,挑战自己,提交修复,让智能体记忆得更好。
上下文摘要:保留重要内容
让我们想象一个你可能熟悉的场景。你提示你的智能体构建一个简单的文本转表情应用,该应用:
- 从用户那里获取输入文本,
- 调用文本转图像模型创建表情,
- 向用户显示,
- 将其存储在PostgreSQL数据库中,
- 最后,处理身份验证以便用户可以登录到他们的账户。
智能体构建了一个完美的应用,UI看起来足够好,表情图像看起来不错,然后哎呀…图像没有存储在数据库中,肯定有bug。于是智能体开始搜索网络寻找原因,检查版本,甚至查看官方文档。这个过程花费的时间比你预期的要长得多,现在一个简单的子任务变成了智能体的主要问题,已经花费了10分钟来解决。
智能体最终找到了根本原因,但这里有个问题,让我们看看我们假设智能体的假设上下文,看看出了什么问题:
一个简单的bug修复或"支线任务"可能会完全取代智能体的目的和token消耗。如果你使用过Cursor或Claude Code等编码智能体,你很可能经历过这种偏离,对于通用智能体也是如此。
这就是上下文摘要的目的。它获取对话,将其分解为最关键的部分,专注于重要内容,丢弃不重要的内容。
现在上下文摘要是一种常见的上下文管理技术,用于多种情况:
- 智能体使用了其上下文窗口的大部分(例如80%)。
- 上下文被支线任务偏离,你想刷新它。
- 你想在另一次运行中引用此会话,因此需要所发生事情的摘要。
摘要是你可以在各种场景中使用的瑞士军刀,是你智能体工具箱中的必备品。
上下文摘要在CAMEL中的使用方式
CAMEL提供三种主要方法进行上下文摘要:
- 基于token的自动摘要:ChatAgent监控token使用情况并自动触发摘要。
- 手动摘要API:开发者显式调用,因此即使你想在认为合适时摘要上下文,也能完全控制。
- 基于工具包的摘要:智能体可访问的工具,用于摘要完整上下文,并搜索已摘要的消息。
尽管这些方法略有不同,但核心摘要过程遵循相同的模式。
在这个工作流中,最关键的部分是什么?当然是提示。摘要提示告诉智能体如何摘要上下文,关注什么内容,以及如何处理非信息性部分。提示才是真正决定这种方法成败的关键。
这对我们来说是一个不断发展的部分,我们不断寻找改进提示的方法,以实现最大清晰度和最佳结果——尽管我们也允许开发者使用他们的自定义提示。我们指导智能体从对话历史中提取关键信息,包括:用户的主要请求、仍需完成的工作(如果你想将其传递给新的对话,这是必要的)、当前正在进行的工作等。在token限制上下文摘要的情况下,我们还传递一个最小的用户消息列表,这些消息不消耗太多token,但信息量很大,减少我们对LLM摘要的依赖以保持完整画面(毕竟,LLM摘要可能不可靠,或遗漏某些部分,因此我们必须采取预防措施。)
https://github.com/camel-ai/camel/issues/3371
https://github.com/camel-ai/camel/issues/3372
https://github.com/camel-ai/camel/issues/3373
https://github.com/camel-ai/camel/issues/3374
工作流记忆:过去的经验很重要
你要求你的智能体获取机器学习数学方面可用的顶级免费书籍列表,然后为每本书创建CSV,包括描述、主题、先决条件、链接等。智能体搜索网络,找到一些标题,但无法阅读archive.org网站上的一些书籍。它尝试了一些方法,搜索了一段时间,最终找到了成功的方法。智能体花了五分钟弄清楚自己做错了什么,这对于智能体运行来说完全没问题,但如果我们需要在未来再次执行类似任务,特别是如果这是一个重复的工作流,这就是一个问题。
工作流记忆用一个简单的想法解决了这个问题:
记录你学到的关于解决此任务的内容,以便为未来的类似问题制定清晰的策略。
重要的复杂细节
在幕后,工作流记忆是围绕上下文摘要的包装器。关键是要保持这个摘要足够通用,以便在类似任务中有用,但同时足够详细,以便在实践中有益和有用。
以下是我们要求智能体摘要的内容列表以及用于描述每个内容的提示:
- 任务标题:主要任务的简短通用标题(例如:在Slack上提醒每周会议)
- 任务描述:用户要求的一段落摘要。没有实现细节;只是用户想要的结果。
- 解决步骤:智能体完成任务所采取的编号、有序操作。每个步骤以动词开头,并且足够通用以可重复。
- 工具:使用的工具调用或函数调用的项目符号列表。对于每个:名称→做了什么→为什么有用(每行一个)。此字段明确用于工具调用消息或使用的MCP服务器。
- 失败和恢复策略:[可选]每个事件的症状、原因(如果已知)、修复/解决方法、恢复验证的项目符号。如果没有失败,留空。
- 备注和观察:[可选]先前字段未涵盖的任何对任务未来执行至关重要的内容。如果没有备注,留空。不要重复任何信息,或提及琐碎细节。只包括必要的。
- 标签:3-10个分类标签,描述工作流类型、领域和关键能力。使用小写字母和连字符。标签应该是广泛的、可重用的类别,以帮助与类似任务进行语义匹配。
加载正确的工作流
智能体如何为当前任务找到正确的工作流记忆?我们通过三种过滤方法帮助智能体:
- 开发者可以传递他们认为与当前任务最相关的特定会话。
- 工作流记忆以智能体的role_name作为文件名保存(例如:researcher_agent_workflow.md),同一智能体可以找到自己先前保存的工作流,这很可能是需要的工作流。
- 智能体提供完整的工作流信息列表:所有工作流的标题、简洁描述和标签。然后它可以选择最多N个最相关的工作流。然后从内存中清除此选择过程以节省上下文。
你可能已经注意到,我们避免使用RAG来检索工作流。这是一个有意识的决定,以避免RAG带来的不必要复杂性和不确定性,这对于这个用例来说绝对不需要。如果我们到了有太多工作流[.md]文件需要RAG的地步,工作流记忆的一个关键原则就被违背了:为每个智能体拥有少量动态的外部记忆文件。
研究中的工作流
工作流记忆是一个新功能,自然有很多需要学习和改进的地方。它的有效性已在研究中进行了实验,并在一篇论文中进行了基准测试,作者报告了在网络导航任务中的显著收益,你可以阅读并了解更多关于这种技术。
在工作流方面有多个改进领域,这些领域再次被转化为适合感兴趣开发者的可处理问题:
https://github.com/camel-ai/camel/issues/3375
工具输出缓存(一个警示故事)
研究论文只挑选效果最好的内容。但我们不是。工具输出缓存是CAMEL开发者为保持智能体上下文清洁所做的另一项努力,但后来被撤销了。原因是担心信息丢失和性能下降。虽然这不是一个"失败"的尝试,只是需要更多的改进和测试,但将其作为一个警示故事来学习是有益的,看看为了"效率"而过度设计上下文可能会阻碍智能体的智能。
这代表了内存管理的一个基本挑战:token效率 vs 准确性。
工具输出很无聊!
嗯,不完全是这样,但它们是一个处理挑战。工具是使智能体成为智能体的重要组成部分。然而,虽然工具输出绝对必要,但它们在服务目的后通常不再有用。
# 智能体搜索网络from camel.toolkits import SearchToolkittool_result_1 = SearchToolkit.search_google("AI agent frameworks")# 返回:4,250个字符的搜索结果,包含片段、URL、元数据# 智能体读取大文件from camel.toolkits import FileToolkittool_result_2 = FileToolkit.read_file("documentation.md")# 返回:8,100个字符的markdown文档# 智能体进行10次以上的工具调用# 每个后续的LLM调用都包含所有先前的工具结果# → 上下文中60,000+个token的工具输出# → 上下文窗口被过时的工具数据污染工具结果通常只需要一次,但永远留在上下文中。这在长视野的现实世界任务中尤其是一个定时炸弹,智能体将进行大量工具调用。
在上下文之外保存工具输出
处理这个问题的一种方法是将工具输出存储在LLM上下文之外(比如保存到磁盘上的markdown文件),只在上下文中保留一个ID引用。这样,如果你以后需要完整输出,可以通过ID检索。
CAMEL实现此策略的方法很简单:
- 监控工具结果大小并识别长度是否>2000个字符
- 保持最新的工具输出完整
- 缓存较旧的详细输出
- 用引用替换完整输出
- 包含预览(前160个字符)
- 提供检索说明,以便智能体在必要时可以加载完整输出
理论上,这将大大节省token消耗。你必须知道,如果你接触智能体的程度不超过课程和教程代码,那么工具比get_weather API更复杂。像Playwright或浏览器自动化智能体这样的网络导航工具可以返回极大的输出,甚至可能是整个网页的DOM,这很容易超过10,000个token。
一点警示
像任何上下文工程技术一样,你必须小心不要以准确性下降为代价换取额外的效率。以下是工具输出缓存可能产生负面影响的一些方式。
- 信息丢失:智能体处理详细工具输出→系统缓存它并用预览+引用替换→智能体稍后看到预览并认为不需要完整输出→基于不完整数据做出决策。
- 智能体的认知负荷:智能体必须识别何时/是否需要完整输出,在正确时间调用检索函数,跟踪哪些缓存ID与哪些输出相关,并决定预览是否足够。这是一个额外的认知负荷,与解决用户提供的任务没有直接关系。
我们相信工具输出缓存的完整、万无一失的实现可能非常有价值。对于好奇的读者,我们创建了一个问题,将这个功能重新激活,并确保它服务于上下文清洁的目的。
https://github.com/camel-ai/camel/issues/3376
未来之路
虽然这些方法得到了研究和行业最佳实践的支持,但我们的使命是确保它们在CAMEL仓库中具有实质性的收益。我们通过以下方式承诺:
- 实施新技术以优化智能体的记忆。
- 修复和改进现有方法。
- 对现有方法进行基准测试并提高标准。
关于上下文工程和内存管理特别有趣的是,由于这个领域的新颖性,创造性和新颖技术的丰富性成为可能。
智能体可以变得如此更智能和更高效,不是通过更改LLM或花费更多金钱和计算资源,而是通过简单地改变智能体如何看待对话及其内存管理方式,这相当令人兴奋。
这篇博客文章中涵盖的只是CAMEL为改善智能体记忆所付出努力的一部分。我们的愿望是通过这篇博客,你更受启发在这个AI领域工作,甚至可能利用这个机会开始你的开源之旅,为每个问题打开PR,审查和贡献其他人打开的问题,或者如果你找到修复/改进这些技术的方法,创建新问题。
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%免费】