
初次使用大型语言模型时,常常感觉手中握着原始的智能。它们在写作、总结和推理方面表现出色。然而,当你构建并发布实际产品时,模型的所有缺陷都会暴露出来。它记不住你昨天说过的话,一旦失去上下文,就会开始胡编乱造。这并非因为模型本身不够智能,而是因为模型与外部世界隔绝,并且受到如同小型白板般的上下文窗口的限制。这无法通过更好的提示来克服——你需要围绕模型构建一个真实的上下文。而这正是上下文工程发挥作用的地方。本文将作为上下文工程的全面指南,定义该术语并描述相关流程。
无法回避的问题
大型语言模型虽然强大,但其应用范围有限。这部分是由于它们存在以下问题:
- 无法访问私人文档
- 无法记住过去的对话
- 上下文窗口有限
- 压力下出现幻觉
- 上下文窗口过大时性能下降

虽然某些限制是必要的(例如无法访问私人文档),但在内存有限、出现幻觉和上下文窗口受限的情况下,这些限制就显得多余了。这表明上下文工程才是解决方案,而非附加功能。
什么是上下文工程?
上下文工程是指对提供给大型语言模型的所有输入进行结构化处理,以提高其准确性和可靠性的过程。它涉及对提示进行结构化和优化,使语言模型能够获得生成与所需输出完全匹配的答案所需的所有“上下文”。
它能提供什么?
上下文工程的实践在于,使用精心设计的架构,在正确的时间、正确的顺序,向模型提供完全正确的信息。它并非改变模型本身,而是构建连接模型与外部世界的桥梁,检索外部数据,将其连接到实时工具,并赋予模型记忆,使其能够基于事实而非仅仅是训练数据来做出响应。这并非仅限于提示符本身,因此与提示符工程有所不同。它是在系统设计层面实现的。
上下文工程与其说是关注用户可以在提示符中输入什么,不如说是关注开发者所采用的模型架构选择。
基本组成部分

Source: X
以下是内容工程框架的六大组成部分:
1. 智能体
人工智能智能体是系统中决定下一步行动的部分。它们会解读当前情况,选择合适的工具,调整策略,并确保模型不会盲目猜测。智能体并非采用僵化的流程,而是创建了一个灵活的循环,使系统能够思考、行动并自我修正。
- 它们将任务分解成多个步骤
- 它们将信息路由到需要的地方
- 它们确保整个工作流程不会在情况发生变化时崩溃
2. 查询增强
查询增强可以清理用户输入给模型的各种信息。真实用户的输入往往杂乱无章,而这一层可以将他们的输入转化为系统可以实际处理的内容。通过重写、扩展或将查询拆分成更小的部分,可以确保模型搜索的是正确的内容,而不是错误的内容。
- 重写可以去除噪声并提高清晰度
- 扩展可以在意图模糊时扩大搜索范围
- 分解可以处理复杂的多问题提示
3. 数据检索
数据检索通过以下方式进行:检索增强生成(Retrieval Augmented Generation)是指从庞大的知识库中提取最相关的信息。它将文档分块,使模型能够理解,并在恰当的时机提取正确的片段,同时为模型提供所需的信息,而不会使其上下文窗口过载。
- 分块大小会影响准确性和理解力。
- 预分块可以加快处理速度。
- 后分块可以适应复杂的查询。
4. 提示技巧
提示技巧可以在模型获得正确信息后引导其推理。您可以塑造模型的思考方式、解释步骤的方式以及与工具或证据的交互方式。正确的提示结构可以将模糊的答案转化为可靠的答案。
- 思维链(Chain of Thought)鼓励逐步推理。
- 少量示例展示了理想的结果。
- ReAct 将推理与实际操作相结合。
5. 记忆
记忆为系统提供连续性。它跟踪之前发生的事情、用户的偏好以及代理迄今为止的学习成果。如果没有记忆,模型每次都会重置。有了它,系统会变得更智能、更快速、更个性化。
- 短期记忆存在于上下文窗口中
- 长期记忆保存在外部存储器中
- 工作记忆支持多步骤流程
6. 工具
工具使模型能够超越文本,与现实世界互动。借助合适的工具集,模型可以获取数据、执行操作或调用 API,而无需猜测。这使得助手转变为能够完成任务的真正操作员。
- 函数调用创建结构化操作
- MCP 规范了模型访问外部系统的方式
- 良好的工具描述可以避免错误
它们是如何协同工作的?

Source: Weviate
描绘一下现代人工智能应用的场景:
- 用户发送一个混乱的查询
- 查询代理对其进行重写
- 检索系统通过智能分块查找证据
- 代理验证信息
- 工具提取实时外部数据
- 内存存储并检索上下文
想象一下:
用户发送一个混乱的查询。查询代理接收查询并将其重写,使其更清晰。RAG 系统通过智能分块在查询中查找证据。代理接收此信息并检查其真实性和完整性。此信息用于通过 MCP 发出适当的调用来提取实时数据。内存存储在此检索和清理过程中获得的信息和上下文。
如果需要相关上下文,可以稍后检索这些信息以回到正轨。这避免了冗余处理,并允许检索已处理的信息以供将来使用。
实际应用案例
以下是一些上下文工程架构的实际应用:
- 客户支持助手:客服人员会修改模糊的客户咨询,提取产品相关文档,查询长期记忆中的历史工单,并使用工具获取订单状态。模型不会进行猜测,而是根据已知的上下文做出响应。
- 团队内部知识助手:员工经常提出杂乱无章、不完整的问题。查询增强功能可以清理这些问题,检索功能可以找到合适的政策或技术文档,记忆功能可以回忆起过去的对话。现在,该助手可以作为值得信赖的内部搜索和推理层来提供帮助。
- 人工智能研究助手:该系统会将复杂的研究问题分解成各个组成部分,使用语义或层级分块检索相关论文,并综合分析结果。工具能够访问实时数据集,而内存则会记录之前的假设、笔记等信息。
- 工作流自动化代理:代理会规划包含多个步骤的任务,调用 API,检查日历,更新数据库,并利用长期记忆来个性化操作。检索功能会将相应的规则或标准操作程序 (SOP) 引入工作流,以确保其合法性和准确性。
- 领域特定助手:检索功能会提取已验证的文档、指南或法规。内存会存储之前的案例。工具可以访问实时系统或数据集。查询重写功能可以减少用户的歧义,从而确保模型的可靠性和安全性。
这对人工智能工程的未来意味着什么?
通过上下文工程,重点不再是与模型进行持续的对话,而是设计能够使模型智能运行的生态系统上下文。这不仅仅是提示、检索技巧或拼凑的架构的问题。这是一个高度协调的系统,其中智能体决定行动,查询得到清理,正确的信息在恰当的时机呈现,记忆将过去的上下文信息传递到未来,工具则让模型能够在现实世界中发挥作用。
然而,这些要素仍将不断发展演进。真正能够定义更成功的模型、应用或工具的,是那些基于精心设计的、深思熟虑的上下文设计而构建的。仅仅依靠更庞大的模型并不能让我们走向成功,更优秀的工程技术才能。未来将属于那些在设计模型的同时,也对环境进行深入思考的构建者。


评论留言