Glossary
70 terms from "Agent 的记忆和状态." Look them up when you get stuck; the first mention in the text carries a hover definition.
| Term | Definition | Source |
|---|---|---|
| 无状态 | 指模型的每一次 API 调用之间,服务器不为会话保留任何跨请求的私有状态,一切「记忆」都要靠客户端主动携带、主动重发。 | Context windows |
| 上下文窗口 | 一次请求里模型实际能看到的全部内容的容器,包括系统提示词、messages 数组里的每条消息、工具定义,以及模型本轮生成的输出。 | Context windows |
| 系统提示词 | 随请求一起发送、用来设定模型角色和行为的文本,官方文档把它列为计入上下文窗口的组成部分之一。 | Context windows |
| 工具定义 | 传给模型、描述某个工具的 name/description/input_schema 等字段的集合,官方文档说明它同样计入这一次请求的上下文窗口。 | Context windows |
| 扩展思考 | 模型在生成这一轮回复过程中产生的思考内容,官方文档明确说明它同样计入当前这一轮的上下文窗口用量。 | Context windows |
| usage | API 响应里的一个字段,报告这一轮请求实际消耗了多少输入和输出 token。 | Context windows |
| 上下文腐化 | 官方文档命名的现象——随着窗口里的 token 数越堆越多,模型的准确率和召回率会下降。 | Context windows |
| 累积 | 对话历史在没有人主动清理的情况下,每一轮都会在上下文窗口里叠加保留、只增不减的默认行为。 | Context windows |
| 重发 | 「记忆」这个说法背后的真实机制——每一轮请求都把此前的历史消息重新原样发送给模型,而不是模型自己存储或回忆。 | Context windows |
| 多个会话 | 超出单次对话生命周期、需要跨多次独立会话留存的信息范围,这类信息不能只靠塞进当前 messages 数组解决。 | Context windows |
| 追加 | 对话历史管理最朴素的实现方式——每一轮结束后把新产生的消息接在已有 messages 数组末尾,下一轮原样整体发送。 | Context windows |
| 截断 | 窗口快满时直接砍掉最早的一批消息、只保留最近 N 轮的处理方式,实现简单但丢弃的信息不可逆。 | Context windows |
| 摘要压缩 | 官方 Cookbook 定义的机制——把上下文窗口的内容提炼成一份高保真摘要,让 Agent 在对话变长后仍能以最小性能损耗继续。 | Context engineering: memory, compaction, and tool clearing |
| 高保真摘要 | 摘要压缩产生的结果——用来取代原始长历史、留在窗口开头的一份提炼版本,保留发生过什么和结论是什么,但丢掉逐字细节。 | Context engineering: memory, compaction, and tool clearing |
| 触发阈值 | 官方机制自动开始执行摘要压缩或工具结果清理时依据的窗口用量门槛。 | Context engineering: memory, compaction, and tool clearing |
| 工具结果清理 | 官方机制之一,只丢弃陈旧且可重新获取的工具返回内容,同时保留「这次调用发生过」的记录。 | Context engineering: memory, compaction, and tool clearing |
| 陈旧且可重新获取 | 工具结果清理机制筛选清理对象的标准——工具返回的内容已经过时,并且需要时可以重新调用同一个工具再次取得。 | Context engineering: memory, compaction, and tool clearing |
| 150K token | 摘要压缩机制默认的触发阈值——窗口用量达到这个数值时自动开始压缩。 | Context engineering: memory, compaction, and tool clearing |
| 100K token | 工具结果清理机制默认的触发阈值,比摘要压缩的 150K 更低,体现它更早介入处理工具输出膨胀这一单一来源的定位。 | Context engineering: memory, compaction, and tool clearing |
| 保留最近 3 次工具调用 | 工具结果清理机制触发后的默认保留策略——最近 3 次工具调用的完整结果原样保留,更早的被替换清理。 | Context engineering: memory, compaction, and tool clearing |
| 心智模型 | 官方 Cookbook 给出的三层分工框架——压缩处理窗口整体过大、清理处理陈旧可重取数据、记忆处理跨会话留存,用来判断该用哪种机制应对历史膨胀。 | Context engineering: memory, compaction, and tool clearing |
| 窗口用量 | 衡量当前对话历史占用了多少上下文窗口容量的指标,是判断该不该触发截断、压缩或清理的依据。 | Context engineering: memory, compaction, and tool clearing |
| 外部记忆 | 不受单次会话生命周期限制的存储(通常是磁盘上的文件),用来让信息在会话结束后依然能被下一次会话读取。 | Context engineering: memory, compaction, and tool clearing |
| 记忆文件 | 固定存放在磁盘上、用于承载跨会话信息的文件,例如 CLAUDE.md,每次会话开始时可能被整份或部分读入上下文。 | How Claude remembers your project |
| 载入上下文 | 记忆文件的内容被读取并注入到某次请求的上下文窗口里,从而对模型这一轮可见的过程。 | How Claude remembers your project |
| 块级 HTML 注释 | CLAUDE.md 文件里用 <!-- --> 包裹的内容,官方文档说明它会在内容注入 Agent 上下文之前被剥离掉。 | How Claude remembers your project |
| Auto memory | 由模型自己在对话过程中写下的记忆机制,拆成索引文件加具体主题文件两层,和人工编写的 CLAUDE.md 互补分工。 | How Claude remembers your project |
| 索引文件 | Auto memory 两层结构里的第一层,例如 MEMORY.md,存放各主题的条目摘要,而不是完整内容。 | How Claude remembers your project |
| 按需取回 | 会话开始时只加载索引里的条目摘要,只有当前任务真正用得上某个主题时,才主动读取对应的具体记忆文件。 | How Claude remembers your project |
| MEMORY.md | Auto memory 机制里的索引文件,官方规则是每次会话只加载它的前 200 行或前 25KB(以先达到者为准)。 | How Claude remembers your project |
| CLAUDE.md | 由人工编写、每次会话开始都完整读入上下文的项目记忆文件,官方给出的体量红线是 200 行以内。 | How Claude remembers your project |
| 安全边界 | 给记忆文件的读写工具加上的路径检查逻辑,确保工具不能被诱导读写记忆目录之外的文件。 | How Claude remembers your project |
| 同前缀绕过漏洞 | 单独使用字符串前缀匹配(裸的 startsWith)做路径边界检查时存在的漏洞——同前缀但实际是另一个目录的路径会被误判为在根目录内。 | How Claude remembers your project |
| path.sep | Node.js 里表示当前系统路径分隔符的常量,用在安全的路径边界检查条件 abs.startsWith(ROOT + path.sep) 里,确保只匹配「根目录加分隔符」开头的路径。 | How Claude remembers your project |
| 结构化状态 | 用有固定字段表达的任务进度(比如任务清单加状态标记),能被宿主代码可靠地解析读取,区别于散落在自然语言里的进度描述。 | Track todos |
| 任务清单 | 把一个多步骤任务拆解成的一组待办事项,每一项都带有明确的状态字段,供 Agent 和宿主代码共同追踪进度。 | Track todos |
| 生命周期 | 待办事项从被识别出来到不再需要,依次经历创建、激活、完成、删除四个阶段的完整过程。 | Track todos |
| pending | 待办事项生命周期的第一个状态——已经被识别、加入清单,但还没开始执行。 | Track todos |
| in_progress | 待办事项生命周期的第二个状态——真正开始执行这项工作时,状态从 pending 改成这个值。 | Track todos |
| completed | 待办事项生命周期的第三个状态——任务顺利完成时,状态被标记为这个值。 | Track todos |
| deleted | 待办事项生命周期的第四个状态——不再需要某项待办事项时,通过一次 TaskUpdate 调用把状态设为这个值来移除它。 | Track todos |
| 任务追踪工具 | 让 Agent 能够创建、更新待办事项状态的工具,使任务进度以结构化工具调用的形式出现在消息流里。 | Track todos |
| 检查点 | 把任务在某个时间点的状态写成一份数据、持久保存到会话生命周期之外的地方,用来支持中断后的恢复。 | Track todos |
| 可恢复性 | 进程重启后,Agent 能够直接读取最近的检查点、从中断处继续执行,而不需要从头重新做一遍的能力。 | Track todos |
| 幂等 | 描述一个操作重复执行结果都一样的性质——幂等的步骤即使被重复执行,也不会造成额外的副作用。 | Track todos |
| TaskUpdate | 用来变更待办事项状态的工具调用,待办事项生命周期里的每一步状态变化(包括删除)都通过它完成。 | Track todos |
| MemoryTrap | OWASP 披露的一个真实漏洞,描述一次看似无害的「克隆仓库、批准依赖安装」常规操作,如何演变成持久化的提示注入。 | Memory Is a Feature. It Is Also an Attack Surface |
| 触达 | 恶意内容不只停留在当次对话里,而是写进了持久记忆、hooks 配置等会被反复信任加载的存储的过程。 | Memory Is a Feature. It Is Also an Attack Surface |
| ASI06 | OWASP 给 Agent 安全定义的风险分类编号,对应「记忆与上下文投毒」这一类风险。 | Memory Is a Feature. It Is Also an Attack Surface |
| 过期记忆 | 曾经正确、但随着时间推移已经不再适用,却因为躺在持久记忆里依然被当作当前有效规则执行的内容。 | Memory Is a Feature. It Is Also an Attack Surface |
| 可信任的表面 | 泛指记忆、hooks、配置文件这类会被系统当作可信来源反复加载的地方,一旦被恶意内容触达就可能被反复利用。 | Memory Is a Feature. It Is Also an Attack Surface |
| 未来推理 | 恶意内容触达可信任表面之后,攻击者真正影响的对象——不再是这一次响应,而是模型未来多次会话的推理过程。 | Memory Is a Feature. It Is Also an Attack Surface |
| 凭证类信息 | 密钥、密码、访问令牌这类内容,一旦写进会被自动载入上下文的记忆文件,就会不必要地增加暴露面。 | Memory Is a Feature. It Is Also an Attack Surface |
| 来源不可信的原始文本 | Agent 在执行任务过程中读到的文件、网页、依赖包输出等内容,在没有经过人工确认之前,不应该被原样写进持久记忆。 | Memory Is a Feature. It Is Also an Attack Surface |
| 经过确认的规则和事实 | 来源清楚可信、经过人工确认过的稳定内容(比如代码风格约定、排查问题后确认的根因),适合被写进持久记忆。 | Memory Is a Feature. It Is Also an Attack Surface |
| 记忆污染 | 恶意内容被主动写进持久记忆或其他可信任表面,导致这些本该被信任的存储反而携带了攻击者植入的内容。 | Memory Is a Feature. It Is Also an Attack Surface |
| hooks 配置 | MemoryTrap 案例里,除了持久记忆之外,恶意内容同样触达并影响的另一类会被系统反复信任加载的配置。 | Memory Is a Feature. It Is Also an Attack Surface |
| 高信任的指令层 | MemoryTrap 案例里,恶意内容通过系统提示词影响到的一层被赋予高信任度的指令来源。 | Memory Is a Feature. It Is Also an Attack Surface |
| 记忆读写工具 | 让 Agent 能主动把值得记住的内容写到窗口之外、也能取回之前存过的信息的一组工具(read_memory / write_memory)。 | How Claude remembers your project |
| 记忆根目录 | 专门存放记忆文件的目录(代码里的 MEMORY_ROOT),记忆读写工具的所有操作都被限制在这个目录范围内。 | How Claude remembers your project |
| 摘要消息 | 手写压缩函数把更早的历史消息压缩后生成、用来替代原始消息插入 messages 数组开头的一条消息。 | Context engineering: memory, compaction, and tool clearing |
| 占位内容 | 手写工具结果清理函数把超出保留数量的旧 tool_result 内容替换成的提示文字,同时保留 tool_use_id 不变。 | Context engineering: memory, compaction, and tool clearing |
| 字符预算 | 用字符数粗略近似 token 用量、判断历史是否需要压缩的教学用简化指标,不是精确的 token 计数。 | Context engineering: memory, compaction, and tool clearing |
| 保留最近 N 次调用 | 手写工具结果清理逻辑的保留策略,呼应官方 clear_tool_uses_20250919 机制默认保留最近 3 次调用结果的设计。 | Context engineering: memory, compaction, and tool clearing |
| 手写压缩 | 本课教学用的简化压缩实现——按字符预算判断触发时机,按完整往返为单位切割历史,再调用一次模型生成摘要。 | Context engineering: memory, compaction, and tool clearing |
| 历史精简 | 本课新加到执行循环上的能力——让长对话不会无限膨胀下去,涵盖手写压缩和工具结果清理两部分。 | Context engineering: memory, compaction, and tool clearing |
| TOOLS | 把工具的 schema 定义和实现函数注册进同一张表的结构,循环据此生成 toolSchemas 和 toolHandlers。 | How tool use works |
| 记忆增强循环 | 把记忆读写、记忆回填、手写压缩、工具结果清理拼进第 4 门课那个执行循环之后,得到的这一课最终的完整循环。 | How tool use works |
| 摘要生成调用 | 手写压缩函数在生成摘要时额外发起的一次模型调用,是压缩本身要付出的代价之一。 | Context engineering: memory, compaction, and tool clearing |
| 会话间记忆回填 | 新会话开始时主动读取记忆文件、把内容作为初始消息注入 messages 数组的逻辑,让记忆内容从第一轮起就出现在窗口里。 | How Claude remembers your project |