什么是上下文工程?
上下文工程是指设计、组织和操作输入大型语言模型 (LLM) 的上下文,以优化其性能的学科。上下文工程并非微调模型权重或架构,而是关注输入——提示、系统指令、检索到的知识、格式,甚至信息的排序。
上下文工程并非旨在设计更好的提示,而是旨在构建一个能够在需要时准确提供正确情境的系统。
想象一下,一位人工智能助理被要求撰写一份绩效评估报告。
- 上下文信息匮乏:它只能看到指示,结果只是模糊、泛泛的反馈,缺乏洞察力。
- 上下文信息丰富:它不仅能看到指示,还能看到员工的目标、过往评价、项目成果、同事反馈和经理备注。
结果如何?一份细致入微、数据支撑的评估报告,让人感觉信息丰富且个性化——因为它确实如此。
这种新兴实践正受到越来越多的关注,因为人们越来越依赖 GPT-4、Claude 和 Mistral 等基于提示的模型。这些模型的性能通常与其规模无关,而更多地取决于它们所接收上下文的质量。从这个意义上讲,上下文工程相当于智能代理和检索增强生成 ( RAG ) 时代的提示编程。

为什么我们需要上下文工程?
- 令牌效率:随着上下文窗口不断扩展但仍有限制(例如,GPT-4-Turbo 中的 128K),高效的上下文管理变得至关重要。冗余或结构不良的上下文会浪费宝贵的令牌。
- 精准度与相关性:LLM 对噪音较为敏感。题目越有针对性、逻辑性越强,获得准确答案的可能性就越高。
- 检索增强生成 (RAG):在 RAG 系统中,外部数据是实时获取的。上下文工程有助于确定检索内容、如何分块以及如何呈现数据。
- 代理工作流:当使用 LangChain 或 OpenAgents 等工具时,自主代理依赖于上下文来维护记忆、目标和工具使用情况。糟糕的上下文会导致计划失败或产生幻觉。
- 领域特定适应:微调成本高昂。构建更优的提示或检索流程,可以让模型在零样本或少样本学习的特定任务中表现良好。
上下文工程的关键技术
有多种方法和实践正在塑造该领域:
1. 系统提示优化
系统提示是基础,它定义了LLM的行为和风格。技巧包括:
- 角色分配(例如,“你是一名数据科学导师”)
- 教学框架(例如“逐步思考”)
- 施加约束(例如“仅输出 JSON”)
2. 提示组合和链接
LangChain 推广了使用提示模板和链条来模块化提示。链条允许将任务拆分到不同的提示中——例如,分解问题、检索证据,然后回答。
3. 上下文压缩
利用有限的上下文窗口,可以:
- 使用摘要模型来压缩之前的对话
- 嵌入并聚合相似内容以消除冗余
- 应用结构化格式(如表格)而不是冗长的散文
4. 动态检索和路由
RAG 管道(例如 LlamaIndex 和 LangChain 中的管道)根据用户意图从向量存储中检索文档。高级设置包括:
- 检索前重新表述或扩展查询
- 多向量路由选择不同的源或检索器
- 基于相关性和新近度的上下文重新排序
5. 记忆工程
短期记忆(提示中的内容)和长期记忆(可提取的历史)需要进行对齐。技巧包括:
- 上下文重放(注入过去的相关交互)
- 记忆总结
- 意图感知的记忆选择
6. 工具增强上下文
在基于代理的系统中,工具的使用具有上下文感知能力:
- 工具描述格式
- 工具历史记录摘要
- 步骤之间传递的观察结果
上下文工程 vs. 提示工程
虽然上下文工程与提示工程相关,但它的范围更广,也更具系统级。提示工程通常涉及静态的、手工编写的输入字符串。上下文工程则包含使用嵌入、记忆、链接和检索的动态上下文构建。正如 Simon Willison 所说:“我们所做的是上下文工程,而不是微调。”
实际应用
- 客户支持代理:提供之前的票证摘要、客户资料数据和 KB 文档。
- 代码助手:注入特定于 repo 的文档、以前的提交和功能使用情况。
- 法律文件搜索:通过案例历史和先例进行上下文感知查询。
- 教育:个性化辅导代理,能够记住学习者的行为和目标。
上下文工程中的挑战
尽管前景光明,但仍存在一些痛点:
- 延迟:检索和格式化步骤会带来开销。
- 排名质量:检索质量差会损害下游生成。
- Token Budgeting:选择包含/排除的内容并不是一件简单的事情。
- 工具互操作性:混合工具(LangChain、LlamaIndex、自定义检索器)增加了复杂性。
新兴最佳实践
- 结合结构化(JSON、表格)和非结构化文本以便更好地解析。
- 将每个上下文注入限制为单个逻辑单元(例如,一个文档或对话摘要)。
- 使用元数据(时间戳、作者身份)进行更好的排序和评分。
- 记录、跟踪和审计上下文注入,以便随着时间的推移而改进。
上下文工程的未来
有几种趋势表明,上下文工程将成为 LLM 流程的基础:
- 模型感知上下文自适应:未来的模型可能会动态请求所需的上下文类型或格式。
- 自我反思代理:审核其环境、修改自身记忆并标记幻觉风险的代理。
- 标准化:类似于 JSON 成为通用数据交换格式,上下文模板可能会成为代理和工具的标准化。
正如 Andrej Karpathy 在最近的一篇文章中所暗示的那样,“上下文是新的权重更新”。我们现在不是重新训练模型,而是通过它们的上下文对它们进行编程——这使得上下文工程成为 LLM 时代的主导软件界面。
结论
上下文工程不再是可有可无的,它是释放现代语言模型全部功能的关键。随着 LangChain 和 LlamaIndex 等工具包的成熟以及代理工作流程的激增,掌握上下文构建变得与模型选择同等重要。无论您是在构建检索系统、编码代理还是个性化辅导,如何构建模型的上下文都将日益决定其智能程度。
资料来源:
- https://x.com/tobi/status/1935533422589399127
- https://x.com/karpathy/status/1937902205765607626
- https://blog.langchain.com/the-rise-of-context-engineering/
- https://rlancemartin.github.io/2025/06/23/context_engineering/
- https://www.philschmid.de/context-engineering
- https://blog.langchain.com/context-engineering-for-agents/
- https://www.llamaindex.ai/blog/context-engineering-what-it-is-and-techniques-to-consider
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/59467.html