AI Agent 核心技术:Context Engineering 基本概念解说
随着大语言模型(LLM)的飞速发展,AI Agent(智能体)逐渐成为串联模型与现实环境的核心。本文将带你深入剖析 AI Agent 的核心技术——Context Engineering(上下文工程),探讨 AI Agent 是如何像“经纪人”一样,帮语言模型管理输入、处理记忆,并最终实现复杂任务的
1. 为什么我们需要 Context Engineering?
语言模型本质上是在做“文字接龙”——你给它一个输入(Prompt),它生成一段输出。但当语言模型需要使用工具并与外界环境持续互动时,会面临两个核心挑战:
- 模型活在当下:模型本身没有长期记忆,它只认当前的输入。因此,你必须把历史指令、工具输出全都拼接起来丢给它。
- 上下文窗口受限:随着互动步骤增加,输入的长度会呈爆炸式增长,而语言模型的输入长度是有上限的,无法吞下无限长的数据。
这正是 AI Agent 存在的意义:它充当了语言模型的“守门人”或“经纪人”,负责筛选并决定模型能看到什么。这个帮模型管理输入长度并将其维持在合适范围内的复杂过程,就是 Context Engineering。
2. Context Engineering 的数学本质
如果用程序逻辑来表达,没有做 Context Engineering 的对话循环是这样的: C(新) = C(旧) + 输入 + 输出 随着循环进行,上下文 C 会无休止地膨胀。
而引入了 Context Engineering 后,唯一的区别在于我们加入了一个复杂的处理函数 F: C(新) = F( C(旧), 输入, 输出 ) 这个 F 函数包含了压缩、记忆管理、过滤等一系列复杂操作,决定了下一轮对话的输入状态。
3. 核心操作一:上下文压缩 (Compression)
当历史记录太长时,最直观的解决方案就是“压缩”。主流的压缩策略有两种:
- 总结归纳 (Summarization):利用语言模型把长篇大论的历史记录总结成简短的摘要。
- 观察掩码 (Observation Masking):直接将冗长的工具输出替换成一句话,例如:“这里曾有一个工具的输出” 。
哪种策略更好? 在 SWE-bench(软件工程测试集)上的实验表明,最好的策略是结合两者:前期优先使用 Observation Masking 替换冗长输出,等到上下文依然无可避免地变长时,再使用 Summarization 一次性进行总结压缩。
⚠️ 注意:压缩带来的副作用 压缩可能会导致“轨迹延长”现象(Trajectory Extension)。模型可能会忘记刚刚已经执行过某一步骤,从而反复执行相同的工具,导致虽然上下文变短了,但消耗的总 token 和成本并未下降。此外,不良的压缩还会引发**语境崩塌 (Context Collapse),导致丢失关键指令(例如不小心把“执行需经人类同意”的指令压缩掉了)。
4. 核心操作二:记忆系统 (Memory)
如果重要的信息被压缩掉,模型该如何找回?答案是记忆机制。
更精准地说,上下文 C 其实可以拆分为两部分:
- P (Prompt):真正输入给语言模型看的信息。
- N (Non-prompt):不输入模型,而是存储在硬盘/数据库中的信息。
语言模型可以通过执行特定工具(如 Save Memory 或 Write File)将当前不重要但未来可能用到的长篇日志存入硬盘 N,让它从 P 中消失,从而保持界面的整洁;当未来需要这些信息时,再通过 Load Memory 提取回来。就像《瑞克和莫蒂》中 Rick 把记忆抽出来存放在地下室的管子里一样
5. 核心操作三:Subagent (子代理)
Subagent 本质上是一种自主的上下文压缩行为。 遇到复杂任务时,主 Agent 可以分裂出一个 Subagent 去执行子任务(例如:搜索某篇论文的具体作者)。Subagent 在执行过程中会积累大量的独立上下文,但在它完成任务执行 Return 操作时,所有中间的繁杂步骤都会被抹除,只向主 Agent 返回一句精炼的结果摘要 [31:08]。这种方式能非常有效地防止主干上下文爆炸。
6. 核心操作四:从源头控制,过滤与按需加载
与其在上下文爆炸后想办法压缩,不如一开始就避免无用信息进入:
- 前置过滤 (Observation Filtering):当模型需要读取日志修复 bug 时,不要直接把整个巨大的 Log 文件塞进去。可以训练一个“聪明的读取器(Smart Reader)”,只提取出与 bug fixing 相关的内容喂给模型。
- 按需加载 (On-Demand Loading):如果 Agent 有数百个工具,把所有工具说明全写在 System Prompt 中会导致长度超标。现代方案是让语言模型根据需求动态呼叫搜索引擎,只提取当前任务所需要的工具指令注入到上下文中。
7. 终极进化:Agentic Context Engineering
目前的 F 函数(如何压缩、何时压缩)大多还是由人类工程师写死的规则。那么,能不能让语言模型自己管理自己的上下文呢?
这就是 Agentic Context Engineering 的理念:
- 动态小抄 (Dynamic Cheat Sheet):让模型自己维护一份会随时间更新的小抄,记录有效策略或关键发现,丢弃无用信息
- 递归语言模型 (Recursive Language Model):让模型自己写代码,在硬盘中搜索、读取、修改元数据,完全自主地调度庞大的历史记忆
总结
Context Engineering 不仅仅是简单的“缩短对话”,它融合了信息压缩、长期记忆存取、任务分解以及工具动态调度。随着相关论文和技术的井喷式爆发,未来的 AI Agent 将越来越像一个经验丰富的工作者,能够完美且高效地管理自己的工作流与知识库。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)