同一个模型,换一套上下文,常常像换了一个人。它是否知道目标、可用工具、刚才发生了什么、哪些规则不能违反,都会直接改变下一步行动。
因此,上下文不是把所有材料塞进提示词。它更像一张工作台:常用规则固定放好,当前材料摆在手边,完成的步骤留下轨迹,过期信息及时归档。
上下文工程的目标不是让模型看得更多,而是让它在每一步都看见正确、足够且可信的信息。
01 / CONTEXT LAYERS先把上下文拆成四层。
一次 Agent 调用里,系统指令、用户目标、助手历史和工具结果承担不同责任。把它们混成一大段文字,会让优先级、来源和可追溯性同时变差。
系统层
身份、长期规则、安全边界与输出约定。
任务层
用户此刻要解决的问题与验收标准。
轨迹层
已经做过的判断、工具调用和真实反馈。
状态层
剩余步骤、时间、预算、失败次数与待确认事项。
02 / TOOL TRAJECTORY工具结果必须回到上下文。
Agent 的核心循环不是连续生成文字,而是行动后重新观察。工具调用参数、执行结果与错误信息都要进入下一轮,否则模型无法区分“我准备做”和“我已经做成”。
生产系统还要设置最大迭代次数、重复调用检测和明确停止条件,避免 Agent 在同一个错误上无限打转。
计划不是结果。只有工具返回的可验证反馈,才能推动 Agent 进入下一步。
03 / CACHE-AWARE稳定内容放前面,变化内容放后面。
KV Cache 和 Prompt Cache 都偏爱稳定前缀。系统规则、固定工具定义与少量高质量示例适合保持顺序;当前问题、工具结果和状态栏则放在后部持续更新。
这不仅是性能优化,也会倒逼架构变清楚:哪些内容属于长期规则,哪些只是一次任务的临时状态。
04 / PROMPT DESIGN系统提示词要组织流程,不要堆砌禁令。
有效提示词通常先说明角色与目标,再给工作流程、工具使用规则、输出格式和少量边界。规则越多不一定越安全;互相冲突、缺少优先级的规则反而更难执行。
- 把抽象要求改写成可观察动作。
- 用少量示例校准边界情况,而不是覆盖所有可能。
- 把外部材料视为不可信输入,防止提示注入覆盖系统规则。
- 工具描述写清何时使用、输入含义、失败方式与副作用。
05 / SKILLS & STATE按需加载 Skills,用状态栏保持方向。
领域知识不必全部常驻上下文。Skill 可以在任务命中时再加载,让 Agent 获得一组方法、模板或操作约定;状态栏则用很短的结构记录进度、时间与下一步。
两者解决不同问题:Skill 回答“这类事该怎样做”,状态栏回答“这件事现在做到哪里”。
06 / COMPRESS OR ISOLATE先隔离,再压缩。
长任务不能无限累积原始对话。可以分层保留近期原文、阶段摘要、关键事实与外部档案;但当子任务彼此独立时,隔离往往比压缩更可靠。
例如让一个子 Agent 只核对日期,另一个只检查引用,最后汇总结论。每个上下文更短,也更不容易相互污染。
第一道练习:拿掉系统指令、工具说明、历史轨迹或状态栏中的一项,观察 Agent 从哪一步开始变笨。
原书与章节来源
- bojieli/ai-agent-book:开源主仓库与全书目录。
- 第 2 章正文:本页概念主线与术语来源。
- 第 2 章实验:配套代码、复现说明与读者练习。
- 本页是面向应用的学习整理与转述,不替代原书;准确表述以原文和代码为准。
下一篇:记忆、RAG 与知识库
继续沿着“理解结构—动手改变—观察结果—形成判断”的方式学习。
先做对应对照实验 ↗继续学习 →

读者评论
把这篇文章留给你的想法写下来。
还没有评论。你可以留下第一条。