AI Agent 开发 --- 上下文工程:概念与落地实践(四)

上下文工程:概念与落地实践

本文整理 Context Engineering(上下文工程) 的核心观念与可执行做法,主要依据 Anthropic 工程博客 Effective context engineering for AI agents(2025-09),并结合本仓库已有模式做对照说明。目标读者:在构建多轮 Agent、工具链或长任务自动化时,需要系统管理「模型每一轮能看到什么」的工程师。


1. 上下文工程在讲什么

1.1 定义

  • 上下文(Context):某次推理时,实际进入大语言模型、参与采样的全部 token 集合(系统提示、工具定义、MCP、外部检索结果、消息历史、中间产物等)。
  • 上下文工程 :在约束与目标 之下,持续遴选、裁剪、更新 这些 token,使模型在多轮、长时域 任务上稳定产出期望行为。它不是一次性「写好 prompt」,而是每次调用前都要做的策展(curation)。

1.2 与 Prompt 工程的关系

维度 Prompt 工程 上下文工程
焦点 指令怎么写、怎么分段、示例怎么放 整盘状态:本轮该放进哪些信息、历史怎么处理、工具返回怎么截断
典型场景 单次分类、单轮生成 Agent 循环、多工具、长对话、跨会话任务
迭代单位 改 system prompt / few-shot 改「进窗策略」:检索、摘要、外部笔记、子 Agent 边界

可以把它理解为:Prompt 工程是上下文工程的一个子集;Agent 时代的主战场在「整窗管理」。

1.3 为什么必须认真对待

  1. Context rot(上下文衰减) :窗口变长后,模型对其中细节的准确回忆与利用会下降;并非无限堆字就能变强。
  2. 注意力预算 :上下文在工程上应视为有限资源;新 token 会稀释对其它部分的有效「注意力」。
  3. Agent 循环产数据:每轮工具输出、中间推理都会膨胀「可能相关」的信息;若不治理,噪声会淹没信号。

原则(原文精神) :在可接受的行为目标下,追求 尽可能小、但信号足够强 的 token 集合。


2. 上下文的组成部分与做法要点

2.1 系统提示(System prompt)

  • 高度(altitude):避免两端------一端是把复杂 if-else 业务规则全写进提示(脆弱、难维护);另一端是过于空泛、默认模型「已经懂你的业务」。
  • 结构:用 Markdown 标题或 XML 风格分段(如背景、指令、工具说明、输出格式)帮助模型解析;格式本身不如「信息是否必要且清晰」重要。
  • 起步方式 :用当前最强模型先试最小可用提示 ,再针对失败模式增量补规则与示例,而不是一上来堆砌边角案例。

2.2 工具(Tools)

  • 工具是 Agent 与环境的契约 ;设计目标包括:返回尽量省 token语义不重叠失败可恢复
  • 反模式:工具过多或边界模糊------若人类工程师无法明确说清「此情此景用哪个工具」,不能指望模型更稳。
  • 实践 :维护 MVP 工具集,随任务演化再扩展;工具描述与参数名应对模型友好(自解释、歧义少)。

2.3 示例(Few-shot)

  • 继续推荐 少量、多样、能代表期望行为 的范例。
  • 不推荐 :把无数 edge case 规则塞进 prompt;应提炼成典型范式,其余交给运行时检索或工具。

2.4 消息历史与其它动态信息

  • 默认假设:历史越长,策展越重要
  • 对工具结果:深历史里的原始大段输出,往往可以清除或替换为摘要(轻量 compaction 的一种),只要不影响当前决策所需事实。

3. 运行时检索:从「预灌全文」到 Just-in-time

3.1 思路

  • Embedding 预检索 仍常见;更 Agent 化的做法是保留 轻量引用(路径、URL、查询 ID、片段定位),需要时再用工具拉取。
  • 类比人类:不背整本书,而是用目录、书签、索引 按需加载
  • 渐进披露(progressive disclosure):通过探索(列表、预览、head/tail)逐步缩小相关子集,避免一次性把大对象塞进上下文。

3.2 混合策略

  • 一部分 关键材料 upfront(如项目里的 AGENTS.md / CLAUDE.md 类说明);一部分 靠 grep/glob/读文件 即时 拉取。
  • 边界取决于任务:静态域可多读一点;高动态或大体量数据域更依赖 JIT + 强工具习惯。

4. 长时域任务的三类技术

当 token 规模持续超过「舒适区」时,原文归纳三类手段(可组合):

手段 作用 适用直觉
Compaction(压缩) 将临近上限的对话/轨迹 摘要 后开启新窗口,丢掉冗余工具输出等 需要保持对话连贯、长链工具调用
结构化笔记 / 外部记忆 把进度、决策、依赖写入 上下文外 持久存储,需要再读回 里程碑清晰、跨多会话
子 Agent 架构 子任务在干净子窗口 深挖,主 Agent 只收 浓缩摘要(如 1k--2k tokens) 复杂检索/研究、可并行探索

Compaction 注意 :过度激进会丢掉「当时看起来次要、后来才关键」的细节;实现上可先偏 召回 ,再迭代 精度(删冗余)。


5. 落地实践清单(可直接当评审表)

5.1 设计阶段

  • 是否明确列出「必须始终在窗内 」与「仅按需加载」的信息类?
  • 系统提示是否达到合适 高度(不过度硬编码、不过度模糊)?
  • 工具集是否为 最小可用无职责重叠
  • few-shot 是否为 canonical 集合,而非规则大全?

5.2 运行阶段

  • 工具返回是否有 默认截断/结构化摘要(尤其列表、大 JSON、长网页)?
  • 多轮后是否有 清除旧工具原始输出滚动摘要 的策略?
  • 是否用 引用 + 工具 代替「把整库贴进 prompt」?
  • 长任务是否具备 Compaction / 笔记 / 子 Agent 中至少一种预案?

5.3 观测与迭代

  • 能否从日志中看到「每轮进窗 token 量级」与主要来源(历史 / 工具 / RAG)?
  • 失败案例是否先区分:指令问题 vs 上下文噪声/缺失 vs 工具契约问题

6. 延伸阅读


7. 一句话备忘

上下文工程 = 把上下文当作有限注意力预算,在每一轮推理前做高信号、小体积的策展; 与 Prompt 工程并行,是构建可靠 Agent 的基础能力。

相关推荐
跨境卫士苏苏15 小时前
2026年做跨境电商,TikTok美区半托管这3个品类正在严查,第2个很多新手还在铺货
大数据·人工智能·跨境电商·营销策略
魈十三15 小时前
2026在线会议软件推荐:8款工具对比评测与多人协作选型指南
人工智能
GIS数据转换器15 小时前
村镇无人机物流配送与跨域监测一体化平台
大数据·运维·人工智能·科技·无人机
努力进修15 小时前
“数据心脏” 驱动能源自主:国产数据库支撑 Cemsol 实现固井全流程数字化闭环
数据库·人工智能·能源
心运软件16 小时前
基于深度学习的宝石图像分类系统
人工智能·python·深度学习·机器学习·分类·数据挖掘
雨晨源码(同名B站)16 小时前
【2027届人工智能专业选题】基于yolov8的农业病虫害图像识别与分类系统 |深度学习 计算机视觉
人工智能·深度学习·yolo·计算机视觉·分类
格林威16 小时前
多相机并行采图最佳实践:Task.WhenAll + 异常处理 + 资源释放
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·机器视觉
c_lb728816 小时前
零基础选策略工具,先分清三件事
人工智能·python
新知图书16 小时前
4.2 北京欢迎您:基于Anthropic的京韵导览Agent实战(智能体工程)
人工智能·agent·ai agent·智能体·智能体工程
程序员z716 小时前
OpenClaw 完整安装教程(2026 全平台通用版)
人工智能