人工智能中的上下文工程是什么?其技术、用例以及重要性

什么是上下文工程?

上下文工程是指设计、组织和操作输入大型语言模型 (LLM) 的上下文,以优化其性能的学科。上下文工程并非微调模型权重或架构,而是关注输入——提示、系统指令、检索到的知识、格式,甚至信息的排序。

上下文工程并非旨在设计更好的提示,而是旨在构建一个能够在需要时准确提供正确情境的系统。

想象一下,一位人工智能助理被要求撰写一份绩效评估报告。

  • 上下文信息匮乏:它只能看到指示,结果只是模糊、泛泛的反馈,缺乏洞察力。
  • 上下文信息丰富:它不仅能看到指示,还能看到员工的目标、过往评价、项目成果、同事反馈和经理备注。

结果如何?一份细致入微、数据支撑的评估报告,让人感觉信息丰富且个性化——因为它确实如此。

这种新兴实践正受到越来越多的关注,因为人们越来越依赖 GPT-4、Claude 和 Mistral 等基于提示的模型。这些模型的性能通常与其规模无关,而更多地取决于它们所接收上下文的质量。从这个意义上讲,上下文工程相当于智能代理和检索增强生成 ( RAG ) 时代的提示编程。

上下文工程

为什么我们需要上下文工程?

  1. 令牌效率:随着上下文窗口不断扩展但仍有限制(例如,GPT-4-Turbo 中的 128K),高效的上下文管理变得至关重要。冗余或结构不良的上下文会浪费宝贵的令牌。
  2. 精准度与相关性:LLM 对噪音较为敏感。题目越有针对性、逻辑性越强,获得准确答案的可能性就越高。
  3. 检索增强生成 (RAG):在 RAG 系统中,外部数据是实时获取的。上下文工程有助于确定检索内容、如何分块以及如何呈现数据。
  4. 代理工作流:当使用 LangChain 或 OpenAgents 等工具时,自主代理依赖于上下文来维护记忆、目标和工具使用情况。糟糕的上下文会导致计划失败或产生幻觉。
  5. 领域特定适应:微调成本高昂。构建更优的提示或检索流程,可以让模型在零样本或少样本学习的特定任务中表现良好。

上下文工程的关键技术

有多种方法和实践正在塑造该领域:

1. 系统提示优化

系统提示是基础,它定义了LLM的行为和风格。技巧包括:

  • 角色分配(例如,“你是一名数据科学导师”)
  • 教学框架(例如“逐步思考”)
  • 施加约束(例如“仅输出 JSON”)

2. 提示组合和链接

LangChain 推广了使用提示模板和链条来模块化提示。链条允许将任务拆分到不同的提示中——例如,分解问题、检索证据,然后回答。

3. 上下文压缩

利用有限的上下文窗口,可以:

  • 使用摘要模型来压缩之前的对话
  • 嵌入并聚合相似内容以消除冗余
  • 应用结构化格式(如表格)而不是冗长的散文

4. 动态检索和路由

RAG 管道(例如 LlamaIndex 和 LangChain 中的管道)根据用户意图从向量存储中检索文档。高级设置包括:

  • 检索前重新表述或扩展查询
  • 多向量路由选择不同的源或检索器
  • 基于相关性和新近度的上下文重新排序

5. 记忆工程

短期记忆(提示中的内容)和长期记忆(可提取的历史)需要进行对齐。技巧包括:

  • 上下文重放(注入过去的相关交互)
  • 记忆总结
  • 意图感知的记忆选择

6. 工具增强上下文

在基于代理的系统中,工具的使用具有上下文感知能力:

  • 工具描述格式
  • 工具历史记录摘要
  • 步骤之间传递的观察结果

上下文工程 vs. 提示工程

虽然上下文工程与提示工程相关,但它的范围更广,也更具系统级。提示工程通常涉及静态的、手工编写的输入字符串。上下文工程则包含使用嵌入、记忆、链接和检索的动态上下文构建。正如 Simon Willison 所说:“我们所做的是上下文工程,而不是微调。”

实际应用

  1. 客户支持代理:提供之前的票证摘要、客户资料数据和 KB 文档。
  2. 代码助手:注入特定于 repo 的文档、以前的提交和功能使用情况。
  3. 法律文件搜索:通过案例历史和先例进行上下文感知查询。
  4. 教育:个性化辅导代理,能够记住学习者的行为和目标。

上下文工程中的挑战

尽管前景光明,但仍存在一些痛点:

  • 延迟:检索和格式化步骤会带来开销。
  • 排名质量:检索质量差会损害下游生成。
  • 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

(0)

相关推荐

发表回复

登录后才能评论