AI Tools 2026年4月18日 (更新: 2026年8月28日)

Claude Memory Tool完全解説:会話をまたいで情報を保存する長期記憶API

Claude Memory Toolを解説。クライアントサイドメモリの仕組み、Context Editingとの組み合わせによる長期エージェント設計、Managed Agentsのメモリストアとの使い分けを網羅。

難易度基本的な操作を一度試したことがある前提です種別アップデート解説

TL;DR

  • Claudeが会話をまたいで情報を保存・参照・更新できるツール
  • ストレージはクライアントサイド管理(開発者が保存先を自由に選択)
  • Context Editing と組み合わせると長期エージェントでのコンテキスト溢れを防止
  • 保存先を自分で持ちたくない場合は、Managed Agents 側のメモリストアという別の選択肢がある

概要

Claude Memory Tool は、2025年9月29日にbetaとして公開されたメモリ管理ツールです。Claudeが自律的に情報を保存・参照・更新し、セッションをまたいでコンテキストを維持できます。

ストレージはサーバーサイドではなくクライアントサイドで管理します。保存先はファイル・データベース・ベクターストアなど開発者が自由に選べます。


ツールの構成

Memory Tool は {"type": "memory_20250818", "name": "memory"} という Anthropic 定義のツールとして宣言します。input_schema は自分で書きません。実際の保存処理は開発者側のハンドラーで実装し、次の3種類の操作をカバーします。

操作用途
保存新しい情報を記録する
読み取り過去の情報を参照する
更新既存情報を最新化する

基本的な使い方

import anthropic
import json

client = anthropic.Anthropic()

# メモリストア(シンプルなdict例)
memory_store = {}

def handle_memory_tool(tool_name, tool_input):
    """Memory Toolの実行ハンドラー"""
    if tool_name == "memory_create":
        key = tool_input["key"]
        memory_store[key] = tool_input["value"]
        return f"保存しました: {key}"

    elif tool_name == "memory_read":
        key = tool_input.get("key")
        if key:
            return memory_store.get(key, "データが見つかりません")
        return json.dumps(memory_store)  # 全件返す

    elif tool_name == "memory_update":
        key = tool_input["key"]
        memory_store[key] = tool_input["value"]
        return f"更新しました: {key}"

# Memory Tool を組み込んだエージェントループ
response = client.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    tools=[{"type": "memory_20250818", "name": "memory"}],
    messages=[
        {
            "role": "user",
            "content": "私は田中省伍です。Webエンジニアとして働いています。覚えておいてください。"
        }
    ],
)

Context Editing との組み合わせ

長期エージェントでは、処理を続けるとツール出力が蓄積してコンテキストウィンドウを消費します。Context Editing と組み合わせることで、古いツール結果を削除しながら重要情報だけをメモリに保持できます。

# コンテキスト削減 + メモリ保持の組み合わせ例

# 1. エージェントが重要情報をMemory Toolで保存
# 2. 古いtool_resultをContext Editingで削除
# 3. 次のステップでMemory Toolから必要な情報を読み取る

# SDK の tool_runner にループを任せる場合
runner = client.beta.messages.tool_runner(
    model="claude-opus-5",
    max_tokens=4096,
    tools=[{"type": "memory_20250818", "name": "memory"}],
    messages=[...],
)
result = runner.until_done()

Context Editing 自体は client.beta.messages.*context-management-2025-06-27 betaヘッダーを付け、context_management で方式を指定します。古いツール結果を消す clear_tool_uses_20250919 と、思考ブロックを消す clear_thinking_20251015 があります。


Claude.ai のメモリ・Managed Agents のメモリストアとの違い

2026年7月に Managed Agents 向けのメモリストアが加わり、選択肢は3つになりました。

項目Memory Tool(API)メモリストア(Managed Agents)Claude.ai メモリ
管理者開発者(クライアント側)Anthropic(サーバー側)Anthropic(サーバー側)
保存先自由(DB・ファイル等)ワークスペース単位のストアAnthropicのシステム
ユーザー操作開発者が設計APIから操作claude.ai UIから管理
カスタマイズ完全に自由ストア構成の範囲で自由限定的

メモリストアの要点

メモリストアはワークスペース単位のテキスト文書コレクションで、セッションのサンドボックスにディレクトリとしてマウントされます。バージョンは不変で、保持期間は30日です。コンプライアンス対応の redact エンドポイントも用意されています。

制限
1セッションあたりのストア数8
1ストアあたりのメモリ数2,000
1メモリのサイズ100 kB

betaヘッダーは他の Managed Agents エンドポイントと異なり、メモリストア系だけ agent-memory-2026-07-22 を使います。managed-agents-2026-04-01 と同時に送ると400エラーになります。

関連して「Dreaming」も追加されています。断片化したメモリを、元のストアを書き換えずに新しい出力ストアへ統合するセッションです。


対応モデル

現行の Opus 5 / Sonnet 5 / Fable 5 / Haiku 4.5 で利用できます。

なお claude-opus-4-1 は2026年8月5日、claude-opus-4claude-sonnet-4 は2026年6月15日に廃止済みです。これらを指定している実装は動きません。


参考リンク