Loading...
    • 開発者ガイド
    • APIリファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    最初のステップ
    Claude入門クイックスタート
    モデルと価格
    モデル概要モデルの選択Claude 4.5の新機能Claude 4.5への移行モデルの廃止予定価格
    Claudeで構築
    機能概要Messages APIの使用コンテキストウィンドウプロンプトのベストプラクティス
    機能
    プロンプトキャッシングコンテキスト編集拡張思考エフォートストリーミングメッセージバッチ処理引用多言語対応トークンカウントエンベディングビジョンPDF対応Files API検索結果構造化出力Google Sheetsアドオン
    ツール
    概要ツール使用の実装方法トークン効率的なツール使用細粒度ツールストリーミングBashツールコード実行ツールプログラマティックツール呼び出しコンピュータ使用ツールテキストエディタツールWebフェッチツールWeb検索ツールメモリツールツール検索ツール
    エージェントスキル
    概要クイックスタートベストプラクティスAPIでスキルを使用
    エージェントSDK
    概要TypeScript SDKPython SDK移行ガイド
    ガイド
    ストリーミング入力権限の処理セッション管理SDKの構造化出力エージェントSDKのホスティングシステムプロンプトの変更SDKのMCPカスタムツールSDKのサブエージェントSDKのスラッシュコマンドSDKのエージェントスキルコストと使用状況の追跡TodoリストSDKのプラグイン
    APIのMCP
    MCPコネクタリモートMCPサーバー
    サードパーティプラットフォームのClaude
    Amazon BedrockMicrosoft FoundryVertex AI
    プロンプトエンジニアリング
    概要プロンプトジェネレータプロンプトテンプレートの使用プロンプト改善ツール明確で直接的に例を使用する(マルチショットプロンプティング)Claudeに考えさせる(CoT)XMLタグを使用Claudeに役割を与える(システムプロンプト)Claudeの応答を事前入力複雑なプロンプトをチェーン長いコンテキストのヒント拡張思考のヒント
    テストと評価
    成功基準の定義テストケースの開発評価ツールの使用レイテンシの削減
    ガードレールの強化
    ハルシネーションの削減出力の一貫性を向上ジェイルブレイクの軽減ストリーミング拒否プロンプト漏洩の削減Claudeをキャラクターのままに
    管理とモニタリング
    Admin API概要使用状況とコストAPIClaude Code Analytics API
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    ツール

    メモリツール

    Claudeがメモリファイルディレクトリを通じて会話間で情報を保存・取得できるメモリツールについて学びます。
    • view
    • create
    • str_replace
    • insert
    • delete
    • rename

    メモリツールにより、Claudeはメモリファイルディレクトリを通じて会話間で情報を保存・取得できます。Claudeはセッション間で永続化するファイルを作成、読み取り、更新、削除でき、コンテキストウィンドウにすべてを保持することなく時間をかけて知識を構築できます。

    メモリツールはクライアント側で動作します。つまり、独自のインフラストラクチャを通じてデータがどこにどのように保存されるかを制御します。

    メモリツールは現在ベータ版です。有効にするには、APIリクエストでベータヘッダー context-management-2025-06-27 を使用してください。

    このフィーチャーに関するフィードバックを共有するには、フィードバックフォームからお問い合わせください。

    ユースケース

    • 複数のエージェント実行間でプロジェクトコンテキストを維持する
    • 過去のインタラクション、決定、フィードバックから学ぶ
    • 時間をかけてナレッジベースを構築する
    • Claudeが繰り返されるワークフローで改善する、会話間学習を有効にする

    仕組み

    有効にすると、Claudeはタスクを開始する前に自動的にメモリディレクトリをチェックします。Claudeは /memories ディレクトリ内のファイルを作成、読み取り、更新、削除して、作業中に学んだことを保存し、その後の会話でそれらのメモリを参照して、同様のタスクをより効果的に処理したり、中断したところから再開したりできます。

    これはクライアント側のツールであるため、Claudeはメモリ操作を実行するためにツール呼び出しを行い、アプリケーションはそれらの操作をローカルで実行します。これにより、メモリがどこにどのように保存されるかを完全に制御できます。セキュリティのため、すべてのメモリ操作を /memories ディレクトリに制限する必要があります。

    例:メモリツール呼び出しの仕組み

    Claudeにタスクを支援するよう依頼すると、Claudeは最初に自動的にメモリディレクトリをチェックします。典型的なインタラクションは次のようになります:

    1. ユーザーリクエスト:

    "Help me respond to this customer service ticket."

    2. Claudeがメモリディレクトリをチェック:

    "I'll help you respond to the customer service ticket. Let me check my memory for any previous context."

    Claudeはメモリツールを呼び出します:

    {
      "type": "tool_use",
      "id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
      "name": "memory",
      "input": {
        "command": "view",
        "path": "/memories"
      }
    }

    3. アプリケーションがディレクトリコンテンツを返す:

    {
      "type": "tool_result",
      "tool_use_id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
      "content": "Directory: /memories\n- customer_service_guidelines.xml\n- refund_policies.xml"
    }

    4. Claudeが関連ファイルを読み取る:

    {
      "type": "tool_use",
      "id": "toolu_01D5E6F7G8H9I0J1K2L3M4N5",
      "name": "memory",
      "input": {
        "command": "view",
        "path": "/memories/customer_service_guidelines.xml"
      }
    }

    5. アプリケーションがファイルコンテンツを返す:

    {
      "type": "tool_result",
      "tool_use_id": "toolu_01D5E6F7G8H9I0J1K2L3M4N5",
      "content": "<guidelines>\n<addressing_customers>\n- Always address customers by their first name\n- Use empathetic language\n..."
    }

    6. Claudeがメモリを使用して支援:

    "Based on your customer service guidelines, I can help you craft a response. Please share the ticket details..."

    サポートされているモデル

    メモリツールは以下で利用可能です:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    はじめに

    メモリツールを使用するには:

    1. APIリクエストにベータヘッダー context-management-2025-06-27 を含める
    2. リクエストにメモリツールを追加する
    3. メモリ操作のクライアント側ハンドラーを実装する

    アプリケーションでメモリツール操作を処理するには、各メモリコマンドのハンドラーを実装する必要があります。SDKはメモリツールヘルパーを提供し、ツールインターフェースを処理します。BetaAbstractMemoryTool(Python)をサブクラス化するか、betaMemoryTool(TypeScript)を使用して、独自のメモリバックエンド(ファイルベース、データベース、クラウドストレージ、暗号化ファイルなど)を実装できます。

    動作例については、以下を参照してください:

    • Python: examples/memory/basic.py
    • TypeScript: examples/tools-helpers-memory.ts

    基本的な使用方法

    ツールコマンド

    クライアント側の実装は、これらのメモリツールコマンドを処理する必要があります:

    view

    オプションの行範囲を指定してディレクトリコンテンツまたはファイルコンテンツを表示します:

    {
      "command": "view",
      "path": "/memories",
      "view_range": [1, 10]  // オプション:特定の行を表示
    }

    create

    ファイルを作成または上書きします:

    {
      "command": "create",
      "path": "/memories/notes.txt",
      "file_text": "Meeting notes:\n- Discussed project timeline\n- Next steps defined\n"
    }

    str_replace

    ファイル内のテキストを置換します:

    {
      "command": "str_replace",
      "path": "/memories/preferences.txt",
      "old_str": "Favorite color: blue",
      "new_str": "Favorite color: green"
    }

    insert

    特定の行にテキストを挿入します:

    {
      "command": "insert",
      "path": "/memories/todo.txt",
      "insert_line": 2,
      "insert_text": "- Review memory tool documentation\n"
    }

    delete

    ファイルまたはディレクトリを削除します:

    {
      "command": "delete",
      "path": "/memories/old_file.txt"
    }

    rename

    ファイル/ディレクトリを名前変更または移動します:

    {
      "command": "rename",
      "old_path": "/memories/draft.txt",
      "new_path": "/memories/final.txt"
    }

    プロンプトガイダンス

    メモリツールが含まれている場合、システムプロンプトに自動的にこの指示が含まれます:

    IMPORTANT: ALWAYS VIEW YOUR MEMORY DIRECTORY BEFORE DOING ANYTHING ELSE.
    MEMORY PROTOCOL:
    1. Use the `view` command of your `memory` tool to check for earlier progress.
    2. ... (work on the task) ...
         - As you make progress, record status / progress / thoughts etc in your memory.
    ASSUME INTERRUPTION: Your context window might be reset at any moment, so you risk losing any progress that is not recorded in your memory directory.

    Claudeがメモリファイルを散らかしているのを観察した場合、この指示を含めることができます:

    Note: when editing your memory folder, always try to keep its content up-to-date, coherent and organized. You can rename or delete files that are no longer relevant. Do not create new files unless necessary.

    また、Claudeがメモリに何を書き込むかをガイドすることもできます。例えば、「<topic>に関連する情報のみをメモリシステムに記録してください。」

    セキュリティに関する考慮事項

    メモリストアを実装する際の重要なセキュリティ上の懸念事項は以下の通りです:

    機密情報

    Claudeは通常、機密情報をメモリファイルに書き込むことを拒否します。ただし、潜在的に機密情報を削除する、より厳密な検証を実装することをお勧めします。

    ファイルストレージサイズ

    メモリファイルサイズを追跡し、ファイルが大きくなりすぎるのを防ぐことを検討してください。メモリ読み取りコマンドが返すことができる最大文字数を追加し、Claudeがコンテンツをページネーションできるようにすることを検討してください。

    メモリの有効期限

    長時間アクセスされていないメモリファイルを定期的にクリアすることを検討してください。

    パストラバーサル保護

    悪意のあるパス入力は /memories ディレクトリ外のファイルへのアクセスを試みる可能性があります。実装は必ずすべてのパスを検証して、ディレクトリトラバーサル攻撃を防ぐ必要があります。

    これらのセーフガードを検討してください:

    • すべてのパスが /memories で始まることを検証する
    • パスを正規形に解決し、メモリディレクトリ内に留まることを確認する
    • ../、..\、またはその他のトラバーサルパターンを含むパスを拒否する
    • URLエンコードされたトラバーサルシーケンス(%2e%2e%2f)に注意する
    • 言語の組み込みパスセキュリティユーティリティを使用する(例:Pythonの pathlib.Path.resolve() と relative_to())

    エラーハンドリング

    メモリツールはテキストエディタツールと同じエラーハンドリングパターンを使用します。一般的なエラーには、ファイルが見つからない、権限エラー、無効なパスが含まれます。

    コンテキスト編集との使用

    メモリツールはコンテキスト編集と組み合わせることができます。これは会話コンテキストが設定されたしきい値を超えて増加したときに古いツール結果を自動的にクリアします。この組み合わせにより、長時間実行されるエージェントワークフローがコンテキスト制限を超えることなく実行できます。

    連携方法

    コンテキスト編集が有効になっており、会話がクリアしきい値に近づくと、Claudeは自動的に警告通知を受け取ります。これにより、Claudeはツール結果から重要な情報をメモリファイルに保存するよう促されます。その後、これらの結果がコンテキストウィンドウからクリアされます。

    ツール結果がクリアされた後、Claudeは必要に応じてメモリファイルから保存された情報を取得でき、メモリを作業コンテキストの拡張として効果的に扱うことができます。これにより、Claudeは以下を実行できます:

    • 重要な情報を失うことなく複雑なマルチステップワークフローを続行する
    • ツール結果が削除された後でも過去の作業と決定を参照する
    • 通常のコンテキスト制限を超える会話間で一貫したコンテキストを維持する
    • アクティブなコンテキストウィンドウを管理可能に保ちながら、時間をかけてナレッジベースを構築する

    ワークフロー例

    多くのファイル操作を伴うコードリファクタリングプロジェクトを考えてみてください:

    1. Claudeは多くのファイル編集を行い、多くのツール結果を生成する
    2. コンテキストが増加してしきい値に近づくと、Claudeは警告を受け取る
    3. Claudeはこれまでに行われた変更をメモリファイルに要約する(例:/memories/refactoring_progress.xml)
    4. コンテキスト編集は古いツール結果を自動的にクリアする
    5. Claudeは作業を続行し、既に完了した変更を思い出す必要があるときにメモリファイルを参照する
    6. ワークフローは無期限に続行でき、Claudeはアクティブなコンテキストと永続的なメモリの両方を管理する

    設定

    両方のフィーチャーを一緒に使用するには:

    メモリツール呼び出しがクリアされるのを除外して、Claudeが常に最近のメモリ操作にアクセスできるようにすることもできます:

    context_management={
        "edits": [
            {
                "type": "clear_tool_uses_20250919",
                "exclude_tools": ["memory"]
            }
        ]
    }
    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "content-type: application/json" \
        --header "anthropic-beta: context-management-2025-06-27" \
        --data '{
            "model": "claude-sonnet-4-5",
            "max_tokens": 2048,
            "messages": [
                {
                    "role": "user",
                    "content": "I'\''m working on a Python web scraper that keeps crashing with a timeout error. Here'\''s the problematic function:\n\n```python\ndef fetch_page(url, retries=3):\n    for i in range(retries):\n        try:\n            response = requests.get(url, timeout=5)\n            return response.text\n        except requests.exceptions.Timeout:\n            if i == retries - 1:\n                raise\n            time.sleep(1)\n```\n\nPlease help me debug this."
                }
            ],
            "tools": [{
                "type": "memory_20250818",
                "name": "memory"
            }]
        }'
    response = client.beta.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=4096,
        messages=[...],
        tools=[
            {
                "type": "memory_20250818",
                "name": "memory"
            },
            # Your other tools
        ],
        betas=["context-management-2025-06-27"],
        context_management={
            "edits": [
                {
                    "type": "clear_tool_uses_20250919",
                    "trigger": {
                        "type": "input_tokens",
                        "value": 100000
                    },
                    "keep": {
                        "type": "tool_uses",
                        "value": 3
                    }
                }
            ]
        }
    )