上下文工程的重要性

上下文工程对 Agent 非常重要,在执行长时间跨度的任务时,随着工具调用、结果、反思等信息的不断堆积,上下文规模逐渐膨胀,会带来两个限制:

  1. 上下文规模超出 LLM 的上下文窗口大小限制。
  2. 即使未超出窗口限制,海量的上下文信息会对 LLM 的注意力造成干扰。

注意力分散:LLM 的注意力会随着上下文长度的增加而分散,这是由 LLM 的 Transformer 架构所限制的。

LLM 基于 transformer 架构,该架构允许每个 token 关注上下文中的所有其他 token,如果有 n 个 token,就会存在 n^2 个成对关系。

随着上下文长度增加,模型捕捉成对关系的能力逐渐下降,从而在上下文长度和注意力集中度之间产生矛盾。

因此,我们需要一组策略,能够从海量的上下文数据中“筛选”出对 LLM “有效”的信息。

在这里插入图片描述

什么是有效的上下文?

(1)系统提示词

系统提示词应当极其清晰,使用简洁并适合 Agent 理解的“维度”去定义。

关于适合 Agent 理解的“维度”有两种极端的场景:

  1. 极度精确:工程师在提示词中硬编码复杂且脆弱的逻辑,以精确引导 Agent 行为。随着系统迭代会增加维护的复杂性,且比较脆弱。
  2. 极度模糊:工程师提供了过于笼统的指导,无法指导 LLM 输出期望的内容。

最适合 Agent 理解的“维度”应该是:既要足够具体以指导 Agent 的行为,又要足够灵活以提供强大的启发式原则指导 Agent 的行为。

启发式原则即经验法则,让 Agent 根据上下文指导后续行为,而不全依赖于硬编码。

**提示词构建的原则:**力求使用最少的信息完整描述预期行为。

信息最少并不意味着简短,先基于最佳模型构建一个最少的提示词,再根据任务中的表现以及测试中出现的故障,添加清晰的说明和示例来改进。

最佳实践:少样本提示的方法是众所周知的最佳实践。精心挑选一组规范、多样化的示例,以有效展现 Agent 的预期行为。对于 LLM 而言,示例胜过千言万语。

(2)工具集

工具调用目的是让 LLM 在执行过程中获取新的上下文信息。

工具集定义的原则:构建易于 LLM 理解,且功能重叠最小的工具集。

工具集定义常见的误区:

  1. 过于臃肿:工具集涵盖的功能过多,或者在选择工具时出现模糊不清的决策点。如果人都无法在特定情况下决定使用哪个工具,那就不要期望 LLM 可以做得很好。
  2. 提示词内部硬编码复杂且脆弱的逻辑:工程师在提示词中塞入一大堆极端情况,试图规定 LLM 在特定任务中要遵循的一组规则。

最佳实践:为 Agent 挑选一套最小可行工具集。

如何筛选重要的上下文内容?

面对海量的上下文内容,存在两个问题:

  1. 背景知识规模庞大,如何提升存储效率?
  2. 如何筛选出重要的信息?

“即时”上下文检索策略

如今,许多 AI 应用采用基于 Embedding 的推理前检索(例如通过 RAG 向量检索到相关信息发送给 LLM),以提供给 Agent 重要的上下文指导后续行为。

但随着技术向更自主的 Agent 模式发展,越来越多的团队使用“即时”上下文策略来增强这些检索系统。

“即时”(just-in-time)上下文检索策略:

采用“即时”上下文检索策略的 Agent 维护更轻量级标识符(文件路径、存储的查询、网页链接等),基于这些**“引用”**,可以在运行时通过工具动态地将数据加载到上下文。

优势:

  1. 存储效率:相对于预先检索所有相关数据,“即时”检索策略可以极大提高存储效率。这种方式更符合人类的认知,我们通常不会记忆整个信息库,而是引入外部归档和索引机制(如文件系统、收件箱和书签)来按需检索相关信息。
  2. 提供了更多的信息:对于 Agent 而言,/tests/test_utrils.py 和 /src/core_logic/ 两个文件夹中的同名文件用途截然不同。文件所处层级结构、命名约定和时间戳都为 Agent 的决策提供了重要的信息。

权衡:

  1. “即时”检索策略的速度通常更慢。
  2. 需要精心设计确保 Agent 拥有合适的工具和启发式方法。

混合检索策略:结合推理前检索和即时检索策略。即预先检索部分数据以提高速度,然后在运行过程中通过一些工具即时检索文件。Claude Code 就采用了这种混合策略。

混合检索策略更适合内容更新频率较低的场景,例如法律或金融领域,模型所需要的背景知识很稳定,几乎不会变化,因此可以提前检索发送给模型。

未来趋势:

未来的发展趋势更倾向于让智能模型自主行动,逐步减少人工的干预。

因此,做最简单有效的事可能仍然是我们对基于 Claude 构建 Agent 团队的最佳建议。

针对长周期任务的上下文工程

长周期任务要求 Agent 在一系列动作中保持连贯、上下文关联和目标导向行为。

目标:怎么给 Agent 喂对的上下文,让它在长链路任务里既能记住事,又不会被信息淹没。

核心挑战

  1. 上下文规模限制:长周期任务中,Agent 会不断思考、执行命令、读取文件、报错等,上下文长度会超出 LLM 的窗口限制,此时就需要专门的技术来克服上下文窗口大小的限制。
  2. 信息过载导致 Agent 能力下降:随着上下文长度增加,无用、冗余信息不断堆积,模型准确回忆上下文信息的能力会下降(LLM 注意力分散)。

解决方案

问题的原因不仅仅是因为上下文窗口的限制,即使 LLM 具备更大的上下文窗口,也会受到上下文污染和信息相关性问题的影响。

为了使 Agent 能够在长周期任务中高效工作,我们开发了一些能够解决上下文污染限制的技术:压缩、结构化笔记和多智能体架构。

(1)压缩(Compaction)

压缩指将接近上下文窗口上限的对话进行内容概括,使用概括后更精炼的内容作为新的上下文窗口。

压缩是最基础、最常用的保证长周期任务连贯性的手段,使 Agent 在性能损失最小的情况下继续运行。

例如,在 Claude Code 中会将消息历史记录传递给模型,以汇总和压缩最关键的细节。该模型保留了架构决策、未解决的错误和实现细节,同时丢弃了冗余的工具输出或消息。

之后,Agent 使用这个压缩后的上下文以及最近访问的 5 个文件继续执行任务。

目标:如何选择保留哪些信息,舍弃哪些信息的?

压缩会导致丢失一些微妙但至关重要的上下文信息,而这些信息的重要性往往在后续的处理中才会显现。

对于实现压缩系统的工程师,我们建议在处理复杂的 Agent 运行轨迹时,仔细调整提示词。首先最大化召回率,确保用于压缩的提示词能够捕捉到轨迹中所有的相关信息,然后通过迭代优化,去除冗余内容,从而提高精确度。

清除工具调用结果是最安全、最轻量级的压缩方式之一。

(2)结构化笔记(Structured note-taking)

结构化笔记也可以称作智能体记忆(Agentic Memory),指的是在 Agent 运行过程中,定期记录笔记并将其存储在上下文之外(如数据库)。在未来的某一时刻,当 Agent 需要用到这些信息时,再把它们重新从外部存储“捞回”,放进上下文。

核心思想:让智能体定期记录笔记,并存储在上下文窗口之外的记忆中。

这种策略以最小的开销实现了长期记忆。

案例:

Claude 玩宝可梦的案例(https://www.twitch.tv/claudeplayspokemon)展示了记忆如何在非编程领域显著提升 Agent 的能力。

该 Agent 能够在长达数千个游戏步骤中保持精准的记录——例如:“在过去的 1234 步里,我一直在 1 号道路训练我的宝可梦,皮卡丘已经升了 8 级,目标是升到 10 级。”

无需任何关于记忆结构的提示词,它就能够绘制已探索的区域,记住已解锁的关键成就,并记录了战斗策略笔记,以此来学习针对不同对手使用哪些招式最为有效。”

优势

  1. 使 Agent 能够跟踪复杂任务的进度,并保留关键的上下文和依赖关系。避免关键信息在数十次工具调用后丢失。
  2. 使 Agent 能够随着时间的推移构建知识信息,跨会话维护项目状态,并在无需将所有内容都保留在上下文中的情况下引用之前的工作。

(3)子 Agent 架构

核心思想:职责分离。

与其让一个 Agent 尝试维护整个项目的状态,不如让专门的子 Agent 在清晰的上下文窗口中处理特定的任务。详细的上下文信息被隔离在各个子 Agent 内部,而主 Agent 专注于结果的综合和分析。

主 Agent 负责协调上层计划,而子 Agent 则执行深入的技术工作或使用工具查找相关信息。每个子 Agent 可能进行广泛的搜索,使用数万甚至更多的 token,但最终仅返回其工作的精简摘要(通常包含 1000 ~ 2000 个 token)。

选择哪种方法取决于任务的特点:

  1. 压缩功能可以保持大量沟通任务中的对话连贯性。
  2. 记笔记对于设定明确里程碑的迭代开发非常有效。
  3. 多智能体架构能够处理复杂的研究和分析,并行探索能够带来丰富的回报。

结论

上下文工程代表了我们基于 LLM 构建应用方式的一次根本性转变。

随着模型能力日益增强,核心挑战不再仅仅是打磨完美的提示词,而是要在每一步都深思熟虑地甄选,决定哪些信息有资格进入模型那有限的“注意力预算”中。

无论你是为了长程任务实施“压缩”策略,还是设计高效的 Token 工具,亦或是让智能体“即时(Just-in-Time)”去探索环境,其核心指导原则始终不变:寻找最小量的高信噪比(干货多、废话少) Token 集合,以最大化达成预期结果的概率。

随着模型的进化,我们概述的这些技术也会不断演进。我们已经看到,更聪明的模型不再需要那么多死板的指令式工程,这让智能体拥有了更大的自主权。但请记住,即便模型能力再强,将上下文视为一种珍贵且有限的资源,依然是构建可靠、高效智能体的核心所在。

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
在这里插入图片描述

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

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

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐