Markdown 版本
AI-translated from English; not yet reviewed by a fluent editor.
# 向两个代理提供同一份经审查的记忆记录
> 存储一份依据来源获批的有类型记忆记录,将其经审查的精确字节提供给两个获授权代理会话,再验证条件更新并解决冲突。
By BIG CHANGE Editorial
Published: 2026-10-20T13:57:38.593Z
Updated: 2026-10-20T13:57:38.593Z
Canonical: https://bigchange.ai/blog/managed-agents-reviewed-memory-snapshot-guide

AI-generated conceptual illustration by BIG CHANGE.
Anthropic 的 Managed Agents 记忆存储可以跨会话保留文本。应用若要给两个代理提供同一个经审查事实,持久化只是第一步。应用必须确定记录归谁所有、检查原始证据、选定一个存储修订版本,并在任一代理看到记录前保留其精确字节。本指南面向拥有获授权 Managed Agents 测试版访问权限,并能控制应用身份验证、存储选择及代理配置的开发者。依据是[Anthropic 当前的记忆文档](https://platform.claude.com/docs/en/managed-agents/memory)和于2026年10月20日核查的 API 参考资料;BIG CHANGE 没有进行账户或模型测试。
## 关键变化
- **发生了什么变化:** 经审查的有类型 JSON 记忆可以持久保存在 Managed Agents 存储中。应用检查其来源和存储的精确字节,冻结一份私有快照,再将相同获批字节发送给两个独立的获授权会话,且不挂接记忆存储。
- **为什么重要:** 后续修改存储内容,不会改变已经为这些会话构造好的输入。
- **需要关注:** 来源准确性、用户授权和回答质量仍需分别检查。
## 开始之前
准备一项真实事实、偏好或项目规则,具备有权使用的原始来源、稳定来源 ID 和修订版本,并由负责人批准存储及向两个代理角色披露。在审查前,为该记录确定合适的审查有效期。确认账户具备 Managed Agents 测试版访问权限、私有 API 密钥、获授权工作区、两个已配置代理 ID、环境及允许的模型。在允许本流程的四个限定消费者会话前,查看当前用量及价格。不要把密钥放进提示词或凭据记录。
应用需要从已验证身份到作用域的映射。在受信任应用状态中,将身份绑定到获批的 `ownerScopeId`、工作区 ID、存储 ID 和两个允许的代理 ID。私人用户或项目的访问规则不同时,使用独立存储。工作区 API 密钥不等于最终用户身份验证,路径不是租户边界,提示词也不能移除工具或凭据。确认两个消费者配置均未挂接存储,也不存在能访问可变存储的连接器、环境凭据或工具路径。无法建立这个边界,就在发送记录前停止。
## 1. 根据来源批准记录
使用这个**结构模板**,将所有尖括号中的值替换为真实获批证据。它不是事实示例,也不是声称已取得的结果。批准前,将完整对象序列化为一段精确的 UTF-8 JSON 文本。验证器应只接受这些字段和类型,拒绝未知字段,要求非空白字符串及有效 UTC 时间戳,将 `kind` 限定为 `fact`、`preference` 或 `project_rule`,并将 `status` 限定为 `active`、`disputed` 或 `superseded`。只有 `active` 状态的记录可以注入。获批陈述必须符合引用的原始来源,包括生效日期和适用范围。
```json
{
"schemaVersion": "memory-record/v1",
"recordId": "<opaque stable record ID>",
"ownerScopeId": "<trusted mapped scope ID>",
"kind": "<fact | preference | project_rule>",
"claim": "<precise source-supported claim>",
"sourceId": "<private original-source ID>",
"sourceRevision": "<original revision or exact source hash>",
"sourceQuoteOrPointer": "<minimal permitted quote or stable pointer>",
"validFrom": "<UTC timestamp>",
"checkedAt": "<UTC timestamp>",
"status": "active",
"reviewerId": "<approved human reviewer ID>",
"reviewedAt": "<UTC timestamp>"
}
```
应用的私有批准凭据必须注明实际批准人、所有者许可、原始来源与修订版本、作用域及获准代理、时效规则,以及这些**精确 UTF-8 JSON 字节**的 SHA-256。它记录的是人对实际陈述的判断。记录中的 `reviewerId` 字符串不是身份验证。若仍有未解决矛盾或缺少许可,不要持久保存记录。Anthropic 存储文本,但不会验证这个模式或确立陈述为真。
## 2. 持久保存并回读
在获授权工作区中创建或选择一个范围有限的记忆存储,记录其真实 `memstore_...` ID。使用不敏感路径,例如 `/records/{opaque-record-id}.json`。请求前,记录操作人、UTC 时间、来源修订、获批字节哈希、存储与路径,以及 `pending` 状态。直接调用记忆存储时使用 `agent-memory-2026-07-22`;会话调用使用 `managed-agents-2026-04-01`。Anthropic 说明,在存储请求中组合这两个测试版标头会返回 HTTP 400。[创建参考文档](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/create)和记忆手册展示了以下 SDK 形式;请将安装的 SDK 与当前参考资料核对:
```python
mem = client.beta.memory_stores.memories.create(
store.id,
path="/records/<opaque-record-id>.json",
content=approved_json_text,
)
```
创建不会覆盖现有路径。保存返回的 `mem_...` ID,再列出限定存储中的 `/records/`,将每个 `next_page` 作为下一页的 `page`。默认的基本列表不含内容。[检索选定的记忆](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/retrieve) ID 以获取全文;将存储 ID、记忆 ID、路径、内容及 `content_sha256` 与获批字节核对。在日志和注册表中记录响应及直接回读结果。仅有创建响应并不能证明完成。若响应不确定,先检查确切路径及直接记录,再判断发生了什么;单凭搜索无结果,不能再次创建。
## 3. 冻结选定的修订版本
每次后续运行都要验证调用者身份,并从可信注册表解析其作用域、存储和选定记录 ID。如需查找,遍历限定前缀的所有页面,再直接检索选定的 `mem_...`。对**返回内容**的 UTF-8 编码计算 SHA-256,将其与提供商的 `content_sha256` 及人工批准的精确字节哈希比较,再次验证 JSON。检查记录 ID、所有者作用域、来源修订、`active` 状态、来源是否仍有效,以及预先确定的时效上限。任一检查失败,就什么也不发送。
将检索到的精确字节一次性写入按哈希寻址的私有存储,使用排他创建语义,例如 Python 的 `open(path, "xb")`。立即回读文件并计算哈希,并在**每次**发送前再做一遍。绝不覆盖现有快照。文件不完整,或同一地址已有不同字节,都需要暂停并核对解决。将原始批准、存储 ID、记忆 ID、提供商哈希、快照哈希和作用域决定保存在私有检索凭据中。这种只写一次的快照是应用设计,不是 Anthropic 提供的固定版本挂载。
## 4. 将相同字节提供给两个新会话
用真实获授权代理和环境 ID 创建代理 A 的新会话,并且**不在以下字段中加入记忆存储:`resources`**。确认返回会话的资源,以及代理的实际工具和凭据,都没有其他通向该存储的路径。Anthropic 的[会话指南](https://platform.claude.com/docs/en/managed-agents/sessions)分别说明创建及发送 `user.message` 的操作:
```python
session = client.beta.sessions.create(
agent=approved_agent_id,
environment_id=approved_environment_id,
)
client.beta.sessions.events.send(
session.id,
events=[{"type": "user.message", "content": [{"type": "text", "text": message_text}]}],
)
```
调用 `events.send` 前,回读私有快照并计算哈希。以确定性方式构造 `message_text`,包括明确的“经审查数据”标签、记录与来源及审查标识、不变的 JSON 文本及 SHA-256,最后加上一个原始来源能够回答的具体问题。展示的字段是**应用消息格式**,不是提供商响应字段。发送前,记录完整 UTF-8 消息字节及哈希、选定快照哈希、获授权代理 ID、会话 ID 和发送状态。保存发送结果及真实已发送事件 ID,或可用的事件列表回读。发送结果未知时,需要回读事件,不能盲目重发。
为代理 B 创建第二个新会话,使用其单独获批的代理 ID,同样不允许访问存储。重新读取**同一份只写一次的快照**,验证字节哈希,构造并记录 B 的完整消息,然后发送。两条消息的问题或收件者元数据可以不同;但要确认内嵌 JSON 字节和获批记录哈希完全相同。根据原始来源审查每个代理的回答和所有工具事件。看似合理的回答或引用,并不能证明模型内部依赖了注入文本;消息及提供商事件凭据能确立的是应用提供了什么。会话若有实时挂载或其他存储访问路径,就不要发送。
## 5. 只有重新审查来源后才能更新
原始来源改变时,直接检索当前记忆,并与所有者比较新旧证据。请人工批准精确的替换 JSON 字节,其中包含稳定记录 ID、更正的陈述或来源指针、新来源修订及检查、审查时间。保留旧凭据和哈希。记录 `mem_...` ID、当前直接读到的 `content_sha256`、拟替换哈希、操作人、批准和待处理状态。文档中的[条件更新](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/update)如下:
```python
client.beta.memory_stores.memories.update(
memory_id=memory_id,
memory_store_id=store_id,
content=approved_replacement_json_text,
precondition={"type": "content_sha256", "content_sha256": fresh_old_hash},
)
```
提供商对精确 UTF-8 内容计算哈希,不作规范化。前置条件不匹配会返回 HTTP 409 `memory_precondition_failed_error`。收到该响应或网络结果不确定时,重新检索实时记忆,按需查看版本历史。比较竞争的来源修订,并请所有者合并、拒绝或批准一份新的精确替换;绝不盲目重试旧写入。成功后,必须通过直接检索确认路径、完整替换文本、哈希及记忆版本 ID,才能把日志状态改为 `confirmed`。
从验证过的修订冻结一份**新的**获批快照。启动新的获授权 A、B 会话,不挂载存储,重复两次发送及来源检查。不要改动旧快照,也不要声称已发送消息会自行更新。将旧快照标记为不再可用于后续注入。所有者撤回记录时,停止新的发送,并执行其保留和删改政策:删除当前记忆不一定会删除保留版本。归档或删除整个存储需要另行决定。
## 什么才算完成
私有凭据应将原始许可和来源修订连接到精确获批 JSON 哈希;真实的工作区、存储、路径及 `mem_...` 身份与直接创建回读;一份不可变快照;两个不同、获授权且未挂载存储的会话 ID,以及发送消息哈希和经来源核查的回答;获批条件更新、更新后的直接回读和新会话检查。任何连接不确定,就将整个练习标为未完成,保留确切暂停原因。实际执行时,记录会话和工具的真实用量及账户对应费用;本指南仅依据文档,没有测量节省或模型表现。
对于相关但不同的工作,[为后续会话审查一份 Dream 输出](https://bigchange.ai/blog/claude-managed-agents-reviewed-dream-memory-guide)处理的是生成的存储提案。这里的流程从所有者批准的来源记录开始,固定两个消费者实际接收的内容。
## Sources
- [Anthropic Managed Agents 记忆手册](https://platform.claude.com/docs/en/managed-agents/memory) — 说明测试版标头、工作区文本存储、可变挂载、版本和限制。它不验证最终用户身份,不确认陈述真假,也不将挂载存储固定到获批修订。
- [Anthropic 创建记忆 API](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/create) — 说明按路径和内容创建以及返回身份。本指南没有执行创建;应用验证与批准是独立步骤。
- [Anthropic 记忆列表 API](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list) — 说明 path_prefix、next_page 分页,以及不含内容的基本结果。仍需对选定记录进行完整直接读取。
- [Anthropic 检索记忆 API](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/retrieve) — 说明完整检索选定记忆以回读内容及哈希;来源准确性和作用域是应用需要检查的内容。
- [Anthropic 更新记忆 API](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/update) — 说明精确 UTF-8 content_sha256 前置条件及 HTTP 409 memory_precondition_failed_error。人工解决冲突是本指南提出的应用政策。
- [Anthropic 启动会话](https://platform.claude.com/docs/en/managed-agents/sessions) — 说明代理和环境的会话创建,以及通过 events.send 发送 user.message。本指南没有运行会话;未挂载的私有快照和消息日志属于应用控制措施。
- [BIG CHANGE:用一次 Dream 审查 Claude Managed Agent 记忆存储](https://bigchange.ai/blog/claude-managed-agents-reviewed-dream-memory-guide) — 相关的单输出审查指南。它并不证明本文有类型、双代理、精确快照的完整生命周期。
BIG CHANGE 新闻通讯
纵览全局,按自己的节奏。
关于人工智能和机器人技术的近期报道、值得关注的变化以及可采用的实用想法。选择每日简报、每周摘要或每月视角。
下次计划发送时间(UTC): . 确认订阅后,您将在下一个计划发送时间收到第一期通讯。