游乐游手机版
首页/AI热点日报/热点详情

彻底搞懂上下文工程,让大语言模型更聪明

类型:热点整理2026-07-20
上下文工程通过精准选择、压缩和排序信息,优化LLM的上下文窗口,其核心包括九大上下文来源及三大关键问题:选出正确信息、压缩有限窗口、管理长期记忆。相比提示词工程,它更关注“喂什么”而非“怎么问”,是构建可靠AIAgent的基础。

上下文工程是提升大语言模型智能水平的关键手段,相比提示词工程,它能更精准地约束模型输出,显著提升实际应用效果。

核心内容:

1. 上下文工程与提示词工程的核心区别

2. AI Agent上下文来源的九大组成部分

3. 实施上下文工程的三大关键问题与解决方案

“提示词工程”(Prompt Engineering)这个概念,相信大家早已耳熟能详。写摘要、生成代码、做会议复盘,我们总在反复琢磨如何设计一个“好”的提示词,让大模型给出令人满意的答案。然而现实中,无论我们怎么雕琢提示词,模型输出的结果往往还是差强人意。

正因如此,最近行业内开始频繁出现一个新术语——“上下文工程”(Context Engineering)

乍一听,它和“提示词工程”似乎没有本质区别。但如果你真正搭建过AI Agent系统,尤其是基于LlamaIndex、LlamaCloud这类工具时,就会发现一个残酷的真相:你精心打磨的提示词,远不如一次精心设计的上下文填充来得有效。

什么是上下文工程?它与提示词工程到底有何不同?

大模型的“工作记忆”,即我们常说的“上下文窗口”,容量有限且极其宝贵。要让模型准确理解、判断、执行任务,就必须把最相关、最有价值的信息精准地嵌入这段上下文里

这就是“上下文工程”的核心逻辑:不是简单地喂信息,而是喂对的信息、喂得巧妙、喂得精炼。

“提示词工程”更多是在打磨指令的语言风格——比如是“请写一篇总结”,还是“像公众号文章那样写一篇总结”,它关注的是“怎么问”。而上下文工程,关注的是“问什么”和“问多少”。

Andrey Karpathy有句话总结得很到位:

“提示词,只不过是你日常向大模型发号施令的文字描述。但在真正的工业级LLM应用中,上下文工程才是艺术与科学的结晶。

一个Agent的「上下文」到底包含哪些要素?

这部分是干货。参考Philipp Schmid的观点,结合LlamaIndex团队的实战经验,一个AI Agent的上下文来源可以拆解为以下九大部分:

  1. 系统指令:为Agent划定角色边界和任务范畴。
  2. 用户输入:用户提出的问题、需求和任务说明。
  3. 短期记忆(对话历史):让模型记得刚才发生了什么。
  4. 长期记忆:保存过去的交互、知识点或关键信息,随时可以检索调用。
  5. 知识库检索信息:从向量数据库、API或其他渠道获取的补充内容。
  6. 工具及其定义:告诉模型可以调用哪些外部能力。
  7. 工具调用结果:上一轮工具执行返回的具体内容。
  8. 结构化输出:标准格式的数据结构,可作为输入或输出。
  9. 全局状态/上下文:Agent跨步骤共享的“草稿板”信息。

看到这里,你可能会想:这不就是RAG(检索增强生成)吗?没错,RAG是上下文工程的重要组成部分。但上下文工程绝不只有“检索”,它更关注的是:怎么选、怎么排、怎么裁。

做好上下文工程,必须先解决这三个关键问题

1. 如何选出“对”的上下文?

很多人在构建智能Agent时,习惯一股脑把所有内容都丢进去:知识库、文档、历史对话……然后指望模型自己“看着办”。

但上下文窗口不是无底洞。必须问自己两个问题:

  • 当前这个任务,真正需要哪些信息?
  • 哪些是“可有可无”的背景?能省则省。

例如,在多知识源场景下,不仅要决定是否使用知识库,更要想清楚该用哪个库——是需要法律知识、用户FAQ,还是实时数据查询?甚至告诉模型“有哪些工具可用”,这本身也是一种关键的上下文补充

2. 如何压缩有限的上下文窗口?

LlamaIndex已经广泛采用了上下文压缩策略,主要体现在两个方面:

  • 摘要化:检索结果太多?先用摘要技术压缩内容,再把精炼版喂给模型。
  • 排序机制:信息太杂?那就按时间、重要性、相关度排个序,靠前的优先处理。

举个例子,下面的Python函数,检索返回结果后,会根据时间戳筛选和排序,确保模型接收到的是最新、最相关的内容:

def search_knowledge(query: str) -> str:
    nodes = retriever.retrieve(query)
    sorted_and_filtered_nodes = sorted(
        [item for item in data if datetime.strptime(item['date'], '%Y-%m-%d') > cutoff_date],
        key=lambda x: datetime.strptime(x['date'], '%Y-%m-%d')
    )
    return "\n----\n".join([n.text for n in sorted_and_filtered_nodes])

3. 如何管理长期记忆?

一个Agent想要持续“成长”,就不能只有短期记忆。LlamaIndex提供了多种可组合的记忆模块,例如:

  • VectorMemoryBlock:用向量方式存储对话。
  • FactExtractionMemoryBlock:从对话中提取关键事实。
  • StaticMemoryBlock:保存固定不变的配置项或关键信息。

这让开发者可以根据不同任务自由组合记忆组件,打造更智能、更长效的Agent。

Bonus:结构化输出与流程工程,也是上下文工程的好搭档

很多人容易忽略一点:结构化信息本身就是上下文工程的“压缩神器”。

  • 向模型请求结构化结果(比如JSON schema),相当于给输出画好了边界和方向。
  • 提供结构化输入时,能极大减少噪声,让模型聚焦核心。

LlamaCloud推出的LlamaExtract工具,就是专门为结构化提取设计的。你可以从长文档中提取关键信息,然后作为“浓缩版上下文”提供给后续Agent使用。

另一方面,流程工程(Workflow Engineering)与上下文工程并驾齐驱。它允许把一个复杂任务拆解成多个步骤,每一步都可以独立设计上下文输入,避免一次性灌入全部信息。

这背后的洞察是:大多数AI Agent,本质上就是一个流程编排器(Workflow Orchestrator)。只不过有些人清楚自己在编排,有些人还在凭直觉“堆料”。

写在最后:为什么要重视上下文工程?

原因很简单:这是打造靠谱Agent的关键基础。

如果说提示词工程是艺术,那上下文工程就是大楼的结构。你喂错了料,再聪明的模型也白搭;可如果你把该放的信息都放对了位置,模型自己就能搭建出一整套自动化智能系统。

尤其是在RAG系统、Agent应用、流程协作类任务越来越普及的今天,我们不仅要学会问“用哪个模型”,更要学会问“该放什么进模型”。

所以,下次觉得模型“不懂你”的时候,不妨换个角度:

它可能不是“笨”,只是你给它的上下文,错了。

来源:https://www.53ai.com/news/LargeLanguageModel/2025080513095.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。