1.1什么是上下文工程
Context Engineering
1.1.1定义与内涵
上下文工程(Context Engineering)是一门系统性的工程学科,它研究如何设计、组织、优化和管理大语言模型所需的全部信息环境,以确保模型能够在正确的时间获得正确的信息,从而产生准确、可靠、符合预期的输出。 关键要素:
- 系统性:具有完整的方法论体系
- 信息环境:关注的不仅仅是输入给模型的文本,还有可能影响模型行为的其他信息,比如:持久化的信息,agent状态,运行时环境而非单纯的prompt(tools,system prompt,user_messages,tool_results)
- 时机和形式:正确时机正确形式
- 目标导向:实现可靠的,可预测的输出
1.1.2 上下文的多维构成
包括以下的角色:
- 系统指令(对应system prompt部分)
- 用户输入
- 对话历史(memory部分)
- 外部知识(通过其他方法例如检索引入的外部知识)
- 工具定义
- 示例样本
1.1.3 上下文工程的核心挑战
主要有三:
- 有限的上下文窗口:超出上下文时,相关内容的选择很关键
- 信息的质量和密度:模型的输出质量高度依赖于输入信息的质量
- 动态和实时性:构建动态的上下文管理系统确保信息的实时性是一个挑战
1.1.4 与驭具工程(Harness Engineering)的关系
在智能体工程的完整版图中,上下文工程并非孤立存在。业界提出的驭具工程(Harness Engineering) 涵盖了让智能体在生产环境中可靠运行的全部工程实践,包括工具与权限编排、上下文动态管理、反馈纠错闭环、安全守卫四大职能。上下文工程正是其中“上下文动态管理”这一核心支柱——决定在什么时间节点、把哪些记忆和背景信息注入模型的上下文窗口。
换言之,上下文工程关注“模型看到什么”,驭具工程关注“模型如何安全可靠地执行”。两者互为补充:即使上下文管理做得再精准,如果缺少权限控制、错误恢复和安全守卫,智能体仍然无法在真实业务中稳定运行。
1.1.5 上下文工程的重要性
- 模型能力的放大器:模型的输出质量高度依赖于输入信息的质量
- 可靠性的保障:能显著降低幻觉,错误和不一致行为的发生
- 成本效率的关键
- 可拓展性的基础
1.2 从提示词工程到上下文工程
1.2.1 提示词工程的起源与局限
提示词工程(Prompt Engineering)是指通过精心设计输入给模型的文本指令,来引导模型产生期望输出的技术
提示词工程的典型技巧包括:
- 角色设定
- 任务描述:清晰准确
- 输出格式:指定如JSON,Markdow等结构化输出
- 少文本学习(few-shot)
- 思维链(CoT)提示
| 局限性 | 具体表现 |
|---|---|
| 静态性 | 提示词通常是预定义的,难以适应动态变化的需求 |
| 孤立性 | 聚焦于单次交互,缺乏对对话历史和外部信息的系统管理 |
| 可扩展性差 | 随着任务复杂度增加,提示词变得冗长且难以维护 |
| 缺乏工程化 | 更多依赖直觉和试错,缺乏系统化的方法论 |
1.2.2 上下文工程的演进
关注如何构建完整的信息环境 Anthropic将上下文工程定义为: “在推理过程中策划与维护最优 token 集合的一整套策略”
1.2.3 上下文工程和提示词工程的核心差异对比
| 维度 | 提示词工程(Prompt Engineering) | 上下文工程(Context Engineering) |
|---|---|---|
| 关注点 | 单次指令的措辞和格式 | 完整信息环境的设计 |
| 范围 | 提示词文本 | 指令、数据、工具、记忆、策略 |
| 时间维度 | 静态、一次性 | 动态、跨会话 |
| 信息来源 | 手工编写 | 多源融合、自动检索 |
| 工程化程度 | 技巧驱动、经验依赖 | 系统化、可量化、可测试 |
| 应用场景 | 简单任务、单轮对话 | 复杂任务、多轮交互、智能体 |
1.3上下文工程的核心价值
| 核心价值 | 主要作用 | 关键手段 / 体现 |
|---|---|---|
| 提升模型输出质量 | 让模型获得更准确、相关、完整的信息,减少幻觉并提高输出一致性 | 精准检索、上下文构建、记忆管理、上下文约束 |
| 优化成本效率 | 减少不必要的 Token 消耗和重复计算,降低 AI 应用运行成本 | 精准检索、上下文压缩、Prompt Cache、分层处理 |
| 增强系统可靠性 | 降低错误和异常发生概率,并提高问题定位、故障恢复和审计能力 | 边界控制、故障隔离、降级策略、上下文日志 |
| 支撑复杂应用 | 使 AI 从简单的单轮问答扩展到多轮交互、智能体和多模态等复杂场景 | 对话历史、工作记忆、长期记忆、工具调用、多模态上下文 |
| 加速开发迭代 | 将上下文管理从经验性的 Prompt 调整转变为可复用、可测试、可观测的工程系统 | 模块化、自动化测试、可观测性、标准化 |
| 创造产品竞争优势 | 在相同基础模型之上,通过更好的信息组织和任务编排形成差异化能力 | 领域知识库、上下文策略、优化经验、持续迭代 |