在人工智能快速发展的浪潮中,上下文工程(Context Engineering)正逐渐成为解锁大语言模型(LLM)潜能的关键技术。这项新兴学科专注于设计和构建动态系统,能够在恰当的时机为LLM汇集所有相关信息、工具和数据。正如OpenAI前研究员Andrej Karpathy所言,上下文工程是"一门精妙的艺术与科学,旨在为下一步操作在上下文窗口中填充恰好合适的信息"。它远不止于编写优质指令,而是精心打造LLM在每次推理时所"看到"的完整环境,相当于为模型配备了一位专属的AI"辅助教练",持续提供相关事实、记忆和工具,以生成准确、有依据且符合上下文的输出。
上下文工程的核心价值与挑战
随着自主AI智能体的兴起,上下文工程的重要性日益凸显。这些智能体必须在漫长任务中交错进行推理步骤、工具调用和记忆处理,会快速积累聊天历史、工具输出等信息。若采用简单粗暴的方式将所有内容都塞进提示词,不仅可能超出上下文窗口限制、大幅增加成本,还会让模型陷入混乱。实践证明,"输入给AI智能体的上下文质量在很大程度上决定了其任务成败"。因此,工程师们已不再执着于寻找"魔法提示词",转而专注于构建能在恰当时间、以恰当格式为模型提供恰当信息的流水线系统。
上下文工程的主要目标是让LLM扎根于相关信息与工具之上,从而可靠地执行任务,具体包括以下几个方面:
- 输出锚定
:确保模型能够获取事实知识或当前世界状态(以避免幻觉),通常通过检索或外部数据实现。
- 记忆与持久性
:允许智能体在多轮对话和会话中记住过往事件、用户偏好或中间推理过程(包括短期和长期记忆)。
- 任务与目标跟踪
:维持多步骤任务的状态,规划后续行动,避免重复劳动。
- 上下文相关性
:过滤噪声和无关数据,使模型专注于关键事实、指令和工具输出。
然而,这些目标的实现面临着严峻挑战,主要源于LLM有限的上下文窗口。即便是像GPT-4这样的大型模型,也存在约128K tokens的硬性限制。长期运行的多轮智能体很容易超出这一限制,导致旧信息被截断或系统被迫丢弃相关细节。更糟的是,简单堆砌更多数据反而会损害性能。Breunig及其同事已识别出多种失败模式,如上下文污染(无效信息或幻觉混入提示词)、上下文干扰/混淆(无关或冲突信息使模型偏离轨道)以及上下文冲突(多段上下文相互矛盾)。总之,提供过多或结构混乱的上下文会使模型困惑,降低准确性。
上下文的类型划分
在基于LLM的智能体中,"上下文"涵盖了推理时提供给模型的所有输入信息,主要类别包括:
- 系统指令/提示词
:定义智能体角色和任务的静态或高层指导方针(例如"你是一名客服智能体……"),通常包含少量示例或规则。
- 用户输入
:当前用户的查询或命令,本身可能包含