1.2 四种成分:指令、记忆、工具与素材


1.2 四种成分:指令、记忆、工具与素材

本节摘要:本节给出全书的核心分类法。窗口里的内容看似杂乱——系统提示、历史、检索片段、工具 schema、文件内容、命令输出——但用三问就能全部归位:这段内容是谁产生的?它多久有效?超预算时谁负责裁剪它?答案把一切内容分成四种成分:指令(开发者写,告诉模型"要做什么、规矩是什么",全程常驻)、记忆(系统累积,告诉模型"之前发生过什么",跨轮跨会话)、工具(开发者定义,告诉模型"你能做什么",每轮常驻)、素材(运行时取自外部世界,告诉模型"世界现在什么样",时效最短)。指令 + 工具构成常驻层("常驻税",设计期裁剪),记忆 + 素材构成动态层(唯一会无限增长的部分,运行时策略裁剪)——两者零和互挤。文末与 Anthropic 的四分法及 LangChain 的记忆模型对照,确认分类法与业界共识同构。

学习目标

阅读完本节,你应当能够:

  1. 对窗口里任意一段内容发出三问并归入四成分之一。
  2. 默写四成分对照表:谁产生 / 多久有效 / 谁负责裁剪 / 典型例子。
  3. 解释"常驻税"与"动态层"的零和关系。
  4. 把 Anthropic 与 LangChain 的框架映射到四成分语言。

一、为什么需要分类法

预算恒等式(1.1 节)告诉你窗口里有五笔开销,但没告诉你每一笔的性质。没有分类法的后果是治理错位:用写文案的方式治理工具 schema(该裁不裁),用截断的方式治理系统提示(不该裁乱裁)。

分类法只需要三问,对窗口里任何一段文本都成立:

  1. 谁产生的?——开发者写死的,还是系统运行中累积的,还是从外部世界取来的?
  2. 多久有效?——全程有效、跨轮有效、每轮都在,还是下一轮就过期?
  3. 超预算时谁负责裁剪?——设计期由开发者裁,还是运行时由策略裁?

三问的答案组合恰好穷尽四种成分——不多不少,这就是分类法的完备性来源:产生者只有三种(开发者 / 系统 / 世界),其中开发者的产出按"约束行为"还是"供能行动"分为指令与工具,系统与世界的产物按时间跨度分为记忆与素材。

二、四成分对照表(全书之纲)

成分 回答的问题 谁产生 多久有效 谁负责裁剪 典型例子 深入章节
指令 instruction 要做什么、规矩是什么 开发者(设计期) 全程常驻 开发者 系统提示、输出契约、红线约束 3.1
工具 tools 你能做什么 开发者(设计期) 每轮常驻 开发者 工具 schema(名称 / 参数 / 描述) 3.2
记忆 memory 之前发生过什么 系统(运行时累积) 跨轮至跨会话 运行时策略 对话历史、用户偏好、会话存档 第 4 章(后半)
素材 material 世界现在什么样 外部世界(运行时获取) 即时至短时效 运行时策略 检索片段、文件内容、工具结果、环境状态 第 5 章(后半)

一句话记忆法:指令管"要做什么",工具管"能做什么",记忆管"发生过什么",素材管"现在是什么"。

三、逐个成分细看

指令:唯一被逐字信任的内容

指令是开发者意志的直接表达,模型对它近似逐字服从——所以它改一个字都值得评审(3.1 节的版本化管理由此而来)。它全程常驻、占据最靠前的位置(2.2 节会讲这个位置的价值),是窗口里唯一"设计期定型、运行期不变"的成分。常见错误:把动态信息(当前时间、今日库存)写进指令——那是素材的职责,写死在指令里只会过期。

工具:每轮都付的"能力清单"

工具 schema 是给模型读的 API 文档,每轮随请求自动注入——很多人算预算时根本想不起它。它的规模由开发者决定,且存在"越多越差"的反直觉权衡(3.2 节详述)。常见错误:工具集只增不减,三年攒下 40 个工具,模型在错误的名字之间犹豫。

记忆:系统自己长出来的部分

对话历史是记忆的最小形态;往上是跨会话的用户偏好、项目约定、会话存档(第 4 章的三层)。记忆的裁剪不能靠人——会话进行中没有人盯着——只能靠运行时策略:压缩、摘要、分层归档。常见错误:历史只进不出,直到撞上限被 API 硬截断,截掉的恰好是最早的任务目标。

素材:时效最短的过客

检索片段、文件内容、命令输出、数据库查询结果——素材回答"世界现在什么样",下一轮就可能过期(文件改了、库存变了)。它是四成分里总量最大、增长最快、也最该按需供给的成分:RAG 与 repo map 的全部意义就是"把素材从预装改成按需取"(第 5 章,后半)。常见错误:把素材当记忆长期留在窗口里——三天前 grep 到的输出如今一文不值,却还占着两万 token。

四、成分之间:零和与常驻税

四成分共享一个窗口,是零和游戏。两个结构性事实:

常驻层(税) 动态层(变量) ┌──────────────────┐ ┌──────────────────┐ │ 指令 设计期定型 │ │ 记忆 运行时累积 │ │ 工具 设计期定型 │ 零和 │ 素材 运行时获取 │ │ → 每轮全额支付 │ ◄──────► │ → 唯一无限增长 │ └──────────────────┘ └──────────────────┘ 设计期裁剪 运行时裁剪 (第 3 章的主题) (第 4~6 章的主题)
  1. 常驻税先扣:指令 + 工具每轮都在,合计常见 5%~15%(示意)。税是刚性的——动态层再缺钱也省不出这笔,只能回设计期"减税"(精简系统提示、收缩工具集)。
  2. 动态层是主战场:记忆与素材是仅有的增长项。所有运行时手段(驱逐、压缩、按需检索)都作用于这两层——这是第 2 章分配表的全部内容。

💡 三问的第四种用法——调试:模型行为反常时,把窗口内容逐段过三问,往往一眼看到错位:该当素材的进了指令(写死的"今日"日期)、该当指令的沉在素材里(红线约束只在一周前的历史里出现过一次)。

五、与业界框架的对照

四成分不是自造词,它与两套业界框架同构:

业界框架 其口径 与四成分的映射
Anthropic 长文(官方,2025-09) 系统提示、工具、检索到的文档、对话历史 指令 ←→ 系统提示;工具 ←→ 工具;素材 ←→ 检索文档;记忆 ←→ 对话历史。差异:Anthropic 未单列"输出预留",本书按 1.1 节补上
LangChain / LangGraph(官方,2026) state(短期记忆)、store(长期记忆)、runtime context(静态配置) 记忆 ←→ state + store;指令 + 工具 ←→ runtime context。LangChain 进一步把治理动作提炼为 write / select / compress / isolate 四类策略,分别对应记忆写入、供给选择、压缩与子 Agent 隔离

对照的用处:读到任何框架文档,先把它的组件翻译成四成分语言,再套预算恒等式——两步之后,任何框架的上下文管理都不再是黑盒。

本节要点回顾

  1. 三问归位:谁产生 / 多久有效 / 谁负责裁剪——三问穷尽四种成分。
  2. 四成分表:指令(要做什么)、工具(能做什么)、记忆(发生过什么)、素材(现在是什么)。
  3. 常驻税:指令 + 工具,设计期裁剪、每轮全额支付;动态层:记忆 + 素材,运行时策略裁剪、唯一无限增长;两者零和。
  4. 职责错位是常见病根:动态信息别写进指令,过期素材别赖在记忆的位置上。
  5. 与业界同构:Anthropic 四分法与 LangChain 的 state / store / runtime context 都能无损映射到四成分。

科目表有了,接下来的问题自然是:这笔预算怎么分?超了先砍谁?砍完的东西按什么顺序摆?下一章讲分配。


作者与出处
原作者: 灏天文库
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U