什么是上下文工程?
大语言模型(LLM)的广泛应用,让机器拥有了理解和生成语言的能力。在早期阶段,业界热衷于“提示工程(Prompt Engineering)”,试图通过寻找各种“神奇咒语”——例如在句尾加上“请一步一步思考”——来激发模型的潜能。
然而,随着技术演进到构建能够自主规划和执行复杂任务的 AI Agent(智能体) 阶段,单靠调整字句的“咒语”已经失效。系统化的工程思维正在取代单纯的文字游戏。
语言模型在推理时的本质,是一个执行文字接龙的数学函数 。当模型内部的权重参数 保持固定时,开发者唯一能控制和优化的就是输入 。这场技术范式的转变,标志着从优化单次对话的提示工程,正式迈向了构建系统化信息架构的上下文工程(Context Engineering)。
一、 核心概念演变:从“雕琢字句”到“架构数据”
要理解这一转变,需要明确两者在定位和作用域上的根本差异:
-
提示工程 (Prompt Engineering) = 如何向模型提问。 它侧重于单次交互的表面输入优化,例如调整语气、设定角色或明确输出格式。这是一门偏向经验主义的“手艺”,适用于静态的、一次性的任务。 -
上下文工程 (Context Engineering) = 模型在被提问时,拥有哪些知识。 它是一个更为宏大的系统设计过程。重点不再是字句的雕琢,而是自动化地管理、组织和过滤语言模型的整个输入环境(即上下文窗口)。它关注数据流、记忆管理和工具集成,是一门真正的系统架构工程。
可以这样理解:提示工程决定了沟通的技巧,而上下文工程决定了沟通的知识储备。
二、 深度解剖:一个完整的上下文包含什么?
在复杂的 Agent 任务中,输入给模型的 并非一段简单的文本,而是一个动态组装的“信息仪表盘”。一个成熟的上下文通常包含以下四大模块:
-
基础指令与规则 (System Prompts & Rules): 定义 Agent 的核心身份、系统边界和安全护栏。这部分通常是静态的。 -
动态记忆与对话历史 (Memory & History): 不仅包含当前会话的短期记录,还包括跨会话提取的结构化实体记忆。 -
外部知识与工具输出 (External Data & Tool Calls): 通过检索增强生成(RAG)获取的文档片段,或是调用外部 API(如查询数据库、执行代码、获取网页内容)返回的实时结果。 -
深度思考过程 (Reasoning Traces): 对于具备原生推理能力(如 o1、DeepSeek-R1)的模型,其在给出最终答案前,在系统内部生成的“思维链”或试错过程,同样是上下文的重要组成部分。
三、 Agent 时代的痛点:无限上下文带来的“幻觉”
AI Agent 的运行逻辑是“观察 思考 行动”的不断循环。这种多步执行机制会导致交互历史迅速膨胀。
虽然当前的模型号称支持数十万甚至上百万的 Token 输入,但上下文的长度绝对不等于模型的理解能力。未经处理的冗长上下文会引发两个致命问题:
-
迷失在中间 (Lost in the Middle): 模型往往对输入开头和结尾的信息具有较高的注意力,而塞入过多未经过滤的中间资料,会导致核心指令被稀释,模型会“头晕目眩”,进而产生幻觉或遗漏关键要求。 -
上下文腐烂 (Context Rot): 在执行复杂任务时,Agent 会产生大量试错或调用工具的琐碎步骤。随着对话推进,这些无用的历史残留会干扰模型的判断,导致其偏离最初的既定目标。
四、 破局之道:上下文工程的四大核心套路
为了解决上述痛点,上下文工程的核心原则可以概括为:“把需要的放进去,把不需要的清出来”。目前业界主流的四种工程实现策略如下:
1. 极致的过滤与结构化 (Selection & GraphRAG)
不要将所有检索到的文档或历史记录一股脑倒给模型。传统的 RAG 基于语义向量相似度,在处理复杂的多步逻辑时容易失效。
-
教学案例: 引入 知识图谱检索(GraphRAG)。系统在将信息放入上下文前,先将其转化为实体及关联关系(例如“服务器A-连接-数据库B”)。这不仅提高了检索的精准度,还为模型在长文本中提供了清晰的逻辑“路标”,大幅减少迷失。
2. 状态的外部卸载 (State Offloading)
严禁将所有工具的输出或冗长的中间分析过程堆积在对话历史中。
-
教学案例: 为 Agent 提供一个“虚拟工作台”。赋予其读写外部文件(如 scratchpad.txt)的权限。Agent 只需要在上下文中留下一句“我已将五万行日志的分析结果整理至文件 A”,并在需要时精准读取。这种做法彻底避免了上下文窗口被海量中间数据撑爆。
3. 摘要与压缩 (Compression)
针对不断累积的交互记录,建立定期的“记忆垃圾回收”机制。
-
教学案例: 设定系统每经过 20 轮交互,便触发一次后台语言模型调用,将过去的记录进行提炼。剔除执行任务时的琐碎细节(如“尝试点击按钮失败”、“关闭弹窗”),只保留“用户核心诉求已变更为查找下周的航班”这一关键脉络。
4. 架构拆分与标准化接入 (Multi-Agent & MCP)
在系统层面控制上下文的膨胀与计算成本。
-
多智能体协作: 将复杂任务拆分给多个专责的 Agent(如“规划者”、“检索者”、“执行者”)。这确保了每个 Agent 的上下文中只有其专属的关联信息,避免单点过载。 -
提示词缓存 (Prompt Caching) 与 MCP: 将庞大的系统提示和静态指令放置在上下文的最前端,利用现代模型的缓存机制跳过重复计算;同时采用 模型上下文协议 (MCP) 统一管理数据源,使上下文的构建成为稳定、低延迟的数据管道工程。
结语
从寻找咒语到构建系统,AI 应用的开发正在从前沿探索演变为严谨的工程科学。在 Agent 时代,构建可靠 AI 的关键不再是掌握多少修辞技巧,而是懂得如何精准管理缓存、何时压缩记忆、以及如何构建高效数据管道。
本文由 mdnice 多平台发布
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)