跳转到内容

Context Engineering:把注意力留给当前任务

进阶

来源:Anthropic · 发布于 2025-09-29最近复核于 2026-08-30

上下文工程的目标不是“尽量多喂资料”,而是在每一步给模型最小、足够、高信号的信息。上下文窗口越大,不代表判断一定越准;任务说明、工具输出、历史记录和外部资料都在争夺同一份注意力预算。

传统 prompt engineering 主要关心指令怎么写。Agent 会连续调用工具、产生结果并跨多轮工作,问题扩大成:什么信息何时进入上下文、哪些内容应移出、丢失后能否恢复。文章给出一套从系统指令、工具设计、示例、按需检索到长任务压缩的统一心智模型。

  • 系统指令保持在合适高度:足够具体,能指导行动;又不写成脆弱的逐步 if-else。
  • 工具名称、参数和返回值要清楚且少重叠。模糊工具会消耗选择成本,长返回值会污染后续判断。
  • 预先只放稳定入口和轻量标识;文件路径、查询、链接等细节由 Agent 在需要时拉取,实现渐进披露。
  • 长任务可组合三种手段:压缩历史、把进度写到上下文外的结构化笔记、把独立探索交给干净上下文。它们解决的问题不同,不能互相冒充。

练习仓中的 AGENTS.md 可以保存每次都要遵守的短规则;这个站点仓当前只提供 AGENTS.md 教程,并没有根级规则文件。教程和方法论放在 src/content/docs/,需要时再用文件路径和搜索定位。git status、git diff 与 npm run verify 应作为可重新取得的运行证据,而不是整段永久塞入会话。

判断一条信息是否常驻,可以问:每次任务都需要吗?如果不是,就保留一个可靠入口,让 Agent 在命中条件时再读正文。

输入: 一个有 20 个以上 Markdown 文件的本地仓库,以及“修正某一页的一个事实或断链”任务。

步骤:

  1. A 轮把目录树、多个全文和完整构建日志一次性贴入上下文。
  2. B 轮只给任务、练习仓中真实存在的 AGENTS.md 和目标路径线索,让 Agent 用 rg 按需读取;若文件不存在,就用 README 与目标路径做对照,不假装已配置规则。
  3. 两轮都运行同一最小检查,记录读取文件数、无关工具输出量、最终 diff 和错误次数。
  4. 若 B 轮漏掉关键约束,只补一个稳定指针,不把全部材料重新常驻。

成功证据: B 轮在满足同一验收的前提下,读取更聚焦、无关输出更少,且能说明关键事实来自哪个文件。

停止线: 两轮任务或模型不同,或没有同一验收命令时停止比较;那样只能得到印象,不能归因于上下文策略。

  • “上下文越长越安全”:低相关信息也会挤占注意力,并可能互相矛盾。
  • “压缩等于无损记忆”:摘要会丢细节,关键决策和未解决问题需要可恢复的外部记录。
  • “动态检索总是更好”:它有延迟和走偏成本;高频稳定规则仍适合预加载。

文章讨论的注意力退化、压缩、记忆和多 Agent 是设计建议,不保证在每个模型与任务上同幅度生效。本站能验证仓库的文件分层与命令入口;具体 token、质量和延迟收益必须通过上述对照实验测量。

本文是原创中文实践解读,不是逐句翻译。阅读英文原文。