Context Engineering 是一个在 AI 领域日益受到关注的新术语。人们的讨论正在从"prompt engineering"转向一个更广泛、更有力的概念:Context Engineering。Tobi Lutke 将其描述为"为任务提供使 LLM 有可能解决它所需的全部上下文的艺术",他是对的。
随着 Agent 的兴起,我们为其加载到"有限工作记忆"中的信息变得至关重要 。我们发现,一个 Agent 成败的关键,不再是模型本身,而是你给它的上下文质量。现在大多数 Agent 的失败,并非是模型失败,而是上下文失败。
什么是 Context?
要理解 Context Engineering,我们必须扩展"context"一词的定义。它不仅仅是你发给 LLM 的那条 prompt,而是模型在生成回应前所看到的全部内容。
- Instructions / System Prompt:定义模型行为的初始指令集,可以/应该包含示例、规则等。
- User Prompt:来自用户的即时任务或提问。
- State / History(短期记忆) :当前对话的历史,包括用户和模型之间迄今为止的所有交互。
- Long-Term Memory:持久性知识库,跨多个对话积累,包括用户偏好、过去项目的摘要,或模型被告知要记住的信息。
- Retrieved Information (RAG) :外部检索的实时信息,如文档、数据库或 API 中的相关内容。
- Available Tools :模型可以调用的所有函数或内置工具定义(如
check_inventory
、send_email
)。 - Structured Output:定义模型输出格式的规范,例如一个 JSON 对象。
为什么它重要:从廉价 Demo 到魔法般的产品
构建真正有效的 AI Agent 的秘密,与其说在于你写的代码复杂程度,不如说在于你提供的上下文质量。
构建 Agent 不再是写代码或选框架的问题。廉价 Demo 和"魔法般" Agent 的区别在于,你给模型准备了多少有用的上下文。想象你让 AI 助手基于一封简单邮件安排会议:
Hey, just checking if you're around for a quick sync tomorrow.
"廉价 Demo" Agent 的上下文质量差。它只看到这条请求,别无其他。它的代码可能运行良好------调用了一个 LLM 并得到了回应------但输出却死板无用:
Thank you for your message. Tomorrow works for me. May I ask what time you had in mind?
"魔法般的" Agent 有丰富的上下文。代码的核心任务不再是决定怎么回复,而是收集 LLM 完成任务所需的信息。在调用 LLM 之前,它会扩展上下文,比如:
- 你的日历信息(显示你明天全天排满)。
- 与该联系人过往邮件(判断语气应该亲切随意)。
- 通讯录信息(识别对方为关键合作伙伴)。
- 可调用工具(如
send_invite
或send_email
)。
于是你可以生成:
Hey Jim! Tomorrow's packed on my end, back-to-back all day. Thursday AM free if that works for you? Sent an invite, lmk if it works.
魔法不在于更聪明的模型或更精巧的算法,而在于为特定任务准备了正确的上下文。这就是为什么 Context Engineering 变得重要。Agent 的失败不只是模型问题,而是上下文问题。
从 Prompt Engineering 到 Context Engineering
什么是 Context Engineering?如果说 Prompt Engineering 专注于用一条文本字符串精心编写指令,那么 Context Engineering 就远远超出了这个范畴。简而言之:
Context Engineering 是一门设计和构建动态系统的学问,该系统能够在正确的时间、以正确的格式,提供正确的信息和工具,使 LLM 能够完成任务。
Context Engineering 的关键特征:
- 一个系统,而非一条字符串:Context 不是静态的 prompt 模板,而是在主 LLM 调用之前由系统动态生成的内容。
- 动态生成:Context 是临时创建的,针对具体任务定制。例如有时是日历信息,有时是邮件,有时是网页搜索。
- 关注正确的信息和工具是否在正确时间被提供:核心任务是避免"Garbage In, Garbage Out"。只在必要时提供有帮助的知识和能力。
- 格式非常重要:呈现方式很关键。简洁摘要优于原始数据堆。清晰的工具调用 schema 优于模糊的文字说明。
总结
构建强大且可靠的 AI Agent,不再是寻找神奇 prompt 或等待模型更新 。它是关于如何对上下文进行工程设计 ,并在正确的时间、以正确的格式,提供正确的信息和工具。这是一项跨职能挑战,涉及理解你的业务场景、定义输出目标、并对所有必要信息进行结构化,使 LLM 能够"完成任务"。
推荐阅读
本文内容来自深入研究,并参考了以下优质资源: