Managed Agents にセッション横断の永続メモリ機能「Memory Stores」を追加

anthropics/skills

Managed Agents のスキルドキュメントに Memory Stores(パブリックベータ)の解説ページが新設され、エージェントがセッションをまたいで知識を保持できる仕組みが整備された。既存の resources[] 機構に統合されるため、ファイルやリポジトリとほぼ同じインターフェースで扱える。

背景

Managed Agents のセッションはデフォルトでエフェメラルであり、セッションが終了するとエージェントが得た情報はすべて消失する。この制約を解消するために Memory Stores が導入された。Memory Stores はワークスペーススコープの小さなテキストドキュメントのコレクションで、セッションをまたいで情報を保持できる。

新しいドキュメント shared/managed-agents-memory.md(197行追加)がその中心となる解説ページであり、オブジェクトモデル・セッションへのアタッチ方法・FUSE マウントのエージェントインターフェース・ホスト側の CRUD・バージョン管理と Redact までを体系的に説明している。あわせて SKILL.mdmanaged-agents-api-reference.mdmanaged-agents-core.mdmanaged-agents-environments.mdmanaged-agents-overview.md の5ファイルに相互参照が追加され、ドキュメント全体の整合性が保たれた。

技術的な変更

Memory Stores は3層のオブジェクトモデルで構成される。各オブジェクトのIDプレフィックスで層が識別できる設計になっている。

オブジェクト ID プレフィックス スコープ 備考
Memory Store memstore_... ワークスペース resources[] でセッションにアタッチ
Memory mem_... ストア パスで管理されるテキストファイル(≤ 100KB)
Memory Version memver_... メモリ ミューテーションごとに生成される不変スナップショット

ストアの作成と初期コンテンツのシードは以下のように行う。description はエージェントのシステムプロンプトに渡されるため、モデルが理解しやすい文章で記述することが推奨されている。

store = client.beta.memory_stores.create(
    name="User Preferences",
    description="Per-user preferences and project context.",
)

client.beta.memory_stores.memories.create(
    store.id,
    path="/formatting_standards.md",
    content="All reports use GAAP formatting. Dates are ISO-8601...",
)

セッションへのアタッチは resources[]type: "memory_store" エントリを追加するだけで、既存の filegithub_repository と並べて指定できる。ただし セッション作成時にのみ指定可能であり、sessions.resources.add() では後から追加できない。また1セッションあたりの上限は 8ストアである。

session = client.beta.sessions.create(
    agent="agent_abc123",
    environment_id="env_xyz",
    resources=[
        {"type": "memory_store", "memory_store_id": store.id},
    ],
)

アタッチされたストアはコンテナ内で /mnt/memory/<store>/ にFUSEマウントされ、エージェントは通常のファイルツールでシームレスに読み書きできる。ホスト側からメモリを操作する場合、path を指定した memories.create で新規作成し、既存ファイルの更新は memory_id を使った memories.update で行う。content_sha256 プリコンディション(楽観的排他制御)もサポートされており、競合を検知できる。

API リファレンス(managed-agents-api-reference.md)には Memory Stores・Memories・Memory Versions の3セクションが追加された。削除・アーカイブの可否は既存リソースと異なる点があるため注意が必要だ。

  • Memory Stores: deletearchive の両方あり
  • Memories: delete のみ(archive なし)
  • Memory Versions: deletearchive もなく、redact のみ

この非対称な操作セットは、バージョン履歴の不変性を保ちながら機密コンテンツを消去できるよう設計されている。

SDKのベータ名前空間にも memory_stores が追加され、client.beta.{agents,environments,sessions,vaults,memory_stores}.* の全呼び出しで managed-agents-2026-04-01 ベータヘッダーが自動付与される。SKILL.mdmanaged-agents-overview.mdmanaged-agents-api-reference.md の3箇所でこの記述が更新されており、ドキュメントの一貫性が保たれている。

設計判断

Memory Stores は既存の resources[] 配列に統合する設計が採用されており、filegithub_repository と同じ仕組みでセッションに結びつけられる。エージェントから見たインターフェースもFUSEマウントによる通常ファイルアクセスであるため、Memory Stores 専用のツール呼び出しは不要だ。

一方で、filegithub_repository と異なりセッション作成後の追加が不可という制約を設けている。これはアーキテクチャ図(managed-agents-core.md)の「attached at startup」という表現にも反映されており、マウント処理がセッション起動シーケンスに組み込まれていることを示している。

バージョン管理の設計も注目に値する。メモリへのあらゆるミューテーションが不変スナップショット(memver_...)として記録されるため、監査証跡とポイントインタイムのロールバック・Redactが可能になっている。Memory Versions は deletearchive も持たず redact のみという非対称な操作セットは、履歴の完全性を保ちながら機密データを消去するというトレードオフの結果だ。

まとめ

Memory Stores は resources[] という既存の統合ポイントを拡張することで、エージェントのアーキテクチャを大きく変えることなくセッション横断の永続化を実現している。FUSE マウントによるファイルシステム抽象化・memver_ による不変バージョン履歴・redact による機密消去の組み合わせは、エージェントの永続メモリに求められる操作性・監査性・安全性のバランスを設計レベルで示している。

記事メタデータ

Generated by:
Claude Sonnet 4.6 for DiffDaily
LLM Trace:
718a9e57

この記事はAIによって自動生成されています。内容の正確性については、必ずソースコードやPRを確認してください。

品質レビュー結果

Review Status:
承認済み
Review Count:
1回
Reviewed by:
Gemini 2.5 Pro for DiffDaily

Review Criteria:

記事構成 ✓ PASS

Title, Context, Technical Detailの存在と明確さ

リード文(総論)、背景、技術的な変更、設計判断、まとめ(結論)という「総論→各論→結論」の構成が明確に適用されており、非常に分かりやすいです。

カスタムMarkdown構文 ⚠ WARNING

シンタックスハイライト・GitHubリンク記法の正確性

コードブロックのシンタックスハイライトで `python:セッション作成時のアタッチ例` という形式が使用されています。ガイドラインの `言語:ファイルパス` 形式とは異なりますが、内容は理解可能です。PRリンクは正しく設定されています。

対象読者への適合性 ✓ PASS

エンジニア向けの適切な技術レベルと表現

FUSEマウント、エフェメラル、不変スナップショット等の用語が説明なく使われており、専門知識を持つエンジニアという対象読者に適切です。

パラグラフ・ライティング ✓ PASS

トピックセンテンス・1段落1トピック・段落長

各セクション、各パラグラフが「総論→各論」の構造で書かれており、トピックセンテンスが先頭にあるため非常に読みやすいです。1段落1トピックの原則も守られています。

Diff内容との照合 ✓ PASS

コードブロックとDiff内容の一致

記事内で引用されているPythonコード例は、新規追加された `managed-agents-memory.md` 内のコードと一致しており、Diffの内容を正確に反映しています。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

`Memory Stores`, `FUSE mount`, `redact`, IDプレフィックス(`memstore_`等)など、PRで使われている技術用語を正確かつ適切に使用しています。

説明の技術的正確性 ✓ PASS

技術的主張の正確性と論理性

「セッション作成時のみアタッチ可能」「上限8ストア」といった仕様や、`delete`/`archive`/`redact`の非対称な操作セットに関する説明は、Diffの内容と完全に一致しており、技術的に正確です。

事実の突合 ✓ PASS

PR情報による主張の裏付け(ハルシネーション検出)

記事内のすべての主張は、PRのDescriptionやDiffの内容によって裏付けられています。特に、複数のファイルにまたがる変更点を統合し、一貫したストーリーとして再構成できています。ハルシネーションは検出されませんでした。

数値・固有名詞の確認 ✓ PASS

PR番号・コミットID・バージョン等の正確性

PR番号 `#1014`、追加されたファイルの行数 `197`、ストアの上限数 `8` など、記事に含まれるすべての数値と固有名詞はPR情報と一致しており正確です。

タイトル・説明との一致 ✓ PASS

記事タイトル・説明とPR内容の一致

記事のタイトルは、PRの「Memory Storesのページを追加」という内容を、その機能的な意義(セッション横断の永続メモリ)から的確に表現しており、PR内容と完全に一致しています。

外部知識の正確性 ✓ PASS

PRに記載のない外部知識(LTS、サポート状況など)の不使用

記事の内容はすべてPR情報に基づいており、PRに記載のないバージョンサポート状況やリリース日程といった外部知識の持ち込みはありません。

時間表現の正確性 ✓ PASS

時間表現がPR情報と一致しているか

「パブリックベータ」という現状を示す表現はPR情報と一致しており、時間表現の歪曲は見られません。