news 2026/3/9 19:45:30

收藏必备:AI Agent上下文工程:三大核心技术让你的智能体不再遗忘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
收藏必备:AI Agent上下文工程:三大核心技术让你的智能体不再遗忘

本文介绍AI Agent的上下文工程三大技术:上下文摘要压缩历史保留重要信息;工作流记忆记录经验供未来参考;工具输出缓存仅保留ID引用。这些技术可减少token消耗,降低认知负担,提升性能效率,避免信息丢失。


绝大多数智能体在执行一段时间后,整个LLM的历史记录,会变成下面这样的结构:

system prompttool descriptionuser prompttool call1tool call result1tool call2tool call result2tool call3tool call result3...

对于复杂的场景,可能会连续进行几十轮甚至上百轮的工具调用,而越到后面,前面的工具调用结果有极大的概率就用不到了,但它还必须一直在上下文中,对LLM增加认知负担的同时,给推理造成了很大的压力,token开销也会随之很大。


你的智能体之所以会遗忘,是因为你让它遗忘。实际上你对智能体的智能控制比你想象的要多,而上下文工程就是实现这一点的美味秘方。

上下文工程一直是CAMEL工程团队的主要关注点之一。我们不断思考如何将上下文控制权交给开发者,让他们能够优化智能体的记忆以实现最大性能和效率。

上下文工程不必复杂

这听起来可能是个复杂术语,但"上下文工程"实际上建立在一个非常简单的理念之上:只给智能体提供实现目标所必需的信息。

当你用低信号冗余信息污染上下文时,模型的智能会受到挫折。这种上下文腐化会以各种方式损害智能体的能力,例如回忆关键信息、选择正确的工具或遵循明确的提示指令。

你可以阅读这篇博客文章,了解长上下文如何失败以及如何修复。

这篇博客文章不是对上下文工程技术的解释。有很多高质量文章解释了公司如何创造性地设计其智能体的上下文,我不打算重复相同的信息。但随着你关于上下文工程及其在行业中的实际应用,你会开始看到一些非常简单的技术,你可以轻松学习并应用到自己的智能体中。

为什么这很重要

因为如果你开发智能体,或者与它们一起工作,你必须认真对待优化它们感知上下文的方法和技术。其中一些技术实际上是低垂的果实。它们不需要对你的工作智能体进行大量实施和更改,但在性能和成本方面,它们与驱动智能体的后端LLM同样有效。

在这篇博客文章中

…我们解释了CAMEL框架中实现的三种技术,这些技术保持智能体记忆清洁和上下文清晰:上下文摘要、工作流记忆工具输出缓存。

是的,原理简单直观,但实现起来却很复杂。

你将看到:

  • 我们在智能体工作流中遇到的实际问题
  • 我们用于优化上下文的方法
  • 还有哪些需要完成的工作**(以及你如何提供帮助)**

我们还在CAMEL仓库中开放了一些问题,以便你可以参与其中,挑战自己,提交修复,让智能体记忆得更好。

上下文摘要:保留重要内容

让我们想象一个你可能熟悉的场景。你提示你的智能体构建一个简单的文本转表情应用,该应用:

  • 从用户那里获取输入文本,
  • 调用文本转图像模型创建表情,
  • 向用户显示,
  • 将其存储在PostgreSQL数据库中,
  • 最后,处理身份验证以便用户可以登录到他们的账户。

智能体构建了一个完美的应用,UI看起来足够好,表情图像看起来不错,然后哎呀…图像没有存储在数据库中,肯定有bug。于是智能体开始搜索网络寻找原因,检查版本,甚至查看官方文档。这个过程花费的时间比你预期的要长得多,现在一个简单的子任务变成了智能体的主要问题,已经花费了10分钟来解决。

智能体最终找到了根本原因,但这里有个问题,让我们看看我们假设智能体的假设上下文,看看出了什么问题:

一个简单的bug修复或"支线任务"可能会完全取代智能体的目的和token消耗。如果你使用过Cursor或Claude Code等编码智能体,你很可能经历过这种偏离,对于通用智能体也是如此。

这就是上下文摘要的目的。它获取对话,将其分解为最关键的部分,专注于重要内容,丢弃不重要的内容。

现在上下文摘要是一种常见的上下文管理技术,用于多种情况:

  • 智能体使用了其上下文窗口的大部分(例如80%)。
  • 上下文被支线任务偏离,你想刷新它。
  • 你想在另一次运行中引用此会话,因此需要所发生事情的摘要。

摘要是你可以在各种场景中使用的瑞士军刀,是你智能体工具箱中的必备品。

上下文摘要在CAMEL中的使用方式

CAMEL提供三种主要方法进行上下文摘要:

  1. 基于token的自动摘要:ChatAgent监控token使用情况并自动触发摘要。
  2. 手动摘要API:开发者显式调用,因此即使你想在认为合适时摘要上下文,也能完全控制。
  3. 基于工具包的摘要:智能体可访问的工具,用于摘要完整上下文,并搜索已摘要的消息。

尽管这些方法略有不同,但核心摘要过程遵循相同的模式。

在这个工作流中,最关键的部分是什么?当然是提示。摘要提示告诉智能体如何摘要上下文,关注什么内容,以及如何处理非信息性部分。提示才是真正决定这种方法成败的关键。

这对我们来说是一个不断发展的部分,我们不断寻找改进提示的方法,以实现最大清晰度和最佳结果——尽管我们也允许开发者使用他们的自定义提示。我们指导智能体从对话历史中提取关键信息,包括:用户的主要请求、仍需完成的工作(如果你想将其传递给新的对话,这是必要的)、当前正在进行的工作等。在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个分类标签,描述工作流类型、领域和关键能力。使用小写字母和连字符。标签应该是广泛的、可重用的类别,以帮助与类似任务进行语义匹配。
加载正确的工作流

智能体如何为当前任务找到正确的工作流记忆?我们通过三种过滤方法帮助智能体:

  1. 开发者可以传递他们认为与当前任务最相关的特定会话。
  2. 工作流记忆以智能体的role_name作为文件名保存(例如:researcher_agent_workflow.md),同一智能体可以找到自己先前保存的工作流,这很可能是需要的工作流。
  3. 智能体提供完整的工作流信息列表:所有工作流的标题、简洁描述和标签。然后它可以选择最多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。

一点警示

像任何上下文工程技术一样,你必须小心不要以准确性下降为代价换取额外的效率。以下是工具输出缓存可能产生负面影响的一些方式。

  1. 信息丢失:智能体处理详细工具输出→系统缓存它并用预览+引用替换→智能体稍后看到预览并认为不需要完整输出→基于不完整数据做出决策。
  2. 智能体的认知负荷:智能体必须识别何时/是否需要完整输出,在正确时间调用检索函数,跟踪哪些缓存ID与哪些输出相关,并决定预览是否足够。这是一个额外的认知负荷,与解决用户提供的任务没有直接关系。

我们相信工具输出缓存的完整、万无一失的实现可能非常有价值。对于好奇的读者,我们创建了一个问题,将这个功能重新激活,并确保它服务于上下文清洁的目的。

未来之路

虽然这些方法得到了研究和行业最佳实践的支持,但我们的使命是确保它们在CAMEL仓库中具有实质性的收益。我们通过以下方式承诺:

  • 实施新技术以优化智能体的记忆。
  • 修复和改进现有方法。
  • 对现有方法进行基准测试并提高标准。

关于上下文工程和内存管理特别有趣的是,由于这个领域的新颖性,创造性和新颖技术的丰富性成为可能。

智能体可以变得如此更智能和更高效,不是通过更改LLM或花费更多金钱和计算资源,而是通过简单地改变智能体如何看待对话及其内存管理方式,这相当令人兴奋。

这篇博客文章中涵盖的只是CAMEL为改善智能体记忆所付出努力的一部分。我们的愿望是通过这篇博客,你更受启发在这个AI领域工作,甚至可能利用这个机会开始你的开源之旅,为每个问题打开PR,审查和贡献其他人打开的问题,或者如果你找到修复/改进这些技术的方法,创建新问题。

大模型未来如何发展?普通人能从中受益吗?

在科技日新月异的今天,大模型已经展现出了令人瞩目的能力,从编写代码到医疗诊断,再到自动驾驶,它们的应用领域日益广泛。那么,未来大模型将如何发展?普通人又能从中获得哪些益处呢?

通用人工智能(AGI)的曙光:未来,我们可能会见证通用人工智能(AGI)的出现,这是一种能够像人类一样思考的超级模型。它们有可能帮助人类解决气候变化、癌症等全球性难题。这样的发展将极大地推动科技进步,改善人类生活。

个人专属大模型的崛起:想象一下,未来的某一天,每个人的手机里都可能拥有一个私人AI助手。这个助手了解你的喜好,记得你的日程,甚至能模仿你的语气写邮件、回微信。这样的个性化服务将使我们的生活变得更加便捷。

脑机接口与大模型的融合:脑机接口技术的发展,使得大模型与人类的思维直接连接成为可能。未来,你可能只需戴上头盔,心中想到写一篇工作总结”,大模型就能将文字直接投影到屏幕上,实现真正的心想事成。

大模型的多领域应用:大模型就像一个超级智能的多面手,在各个领域都展现出了巨大的潜力和价值。随着技术的不断发展,相信未来大模型还会给我们带来更多的惊喜。赶紧把这篇文章分享给身边的朋友,一起感受大模型的魅力吧!

那么,如何学习AI大模型?

在一线互联网企业工作十余年里,我指导过不少同行后辈,帮助他们得到了学习和成长。我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑。因此,我坚持整理和分享各种AI大模型资料,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频。

学习阶段包括:

1.大模型系统设计
从大模型系统设计入手,讲解大模型的主要方法。包括模型架构、训练过程、优化策略等,让读者对大模型有一个全面的认识。

2.大模型提示词工程
通过大模型提示词工程,从Prompts角度入手,更好发挥模型的作用。包括提示词的构造、优化、应用等,让读者学会如何更好地利用大模型。

3.大模型平台应用开发
借助阿里云PAI平台,构建电商领域虚拟试衣系统。从需求分析、方案设计、到具体实现,详细讲解如何利用大模型构建实际应用。

4.大模型知识库应用开发
以LangChain框架为例,构建物流行业咨询智能问答系统。包括知识库的构建、问答系统的设计、到实际应用,让读者了解如何利用大模型构建智能问答系统。

5.大模型微调开发
借助以大健康、新零售、新媒体领域,构建适合当前领域的大模型。包括微调的方法、技巧、到实际应用,让读者学会如何针对特定领域进行大模型的微调。


6.SD多模态大模型
以SD多模态大模型为主,搭建文生图小程序案例。从模型选择、到小程序的设计、到实际应用,让读者了解如何利用大模型构建多模态应用。

7.大模型平台应用与开发
通过星火大模型、文心大模型等成熟大模型,构建大模型行业应用。包括行业需求分析、方案设计、到实际应用,让读者了解如何利用大模型构建行业应用。


学成之后的收获👈

全栈工程实现能力:通过学习,你将掌握从前端到后端,从产品经理到设计,再到数据分析等一系列技能,实现全方位的技术提升。

解决实际项目需求:在大数据时代,企业和机构面临海量数据处理的需求。掌握大模型应用开发技能,将使你能够更准确地分析数据,更有效地做出决策,更好地应对各种实际项目挑战。

AI应用开发实战技能:你将学习如何基于大模型和企业数据开发AI应用,包括理论掌握、GPU算力运用、硬件知识、LangChain开发框架应用,以及项目实战经验。此外,你还将学会如何进行Fine-tuning垂直训练大模型,包括数据准备、数据蒸馏和大模型部署等一站式技能。

提升编码能力:大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握将提升你的编码能力和分析能力,使你能够编写更高质量的代码。

学习资源📚

  1. AI大模型学习路线图:为你提供清晰的学习路径,助你系统地掌握AI大模型知识。
  2. 100套AI大模型商业化落地方案:学习如何将AI大模型技术应用于实际商业场景,实现技术的商业化价值。
  3. 100集大模型视频教程:通过视频教程,你将更直观地学习大模型的技术细节和应用方法。
  4. 200本大模型PDF书籍:丰富的书籍资源,供你深入阅读和研究,拓宽你的知识视野。
  5. LLM面试题合集:准备面试,了解大模型领域的常见问题,提升你的面试通过率。
  6. AI产品经理资源合集:为你提供AI产品经理的实用资源,帮助你更好地管理和推广AI产品。

👉获取方式: 😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/9 2:47:37

如何快速部署摄像头监控系统:5分钟完成camera.ui完整配置指南

如何快速部署摄像头监控系统:5分钟完成camera.ui完整配置指南 【免费下载链接】camera.ui NVR like user Interface for RTSP capable cameras 项目地址: https://gitcode.com/gh_mirrors/ca/camera.ui camera.ui是一款功能强大的开源摄像头管理平台&#xf…

作者头像 李华
网站建设 2026/3/8 19:49:54

HarmonyOS 应用草稿箱功能设计方案(安全可靠+轻量化存储)

大家好,今天给大家带来的是如何在在HarmonyOS上实现草稿箱功能,,在保障草稿不丢失的同时,避免冗余数据占用过多设备存储空间,在面正文开始。 文章目录一、 本地草稿数据结构设计(规范有序,易存易…

作者头像 李华
网站建设 2026/3/7 10:04:08

边缘AI设备锂电池保护电路的终极设计指南

边缘AI设备锂电池保护电路的终极设计指南 【免费下载链接】AI-on-the-edge-device Easy to use device for connecting "old" measuring units (water, power, gas, ...) to the digital world 项目地址: https://gitcode.com/GitHub_Trending/ai/AI-on-the-edge-d…

作者头像 李华
网站建设 2026/3/5 18:19:24

使用PyTorch-CUDA镜像轻松运行Transformer和CNN模型

使用PyTorch-CUDA镜像轻松运行Transformer和CNN模型 在深度学习项目中,最让人头疼的往往不是模型设计本身,而是环境配置——“为什么我的代码在别人机器上跑不通?”、“CUDA版本不匹配怎么办?”、“装个PyTorch怎么还要折腾驱动&a…

作者头像 李华
网站建设 2026/3/8 10:32:04

PyTorch-CUDA镜像适合做自然语言处理吗?答案是肯定的

PyTorch-CUDA镜像适合做自然语言处理吗?答案是肯定的 在如今这个大模型遍地开花的时代,谁还没跑过几个BERT、微调过一次GPT?但每次换机器、上服务器,是不是总要花半天时间折腾环境:CUDA版本对不对、cuDNN装没装、PyTor…

作者头像 李华