Session 04

Memory / State

Memory 和 state 是 agent 长期可用性的核心。State 让任务可恢复,memory 让 agent 跨会话学习,但两者都可能污染系统。

1. 训练目标

本页要练会:能区分 session state、workspace state、project memory、user memory、external memory provider,并知道何时该写、何时该拒写。

主要依据:Claude memory / Hermes memory providers / OpenClaw multi-agent

2. 三项目对照

维度Claude CodeOpenClawHermes Agent
短期状态Claude session、todo/checkpoint、tool outputs。session store、routing state、agentDir 下的会话。conversation/session、terminal backend 状态、tool outputs。
长期记忆CLAUDE.md + auto memory,作为 context 加载。workspace、agentDir、per-agent config/session。MEMORY.md / USER.md + 外部 memory provider 可添加搜索/存储工具。
关键警告memory 是 context,不是强制配置;阻止动作要用 hook。每个 agent 有独立 workspace、state directory、session store。外部 memory provider 是 additive,可能增加检索和写入面。

3. 组件机制

机制解释
Session state当前任务的历史、工具结果、待办、审批、错误和 routing state。
Project memory项目规则、命令、架构约定、常见测试路径。
User memory偏好、长期目标、身份上下文,但必须有隐私和删除边界。
External memory provider把记忆搜索、同步、抽取交给外部系统,增强能力也扩大风险面。

4. 失败模式

失败模式为什么危险
memory poisoning错误、恶意或过期信息进入长期记忆后持续影响未来任务。
state-memory 混淆把临时任务状态写成长期偏好,或把长期偏好当本轮事实。
不可删除记忆进入文件、索引、provider 和缓存后无法清理。

5. 架构练习

  1. 为一个团队 coding agent 设计 CLAUDE.md、auto memory、hook 三层边界。
  2. 比较 OpenClaw per-agent session store 和 Hermes external memory provider 的不同风险。
  3. 写一个 memory write policy:什么可写,什么需确认,什么必须拒写。

6. 知识展开

上面的卡片是索引,点击后跳到对应的详细解释。阅读时不要只记名词,要同时记住组件边界、为什么需要它、三个项目怎么体现,以及你能用什么问题自检。

Detailed Concepts

概念是什么为什么重要项目对照自检问题
State vs memorystate 服务当前任务恢复,memory 服务跨任务复用;两者生命周期和风险不同。把临时状态写成长期记忆会污染未来任务,把长期偏好当当前事实会误导本轮决策。Claude Code 的 CLAUDE.md 是 context memory;OpenClaw 强调 session/workspace state;Hermes 提供 MEMORY/USER 和 memory providers。这条信息明天还应该影响 agent 吗?
Memory write policy规定什么能写入长期记忆、什么需确认、什么必须拒写。memory 写入是安全边界,不是“模型觉得重要就存”。Claude Code memory 适合项目约定;Hermes provider 扩展写入面;OpenClaw 更适合把 runtime/session 状态分开管理。是否阻止权限、安全规则、身份声明被用户写入 memory?
Memory provider外部模块负责记忆存储、检索、抽取或同步。provider 提升召回和跨设备能力,同时扩大权限、删除、同步和污染风险。Hermes 明确有 memory provider;Claude Code 更强调本地/项目 memory;OpenClaw 可通过 workspace/session 或外部 store 扩展。provider 返回的内容是否可追溯、可删除、可降权?
Memory poisoning错误、恶意或过期信息进入长期记忆后,持续影响后续任务。这是 agent 长期使用时最危险的隐性质量问题。三类 agent 都会遇到,只是入口不同:项目文件、workspace、provider、用户偏好都可能成为污染源。写入前是否有来源、置信度、确认和审计?
Memory governance围绕记忆读取、写入、更新、删除、审计和权限的治理规则。没有 governance 的 memory 会变成不可控提示污染源。Claude Code 需要区分 memory 与 hooks;OpenClaw 要区分 session store 与长期配置;Hermes 要治理外部 provider。用户要求删除记忆时,索引、缓存和备份怎么处理?