news 2026/4/13 14:27:36

上下文工程(Context Engineering)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
上下文工程(Context Engineering)

本文整理自 LangChain 博客《Context Engineering for Agents》」更自然 https://blog.langchain.com/context-engineering-for-agents/

随着大语言模型(LLM)在智能体(Agent)系统中的广泛应用,如何有效管理有限的上下文窗口(Context Window)成为关键挑战。

1.为什么需要上下文工程?

大语言模型的上下文窗口类似于计算机的 RAM——它是模型的“工作记忆”,但容量有限。当智能体执行长期任务时,会不断累积以下类型的上下文:
● 指令(Instructions):提示词、记忆、少样本示例、工具描述等
● 知识(Knowledge):事实、用户偏好、历史信息等
● 工具反馈(Tools):API 调用结果、代码执行输出等

长期执行的任务和工具调用反馈的积累意味着智能体通常会使用大量令牌。这可能引发多种问题:可能超过上下文窗口大小、导致成本或延迟急剧上升,或降低智能体性能。

随着交互轮次增加,上下文迅速膨胀,可能引发以下问题:

问题类型

描述

上下文中毒(Context Poisoning)

幻觉内容被写入上下文,污染后续推理

上下文干扰(Context Distraction)

过多无关信息压倒模型对核心任务的关注

上下文混淆(Context Confusion)

冗余或矛盾信息导致输出不一致

上下文冲突(Context Clash)

上下文中存在相互矛盾的事实或指令

上下文工程已成为构建可靠、高效智能体的首要任务.

2.上下文工程的四大核心策略

为应对上述挑战,业界普遍采用以下四类策略:

  • 写入上下文(Write)
  • 选择上下文(Select)
  • 压缩上下文(Compress)
  • 隔离上下文(Isolate)

2.1 写入上下文(Write)

将重要信息保存到上下文窗口之外,供后续使用。

Scratchpad(草稿板):在单次会话中临时存储计划、中间结论等。例如 Anthropic 的多智能体研究系统中,主研究员会将研究计划写入 Memory,防止因上下文截断而丢失。实现方式:通过工具调用写入文件,或存入运行时状态对象(State)。

长期记忆(Memories):跨会话持久化信息。

应用实例:ChatGPT、Cursor、Windsurf 均支持自动生成用户专属长期记忆。

2.2 选择上下文(Select)

动态检索最相关的信息注入当前上下文。

  • 从 Scratchpad 选择:若以 State 存储,开发者可控制每步暴露哪些字段;若以工具实现,则通过读取工具调用获取。
  • 记忆检索
    • 程序性记忆(Procedural):如CLAUDE.md、规则文件,用于指导行为。
    • 情景性记忆(Episodic):少样本示例。
    • 语义性记忆(Semantic):事实知识,通常通过向量嵌入知识图谱进行检索。
  • 工具选择:对大量工具使用 RAG 技术,仅检索与当前任务最相关的工具描述,可提升工具选择准确率。
  • 知识检索(RAG):尤其在代码智能体中,需结合 AST 解析、文件搜索、知识图谱与重排序等多种技术,而非仅依赖向量搜索。

2.3. 压缩上下文(Compress)

保留完成任务所需的最少 token

上下文摘要(Summarization)

  • 在接近上下文上限时,对整个对话轨迹进行递归或分层摘要。
  • 可在特定节点(如耗 token 的搜索工具后)插入摘要步骤。
  • 复杂场景下甚至需微调专用摘要模型。

上下文修剪(Trimming/Pruning)

  • 基于启发式规则(如删除最早消息)。
  • 或使用训练好的上下文剪枝器。

2.4. 隔离上下文(Isolate)

将上下文拆分,避免相互干扰

  • 多智能体架构
    • 每个子智能体拥有独立上下文窗口、工具集和指令(如 OpenAI Swarm、Anthropic 多智能体研究系统)。
    • 优势:专注子任务,减少干扰;可并行探索。
    • 挑战:总 token 消耗可能激增(Anthropic 报告达普通聊天的 15 倍),需精心设计协调机制。
  • 环境隔离(Sandboxing)
    • 如 Hugging Face 的 Deep Research 使用 CodeAgent,在沙箱中执行代码,仅将必要结果(如变量值)返回 LLM。
    • 避免将大型对象(图像、音频)直接塞入上下文。
  • 状态对象隔离
    • 通过结构化 State Schema,将不同信息存入不同字段(如messagesplantool_results),仅在需要时暴露给 LLM

3.LangGraph:上下文工程的实践框架


LangGraph 作为低层智能体编排框架,原生支持上述所有策略:

策略

LangGraph 支持方式

Write

  • 短期记忆:通过 Checkpoint 持久化 State(即 Scratchpad)
  • 长期记忆:支持文件存储(Profile)或向量集合(Collection),集成 LangMem

Select

  • 每个节点可精细控制传入 LLM 的 State 字段
  • 长期记忆支持嵌入检索
  • LangGraph BigTool 库实现工具描述的语义检索

Compress

  • 内置消息列表摘要/修剪工具
  • 可自定义节点对工具输出或阶段结果进行压缩

Isolate

  • State Schema 天然支持上下文隔离
  • 支持 E2B/Pyodide 沙箱执行
  • 提供 Supervisor、Swarm 等多智能体模板

上下文工程已从“技巧”演变为智能体开发的核心工程学科。面对有限的上下文窗口与复杂的任务需求,开发者必须像操作系统管理内存一样,精心调度每一条信息的“生命周期”——何时写入、如何选择、是否压缩、怎样隔离。

上下文工程不是 “越多信息越好”,也不是 “越少信息越省”,而是在每个任务步骤中,让 Agent 获得 “刚刚好” 的信息。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 17:32:05

学术写作新助力:百考通AI如何应对重复率与AIGC双重检测挑战

一、双重检测时代:学术写作面临的新挑战 近年来,随着学术检测技术的不断升级,国内高校和期刊普遍建立了更为严格的论文审核机制。 传统的“查重”已从单纯的文字重复检测,演变为“文字重复率AI生成内容(AIGC&#xf…

作者头像 李华
网站建设 2026/4/3 0:09:42

SEW变频器MDX61B0075-5A3-04-00 8279624

孙13665068812SEW MDX61B0075-5A3-04-00 变频器详细介绍 (序列号:8279624) 1. 产品概述与定位 SEW MDX61B0075-5A3-04-00 是 SEW-EURODRIVE 公司生产的 MOVIFIT MDX61B 系列变频器中的一个具体型号。MOVIFIT 系列是 SEW 面向中高端工业应用设计的模块化、多功能变…

作者头像 李华
网站建设 2026/4/3 6:42:30

SEW变频器MDX61B1320-503-04-00 8279748

SEW MDX61B1320-503-04-00 变频器 (8279748) 详细介绍 1. 概述 SEW MDX61B1320-503-04-00 (订货号:8279748) 是德国SEW-EURODRIVE公司生产的 MOVIDRIVE B 系列模块化变频器中的一款特定型号。它代表了该系列中功率等级为 132 kW 的一个配置组合。MOVIDRIVE B 系列…

作者头像 李华
网站建设 2026/4/6 10:34:35

鲜花商城|基于java + vue鲜花商城系统(源码+数据库+文档)

鲜花商城 目录 基于springboot vue鲜花商城系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue鲜花商城系统 一、前言 博主介绍:✌️大…

作者头像 李华
网站建设 2026/4/12 5:06:44

如何选择可编程控制器?可编程控制器分类、性能指标介绍

可编程控制器的作用日渐突出,各大器件中均含有可编程控制器。为增进大家对可编程控制器的了解,本文将对可编程控制器选型技巧、可编程控制器分类以及可编程控制器的技术性能指标进行介绍。如果你对本文内容具有兴趣,不妨继续往下阅读哦。一、…

作者头像 李华
网站建设 2026/4/7 13:04:40

Vue 2.3

一、核心概念 - state 状态 目标:明确如何给仓库提供数据,如何使用仓库的数据 1.提供数据 State提供唯一的公共数据源,所有共享的数据都要统一放到Store中的State中存储。 在state 对象中可以添加我们要共享的数据。 2.使用数据 ①…

作者头像 李华