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

![Conceptual charcoal illustration of two separate laptops on a round table, each displaying the same five abstract text strokes with the third row orange.](https://bigchange.ai/api/media/file/reviewed-memory-two-sessions-hero-v3.png)
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) — 相關的單一輸出審查指南。它沒有證明本文具型別、雙代理、精確快照的完整生命週期。
