配套视频:https://www.bilibili.com/video/BV1JJ14BWE3S/

引言

在 AI 应用开发领域,"提示工程"(Prompt Engineering)已经成为一个耳熟能详的术语。然而,随着 AI 智能体系统的复杂度不断提升,一个更为广泛和系统化的概念正在崭露头角——"上下文工程"(Context Engineering)。本文将通过一个生动的案例,深入探讨这两个概念的区别与联系,并揭示如何构建真正智能的 AI 系统。

一、核心概念:提示工程 vs 上下文工程

提示工程:措辞的艺术

提示工程是编写用于提示大语言模型(LLM)输入文本的过程。它专注于如何通过精心设计的指令、示例和格式提示来引导 LLM 的行为与输出。简单来说,提示工程关注的是"怎么说"——如何用恰当的语言让模型理解你的意图并产生期望的结果。

上下文工程:系统级的支持学科

上下文工程则是一个更为广泛的学科,它通过程序化的方式整合大模型在推理时所见的全部内容。这不仅包括提示词本身,还涵盖:

  • 检索到的文档(RAG)

  • 记忆系统(短期和长期)

  • 可调用的工具

  • 状态管理

上下文工程的目标是为模型提供系统级支持,确保它能够合理、准确地完成复杂任务。如果说提示工程是"措辞的艺术",那么上下文工程就是"构建智能体生态系统的科学"。

二、案例分析:特工格雷厄姆的巴黎之旅

为了更好地理解这两个概念的差异,让我们看一个实际案例——一个名为"格雷厄姆"的自主 AI 旅行预订智能体。

第一次尝试:地理位置的尴尬

用户请求:"帮我订一间巴黎的酒店,下月的 DevOps 会议。"

格雷厄姆的回复:"没问题!已为您预订巴黎最佳西方酒店,Wi-Fi 优质,停车免费。"

问题出现了:这家酒店位于肯塔基州的巴黎市,而不是法国巴黎!DevOps 会议实际上在法国举行。

失败原因分析

  1. 提示工程不足:用户没有明确指定"法国巴黎"

  2. 上下文工程缺失:智能体没有查询用户日程或搜索会议信息来确定正确地点

这个案例说明,仅靠用户的提示词是不够的,智能体需要主动获取和整合上下文信息。

第二次尝试:预算的灾难

用户请求:"我的会议在法国巴黎。"(补充了位置信息)

格雷厄姆的回复:"已为您预订丽兹酒店,每晚 900 欧元,含香槟早餐。"

新问题:这个价格远超公司差旅预算!

失败原因分析
智能体缺乏公司差旅政策的上下文信息。它应该能够访问一个 JSON 格式的差旅政策文件,其中明确规定了该地区允许的最高酒店价格。

成功的关键

要让格雷厄姆成功完成任务,需要:

  • 更精确的提示(提示工程)

  • 公司差旅政策文件(上下文数据)

  • 会议信息查询能力(工具调用)

  • 用户历史偏好(记忆系统)

这正是上下文工程的价值所在——它不仅仅依赖用户的输入,而是构建一个完整的信息生态系统。

三、提示工程的关键技术

虽然上下文工程更为全面,但提示工程仍然是其重要组成部分。以下是几种经过验证的提示工程技术:

1. 角色分配(Role Assignment)

通过明确告诉模型它应该扮演的角色,可以显著改变输出的质量和风格。

示例

你是一位资深 Python 开发人员,专门审查代码中的安全漏洞。

这会产生与普通代码审查请求完全不同的输出。模型会采用该角色的专业性、术语和关注点,提供更深入、更专业的分析。

2. 少量示例学习(Few-shot Learning)

与其用文字描述你想要什么,不如直接展示 2-3 个输入输出样例。

示例

示例 1:
输入:用户反馈:"界面很卡"
输出:{"category": "performance", "severity": "medium", "action": "investigate"}

示例 2:
输入:用户反馈:"无法登录"
输出:{"category": "authentication", "severity": "high", "action": "urgent"}

现在处理:用户反馈:"页面加载很慢"

这种方法帮助模型准确理解你的格式和风格要求,特别适用于需要特定输出格式的场景。

3. 思维链提示(Chain of Thought)

在推理模型出现之前,思维链提示是提高复杂推理任务准确性的重要技巧。

关键短语

  • "让我们一步步思考"

  • "解释你的推理过程"

  • "展示你的计算步骤"

这种方法迫使模型展示其推理过程,防止它草率下结论,在数学问题、逻辑推理等任务中尤为有效。

4. 约束设定(Constraint Setting)

明确设定边界可以防止模型偏离主题或产生不符合要求的输出。

示例

  • "回复请限制在 100 字以内"

  • "仅使用提供的上下文信息,不要使用预训练知识"

  • "输出必须是有效的 JSON 格式"

四、上下文工程的核心组件

上下文工程构建的是一个动态的智能体系统,协调整个智能体环境。以下是其核心组成部分:

1. 记忆管理(Memory Management)

智能体需要记忆才能提供连贯、个性化的服务。记忆管理分为两种形式:

短期记忆

  • 功能:摘要长对话,保持在上下文窗口范围内

  • 作用:确保过往对话不被遗忘

  • 技术:对话摘要、滑动窗口

长期记忆

  • 功能:存储和检索持久化信息

  • 内容:用户偏好、历史行程、学习到的模式

  • 技术:向量数据库、嵌入检索

实际应用:格雷厄姆可以记住你总是选择靠窗座位、偏好四星级酒店、对海鲜过敏等信息。

2. 状态管理(State Management)

在多步骤流程中,智能体需要知道"我们现在在哪个阶段?"

场景示例:预订完整行程

  1. 航班预订 ✓

  2. 酒店预订 ← 当前步骤

  3. 地面交通预订

  4. 会议注册

关键问题

  • 航班预订成功了吗?

  • 到达时间是什么?(用于安排接机)

  • 预算还剩多少?

状态管理确保智能体在复杂任务中不会丢失上下文,每一步都基于前一步的结果进行决策。

3. 检索增强生成(RAG)

RAG 将智能体连接至动态知识源,是上下文工程中最重要的技术之一。

工作原理

  1. 混合搜索:结合语义匹配和关键词匹配

  2. 上下文过滤:只返回相关部分,而非完整文档

  3. 动态注入:将检索结果注入到提示中

实际应用
当检索公司差旅政策时,RAG 不会返回 50 页的完整政策文件,而是:

  • 筛选出与"巴黎酒店预订"相关的条款

  • 提取价格上限和例外情况

  • 仅将这些上下文相关的部分返回给智能体

这大大提高了效率和准确性。

4. 工具调用(Tool Calling)

大语言模型本身无法:

  • 查询真实数据库

  • 调用 API

  • 执行代码

  • 部署基础设施

工具正是用来填补这一空白的。

常见工具类型

  • 数据查询工具:SQL 数据库查询

  • API 工具:获取实时价格、天气、航班信息

  • 执行工具:运行 Python 代码、部署云资源

  • 通知工具:发送邮件、消息推送

上下文工程的作用

定义指导大模型正确使用工具的接口:

  • 工具的功能是什么?

  • 什么时候应该使用这个工具?

  • 有哪些限制条件?

工具描述示例

{
  "name": "search_hotels",
  "description": "搜索符合条件的酒店,仅在用户明确提出住宿需求时使用",
  "parameters": {
    "location": "城市名称(必需)",
    "check_in": "入住日期(必需)",
    "max_price": "最高价格(可选,应参考差旅政策)"
  },
  "constraints": "必须先确认位置和日期,价格不得超过政策限制"
}

5. 动态提示构建

上下文工程的精髓在于动态构建提示,而不是使用静态模板。

组成比例

  • 20% 静态指令:基础提示模板

  • 80% 动态内容:运行时注入的上下文

动态内容来源

  • 状态信息:当前任务进度、已完成的步骤

  • 记忆检索:用户偏好、历史行为

  • RAG 检索:相关政策、知识文档

  • 工具输出:实时数据、查询结果

示例流程

基础提示(静态):

分析安全日志中的异常行为。

运行时注入(动态):

分析安全日志中的异常行为。

当前上下文:
- 近期告警:[从状态获取]
- 已知误报:[从记忆检索]
- 安全政策:[从 RAG 检索]
- 最新日志:[从工具调用获取]

请基于以上信息进行分析...

最终提示中,大部分内容都是根据当前情况动态生成的,这使得智能体能够适应不断变化的环境。

五、提示工程与上下文工程的关系

包含关系

提示工程是上下文工程的一个子集。上下文工程包含了提示工程,但远不止于此。

上下文工程
├── 提示工程(静态指令)
├── 记忆管理
├── 状态管理
├── RAG 检索
└── 工具调用

协同工作

两者并非对立,而是互补:

  1. 提示工程提供基础框架和指令

  2. 上下文工程提供动态数据和系统支持

  3. 结合使用才能构建真正智能的系统

类比

  • 提示工程像是给演员写台词

  • 上下文工程像是为演员提供完整的剧本、背景故事、道具和舞台

最佳实践

要构建优秀的 AI 智能体系统:

  1. 从提示工程开始:设计清晰的指令和角色定义

  2. 添加记忆层:让智能体记住用户偏好和历史交互

  3. 集成 RAG:连接动态知识源

  4. 实现状态管理:处理多步骤任务

  5. 提供工具能力:让智能体能够执行实际操作

  6. 持续优化:根据反馈调整各个组件

六、实际应用场景

场景 1:客户服务智能体

仅使用提示工程

  • 只能基于当前对话回答问题

  • 每次都需要用户重复信息

  • 无法访问订单历史或知识库

使用上下文工程

  • 记住客户历史问题和偏好

  • 自动检索相关产品文档

  • 查询实时订单状态

  • 跟踪问题解决进度

场景 2:代码审查助手

仅使用提示工程

  • 只能分析提供的代码片段

  • 无法考虑项目上下文

  • 每次都需要重新说明要求

使用上下文工程

  • 检索项目编码规范

  • 查询相关代码库

  • 记住之前的审查意见

  • 调用静态分析工具

  • 跟踪修复状态

场景 3:数据分析智能体

仅使用提示工程

  • 只能提供分析建议

  • 无法访问实际数据

  • 无法执行分析代码

使用上下文工程

  • 查询数据库获取数据

  • 执行 Python 分析代码

  • 记住分析历史和发现

  • 检索分析方法文档

  • 生成可视化报告

七、技术实现建议

架构设计

用户输入
    ↓
提示工程层(静态指令 + 角色定义)
    ↓
上下文工程层
    ├── 记忆检索(向量数据库)
    ├── RAG 检索(知识库)
    ├── 状态获取(状态管理器)
    └── 工具准备(工具注册表)
    ↓
动态提示构建
    ↓
LLM 推理
    ↓
工具调用(如需要)
    ↓
状态更新
    ↓
记忆存储
    ↓
输出结果

技术栈推荐

记忆管理

  • 向量数据库:Pinecone, Weaviate, Milvus

  • 会话存储:Redis, PostgreSQL

RAG 实现

  • 嵌入模型:OpenAI Embeddings, Sentence Transformers

  • 检索框架:LangChain, LlamaIndex

状态管理

  • 工作流引擎:Temporal, Apache Airflow

  • 状态机:XState, Finite State Machine

工具调用

  • 函数调用:OpenAI Function Calling, Anthropic Tool Use

  • API 框架:FastAPI, Flask

八、挑战与未来

当前挑战

  1. 复杂性管理:上下文工程系统复杂度高,需要精心设计

  2. 成本控制:动态检索和工具调用会增加延迟和成本

  3. 可靠性保证:多组件协同增加了故障点

  4. 调试困难:动态生成的提示难以追踪和调试

未来趋势

  1. 自动化上下文工程:AI 自动优化上下文检索和注入策略

  2. 多智能体协作:不同专业智能体协同工作

  3. 持续学习:智能体从交互中不断学习和改进

  4. 标准化框架:更成熟的上下文工程框架和最佳实践

结语

回到格雷厄姆的故事:经过提示工程和上下文工程的完善,它终于成功预订了一家靠近会场、价格合理的巴黎(法国)酒店。但故事还没结束——格雷厄姆说:"预订已完成,正在等待经理、人力资源和财务部门的批准,预计需要 6-8 周。"而会议两周后就要召开了!

这个幽默的结尾提醒我们:即使技术再完善,有时候你还需要对经理做"提示工程"! 😄

但玩笑归玩笑,核心观点是明确的:

提示工程是措辞的艺术,上下文工程是构建智能系统的科学。只有将两者结合,才能构建真正智能、可靠、实用的 AI 智能体系统。

在 AI 应用开发中,不要只关注如何写好提示词,更要思考如何为你的 AI 构建一个完整的"生态系统"——包括记忆、知识、工具和状态管理。这才是通往真正智能 AI 的道路。


关键要点总结

✅ 提示工程 ⊂ 上下文工程
✅ 上下文工程 = 提示 + 记忆 + RAG + 状态 + 工具
✅ 动态提示 > 静态提示
✅ 系统化方法 > 单点优化
✅ 实践 + 迭代 = 成功

希望这篇文章能帮助你更好地理解和应用这两个重要概念,构建出更智能、更可靠的 AI 系统!


如果这篇文章对你有帮助,欢迎点赞、收藏、转发。也欢迎在评论区分享你的经验,我们一起交流学习!


我是 dtsola【IT解决方案架构师 | AI创业者】 ;专注AI创业、商业、技术、心理学、哲学内容分享。

提供服务:AI项目咨询 | 技术解决方案 | IT项目实施 | 企业技术顾问

博客:https://www.dtsola.com

公众号&VX:dtsola

需提供服务,加微信 dtsola,备注:IT咨询,并说明来意。


#人工智能 #上下文工程 #提示词工程 #AI创业 #独立开发者 #AI应用 #RAG #智能体 #AI工具 #AI编程


Work Less, Earn More, Enjoy Life.