Start learning →GlossaryLearning record

上下文工程:把有限的注意力花在刀刃上

这门课讲 上下文工程——在 Agent 循环的每一轮,决定「让模型看到哪些 token」的那门手艺。你在第 7 门课已经知道循环每转一圈历史都在变长、模型的注意力预算有限;这门课就来正面解决这个问题:系统提示该写在什么「高度」、工具和示例算不算上下文、什么信息该预加载什么该让 Agent 自己去检索、长任务的历史怎么压缩怎么记笔记、子代理为什么是一种上下文管理手段,最后动手给第 7 门课那个 harness 装上一层上下文管理。适合已完成本系列前 7 门课的读者。本课不重教 prompt 的写作技巧(那是本系列第 3 门课),不涉及跨会话的文件持久记忆与状态恢复(本系列第 5 门课的主题——本课聚焦「这一次长任务里,每一轮该喂给模型什么」),不重教多 Agent 协作模式(本系列第 6 门课,这里只从上下文视角回看子代理),也不涉及 RAG 与向量数据库的搭建。

课程大纲

  1. 从 Prompt 工程到上下文工程
  2. 上下文的解剖:系统提示、工具与示例
  3. 即时检索:让 Agent 自己去找上下文
  4. 压缩与笔记:长任务的上下文管理
  5. 子代理与上下文隔离
  6. 实战:给 harness 装上上下文管理

学习目标

完成本课程后,你将能够:

  • 说清上下文工程和 Prompt 工程的关系,用「注意力预算」和「上下文腐化」解释为什么上下文是一种边际收益递减的有限资源
  • 判断一段系统提示写在了什么「高度」——是硬编码了脆弱逻辑、还是空泛得给不出信号——并把它改到「具体到能引导行为、又留有强启发」的位置
  • 为一个任务划分「预加载」与「即时检索」的边界,用轻量标识符(文件路径、查询、链接)让 Agent 按需渐进地发现上下文
  • 给长任务设计压缩策略:判断哪些内容必须保留(决策、未解的问题、关键实现细节)、哪些可以丢弃(冗余的工具输出),并用结构化笔记把关键状态存到上下文窗口之外
  • 从上下文经济学的角度解释子代理:干净窗口、只回传千级 token 的压缩摘要,什么时候值得为此多花数倍的 token
  • 给一个以 stop_reason 驱动的 harness 循环装上 token 用量追踪、阈值触发的压缩和一份 NOTES.md 结构化笔记,跑通一个超出单窗口容量的长任务

前置要求

  • 完成本系列前 7 门课,或具备等同基础
  • 能手写以 stop_reason 驱动的 Agent 循环,理解 messages 历史每轮增长、tool_result 集中回传(第 7 门课)
  • 了解上下文窗口是有限资源、对话历史只增不减(第 5 门课)
  • 了解子代理从独立上下文启动、只回传结论(第 6 门课)
  • 能读写基础的 JavaScript / Node.js 代码(本课最后一课需要跟着写)

预计学习时间

约 3-4 小时,包括每课的动手练习