Cookie settings

We use cookies to deliver and improve our services, analyze site usage, and if you agree, to customize or personalize your experience and market our services to you. You can read our Cookie Policy here.

Claude Platform Docs
Messagesツール

コード実行ツール

サンドボックス化されたコンテナでPythonとbashのコードを実行し、データの分析、ファイルの生成、ソリューションの反復改善を行います。

Claudeは、APIの会話内で直接、データの分析、可視化の作成、複雑な計算の実行、システムコマンドの実行、ファイルの作成と編集、アップロードされたファイルの処理を行うことができます。コード実行ツールを使用すると、Claudeは安全な「sandboxed」(サンドボックス化された)環境で、Bashコマンドの実行やファイルの操作(コードの記述を含む)を行えます。

コード実行は、ウェブ検索またはウェブフェッチ(web_search_20260209、web_fetch_20260209、またはそれ以降)と併用する場合は無料です。 これらのツールのいずれかがリクエストに含まれている場合、そのリクエストでは標準のトークンコスト以外にコード実行の追加料金は発生しません。これは、動的フィルタリングの背後で行われるコード実行と、Claudeが直接実行するコードの両方に適用されます。これらのツールが含まれていない場合は、標準のコード実行料金が適用されます。

コード実行は、ウェブ検索ツールとウェブフェッチツールにおける「dynamic filtering」(動的フィルタリング)も支えています。Claudeは、結果が「context window」(コンテキストウィンドウ)に到達する前に、コード実行環境内で結果をフィルタリングします。動的フィルタリングが実行される場合、APIはリクエストに必要なコード実行を自動的にプロビジョニングするため、そのためにコード実行ツールをリクエストに追加する必要はありません。

ツールバージョン

コード実行ツールには現在3つのバージョンがあり、サポートされているすべてのモデルが3つすべてを受け付けます。各バージョンは前のバージョンを基に構築されています。

  • code_execution_20250825は、Bashコマンドとファイル操作をサポートします。
  • code_execution_20260120は、「read-eval-print loop」(対話型評価ループ)、すなわちREPLの状態の永続化と、サンドボックス内からの「programmatic tool calling」(プログラムによるツール呼び出し)を追加します。Claude Haiku 4.5はcode_execution_20260120およびcode_execution_20260521のツールタイプを受け付けますが、プログラムによるツール呼び出しと、それに依存するREPL状態の永続化は利用できないため、新しいバージョンはcode_execution_20250825と同様に動作します。
  • code_execution_20260521は、code_execution_20260120と同じランタイムです。違いは、ツールの説明がプログラムによるツール呼び出しにおける各Pythonセルの90秒の実時間制限についてClaudeに伝える点であり、これによりClaudeは長時間実行されるセルの時間配分を計画できます。制限を超えたセルは、ゼロ以外のreturn_codeと、出力内のdetection_timeoutステータスメッセージを含む通常のコード実行結果を返します。これは、ツール呼び出し全体が最大実行時間を超えた場合にAPIが返すexecution_time_exceededエラーコードとは別のものです。

3つのツールバージョンのいずれもanthropic-betaヘッダーを必要としません。従来のコード実行ベータヘッダーも、オプトインとして引き続き有効です。

このページの例ではcode_execution_20250825を使用しています。これは例で示すBashおよびファイル操作をカバーしており、サポートされているすべてのモデルで同じように動作します。プログラムによるツール呼び出しやREPL状態の永続化が必要な場合は、code_execution_20260120以降を使用してください。現在のウェブ検索ツールとウェブフェッチツール(web_search_20260209、web_fetch_20260209、およびそれ以降)では、コード実行バージョンとしてcode_execution_20260120以降が必要です。

古いツールバージョンは、新しいモデルとの互換性が維持されることは保証されていません。新しいモデルを採用する際は、ツールバージョンと互換性を確認し、統合がサポートする最新のツールバージョンを優先して使用してください。

リクエストを送信する前に、モデルがコード実行ツールを受け付けるかどうかを確認するには、Models APIからそのモデルのcapabilities.server_tools.code_execution.supportedの値を読み取ってください。この目的にはトップレベルのcapabilities.code_executionの値を使用しないでください。この値は、プログラムによるツール呼び出しのように、このツール内で実行されるコードがリクエストの他のツールを呼び出せるかどうかを示すものです。両方のフィールドについては、Models APIの使用で説明しています。

クイックスタート

以下は、Claudeに計算を実行するよう依頼する例です。

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Use the code execution tool to calculate the mean and standard deviation of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]",
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

print(response.to_json())

レスポンスでは、server_tool_useブロック(Claudeが実行したコマンド)とそのツール結果ブロックが交互に並び、その後にClaudeのテキストが続きます。トップレベルにはcontainerオブジェクトも含まれており、そのidはリクエスト間で再利用できます。ブロックの形式についてはレスポンス形式を参照してください。

コード実行の仕組み

APIリクエストにコード実行ツールを追加すると、次のようになります。

  1. Claudeは、コード実行が質問への回答に役立つかどうかを評価します
  2. ツールは自動的にClaudeに以下の機能を提供します。
    • Bashコマンド: システム操作のためのシェルコマンドを実行します
    • ファイル操作: コードの記述を含め、ファイルを直接作成、表示、編集します
  3. Claudeは、1回のリクエストでこれらの機能を任意に組み合わせて使用できます
  4. すべての操作は、安全なサンドボックス化された「container」(コンテナ)内で実行されます。コンテナにはインターネットアクセスがないため、Claudeは実行時にパッケージをダウンロードできません。利用できるのはプリインストールされたライブラリのみです
  5. APIはすべてのコマンドをサーバー側で実行し、同じリクエスト内で結果をClaudeに返すため、ユーザー自身がコードを実行したりtool_resultブロックを送り返したりする必要はありません。例外の1つは、Claudeがコード実行と並行してクライアントツールのいずれかを呼び出す場合です。この場合、APIはコード実行の呼び出しを結果なしで返します。結果は、クライアントツールのtool_resultブロックを送り返した後の、後続のレスポンスで届きます
  6. 以前のレスポンスのコンテナIDを渡さない限り、各リクエストは新しいコンテナで実行されます(コンテナの再利用を参照)
  7. Claudeは、生成されたグラフ、計算、または分析とともに結果を提供します

コンテナにはPythonがプリインストールされています。Claudeはファイル操作サブツールでPythonを記述し、Bashコマンドで実行します。code_execution_20260120以降とプログラムによるツール呼び出しを使用すると、Pythonインタープリターの状態(変数のバインディングなど)も、コンテナを再利用するリクエスト間で永続化されます。

Claudeがコードを実行するタイミング

Claudeは、計算やファイル処理がリクエストに役立つ場合にコードを実行します。

  • 自明でない数学(大きな数値、多くのステップ、精度が重要な結果)
  • データ分析、ファイルの解析、または可視化
  • アルゴリズムの実行またはシミュレーション
  • 「run」、「compute」、「execute」などの明示的な依頼

Claudeは、以下の場合にはコードを実行せずに直接回答します。

  • 単純な算術やよく知られた数学的事実
  • 事実に関する、会話的な、または創作的なリクエスト
  • 単純な単位変換や翻訳

判断が分かれるリクエストでClaudeにコードを実行させたい場合は、明示的に依頼してください(例:「これを検証するためにコードを実行してください」)。

ファイルの操作

独自のファイルをアップロードして分析する

独自のデータファイル(CSV、Excel、画像など)を分析するには、Files APIを通じてアップロードし、リクエストで参照します。

Python環境は、Files APIを通じてアップロードされたさまざまなファイルタイプを処理できます。これには以下が含まれます。

  • CSV
  • Excel(.xlsx、.xls)
  • JSON
  • XML
  • 画像(JPEG、PNG、GIF、WebP)
  • テキストファイル(.txt、.md、.pyなど)

ファイルをアップロードして分析する

  1. Files APIを使用してファイルをアップロードします
  2. container_uploadコンテンツブロックを使用して、メッセージ内でファイルを参照します
  3. APIリクエストにコード実行ツールを含めます
client = anthropic.Anthropic()

# ファイルをアップロードします
file_object = client.files.upload(file=Path("data.csv"))

# file_id をコード実行で使用します
response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Analyze this CSV data"},
                {"type": "container_upload", "file_id": file_object.id},
            ],
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

print(response.to_json())

生成されたファイルを取得する

コード実行中にClaudeが出力ディレクトリにファイルを保存すると(生成されたファイルのキャプチャ方法を参照)、各ファイルのIDがコード実行ツールの結果に表示され、Files APIでダウンロードできます。

client = Anthropic()

# ファイルを作成するコード実行をリクエストします
response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Create a matplotlib visualization and save it as output.png",
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)


# レスポンスからファイルIDを抽出します
def extract_file_ids(response: Message) -> list[str]:
    file_ids: list[str] = []
    for item in response.content:
        if item.type == "bash_code_execution_tool_result":
            content_item = item.content
            if content_item.type == "bash_code_execution_result":
                for output_block in content_item.content:
                    file_ids.append(output_block.file_id)
    return file_ids


# 作成されたファイルをダウンロードします
for file_id in extract_file_ids(response):
    file_metadata = client.files.retrieve_metadata(file_id)
    file_content = client.files.download(file_id)
    file_content.write_to_file(file_metadata.filename)
    print(f"Downloaded: {file_metadata.filename}")

生成されたファイルのキャプチャ方法

各bash_code_execution呼び出しには新しい空のディレクトリが割り当てられ、コマンドからは$OUTPUT_DIRとして利用できます。コマンドが終了すると、そのディレクトリの最上位にあるファイルがキャプチャされ、結果のcontentリスト内のfile_idエントリとして返されます。それ以外の場所に書き込まれたファイルはコンテナ内に残り、返されません。

ツールの説明は、ファイルを$OUTPUT_DIRにコピーして共有するようClaudeに指示しています。アプリケーションがファイルの受け取りに依存している場合は、ファイルを$OUTPUT_DIRにコピーし、同じコマンド内でディレクトリの内容を一覧表示するようClaudeにプロンプトで指示してください。これにより、lsの出力でキャプチャを確認できます(Claudeにはcontentリストが見えません)。

python /tmp/make_report.py && cp /tmp/report.pdf "$OUTPUT_DIR/" && ls "$OUTPUT_DIR"

Claudeが別の場所に書き込んだファイルはコンテナ内に残っているため、コンテナを再利用して、そのファイルを$OUTPUT_DIRにコピーするようClaudeに依頼できます。

生成されたファイルのContent Credentials

Claude APIでは、Claudeがコード実行サンドボックス内で生成したサポート対象の画像、動画、音声ファイルをFiles APIを通じてダウンロードすると、「Coalition for Content Provenance and Authenticity」(コンテンツの来歴と真正性のための連合)、すなわちC2PAのContent Credentialsが付与されています。サポートされている形式には、PNG、JPEG、GIF、WebP、TIFF、HEIC、AVIF、SVG、MP4、MOV、MP3、WAV、FLAC、M4Aが含まれます。クレデンシャルは、ファイルのメタデータに埋め込まれた暗号署名付きのマニフェストです。Anthropicを発行者として識別し、タイムスタンプを含み、「Claude provided this file at the request of a user and may have created or modified the file contents.」というアクションの説明を記録します。

署名のためにリクエストやレスポンス処理を変更する必要はなく、マニフェストにはユーザー、組織、またはリクエストに関する情報は一切記録されません。ファイルの表示内容は変更されません。マニフェストによって数キロバイトが追加されるため、ダウンロードしたファイルのサイズとチェックサムは、コンテナ内に存在するファイルとは異なります。テキストファイル、PDF、オフィス文書は署名のサポート対象形式ではないため、署名されません。アップロードしたファイルは、すでに付与されているContent Credentialsを含め、そのまま保存されます。

クレデンシャルを検証するには、オープンソースのc2patoolコマンドラインユーティリティなど、C2PA互換の任意のツールでファイルを検査してください。再エンコード、形式変換、スクリーンショット、メタデータを削除するツールによってクレデンシャルは除去されるため、クレデンシャルがないことは、そのファイルがClaudeで生成されていないことを意味するわけではありません。クレデンシャルが欠落する理由の詳細については、How Claude marks AI-generated contentを参照してください。

ツール定義

コード実行ツールには追加のパラメータは必要ありません。

JSON
{
  "type": "code_execution_20250825",
  "name": "code_execution"
}

両方のフィールドは固定です。typeはツールバージョンを選択し、nameはcode_executionである必要があります。

このツールを提供すると、Claudeは自動的に2つのサブツールにアクセスできるようになります。

  • bash_code_execution:シェルコマンドを実行します
  • text_editor_code_execution:コードの記述を含め、ファイルを表示、作成、編集します

Claudeがコードを実行すると、レスポンスにはコンテナのidとexpires_atタイムスタンプを含むトップレベルのcontainerオブジェクトも含まれます。同じコンテナを引き続き使用するには、そのIDをトップレベルのcontainerリクエストパラメータで渡してください。コンテナの再利用を参照してください。

レスポンス形式

コード実行ツールは、操作に応じて2種類の結果を返すことができます。

Bashコマンドのレスポンス

Output
{
  "type": "server_tool_use",
  "id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
  "name": "bash_code_execution",
  "input": {
    "command": "ls -la | head -5"
  }
},
{
  "type": "bash_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
  "content": {
    "type": "bash_code_execution_result",
    "stdout": "total 24\ndrwxr-xr-x 2 user user 4096 Jan 1 12:00 .\ndrwxr-xr-x 3 user user 4096 Jan 1 11:00 ..\n-rw-r--r-- 1 user user  220 Jan 1 12:00 data.csv\n-rw-r--r-- 1 user user  180 Jan 1 12:00 config.json",
    "stderr": "",
    "return_code": 0,
    "content": []
  }
}

ファイル操作のレスポンス

ファイルの表示:

Output
{
  "type": "server_tool_use",
  "id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
  "name": "text_editor_code_execution",
  "input": {
    "command": "view",
    "path": "config.json"
  }
},
{
  "type": "text_editor_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
  "content": {
    "type": "text_editor_code_execution_view_result",
    "file_type": "text",
    "content": "{\n  \"setting\": \"value\",\n  \"debug\": true\n}",
    "num_lines": 4,
    "start_line": 1,
    "total_lines": 4
  }
}

ファイルの作成:

Output
{
  "type": "server_tool_use",
  "id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
  "name": "text_editor_code_execution",
  "input": {
    "command": "create",
    "path": "new_file.txt",
    "file_text": "Hello, World!"
  }
},
{
  "type": "text_editor_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
  "content": {
    "type": "text_editor_code_execution_create_result",
    "is_file_update": false
  }
}

ファイルの編集(str_replace):

Output
{
  "type": "server_tool_use",
  "id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
  "name": "text_editor_code_execution",
  "input": {
    "command": "str_replace",
    "path": "config.json",
    "old_str": "\"debug\": true",
    "new_str": "\"debug\": false"
  }
},
{
  "type": "text_editor_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
  "content": {
    "type": "text_editor_code_execution_str_replace_result",
    "old_start": 3,
    "old_lines": 1,
    "new_start": 3,
    "new_lines": 1,
    "lines": ["-  \"debug\": true", "+  \"debug\": false"]
  }
}

結果

Bashコマンドの結果(bash_code_execution_result)には以下が含まれます。

  • stdout:実行成功時の出力
  • stderr:実行失敗時のエラーメッセージ
  • return_code:成功時は0、失敗時はゼロ以外
  • content:コマンドが$OUTPUT_DIRに残した各ファイルのエントリを含むリスト(生成されたファイルのキャプチャ方法を参照)。各エントリには、Files APIでファイルを取得するためのfile_idが含まれます

ファイル操作の結果には、それぞれ独自のフィールドがあります。

  • 表示(text_editor_code_execution_view_result):file_type、content、num_lines、start_line、total_lines
  • 作成(text_editor_code_execution_create_result):is_file_update(ファイルがすでに存在していたかどうか)
  • 編集(text_editor_code_execution_str_replace_result):old_start、old_lines、new_start、new_lines、lines(diff形式)

エラー

各ツールタイプは、固有のエラーを返すことがあります。

共通エラー(すべてのツール):

Output
{
  "type": "bash_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01VfmxgZ46TiHbmXgy928hQR",
  "content": {
    "type": "bash_code_execution_tool_result_error",
    "error_code": "unavailable"
  }
}

ツールタイプ別のエラーコード:

ツールエラーコード説明
すべてのツールunavailableツールが一時的に利用できません
すべてのツールexecution_time_exceededツール呼び出しが最大実行時間を超えました
すべてのツールinvalid_tool_inputツールに無効なパラメータが指定されました
すべてのツールtoo_many_requestsツール使用のレート制限を超えました
bashoutput_file_too_largeコマンド出力が最大サイズを超えました
text_editorfile_not_foundファイルが存在しません(表示/編集操作の場合)

期限切れのコンテナは再利用できません。期限切れのコンテナを参照するリクエストは、コンテナを復元する代わりにエラーを返します。新しいコンテナを取得するには、containerパラメータを指定せずにリクエストを再送信してください。

pause_turn停止理由

レスポンスにはpause_turn停止理由が含まれる場合があります。これは、APIが長時間実行されているターンを一時停止したことを示します。 Claudeにターンを続行させるには、後続のリクエストでレスポンスをそのまま返すことができます。会話を中断したい場合は、 コンテンツを変更することもできます。

コンテナ

コード実行ツールは、コード実行専用に設計された安全なコンテナ化環境で実行され、特にPythonに重点が置かれています。

ランタイム環境

  • Pythonバージョン: 3.11
  • オペレーティングシステム: Linuxベースのコンテナ
  • アーキテクチャ: x86_64(AMD64)

リソース制限

  • メモリ: 5 GiB RAM
  • ディスク容量: 5 GiBのワークスペースストレージ
  • CPU: 1 CPU
  • 実行時間: 最大実行時間を超えて実行されたツール呼び出しは、execution_time_exceededエラーを返します。プログラムによるツール呼び出しでは、各REPLセルにも90秒の実時間制限があります

ネットワークとセキュリティ

  • インターネットアクセス: セキュリティのため完全に無効化されています
  • 外部接続: アウトバウンドのネットワークリクエストは許可されていません
  • サンドボックスの分離: ホストシステムおよび他のコンテナから完全に分離されています
  • ファイルアクセス: ワークスペースディレクトリのみに制限されています
  • ワークスペースのスコープ: Files APIと同様に、コンテナはリクエストのワークスペースにスコープされます
  • 有効期限: コンテナは作成から30日後に期限切れになります

プリインストールされたライブラリ

サンドボックス化されたPython環境には、以下のよく使用されるライブラリが含まれています。

  • データサイエンス: pandas、numpy、scipy、scikit-learn、statsmodels
  • 可視化: matplotlib、seaborn
  • ファイル処理: pyarrow、openpyxl、xlsxwriter、xlrd、pillow、python-pptx、python-docx、pypdf、pdfplumber、pypdfium2、pdf2image、pdfkit、tabula-py、reportlab[pycairo]、Img2pdf
  • 数学と計算: sympy、mpmath
  • ユーティリティ: tqdm、python-dateutil、pytz、joblib

コンテナには、unzip、unrar、7zip、bc、rg(ripgrep)、fd、sqliteなどのコマンドラインツールも含まれています。

コンテナにはインターネットアクセスがないため、Claudeは実行時に追加のパッケージをダウンロードまたはインストールできません。利用できるのはプリインストールされたライブラリのみです。

コンテナの再利用

以前のレスポンスのコンテナIDを指定することで、複数のAPIリクエストにわたって既存のコンテナを再利用できます。 これにより、リクエスト間で作成したファイルを保持できます。code_execution_20260120以降とプログラムによるツール呼び出しを使用すると、Pythonインタープリターの状態も永続化されます。

コンテナは作成から30日後に期限切れになります。約5分間操作がないとコンテナはチェックポイント化され、30日の期間内にそのIDを指定してリクエストを送信すると復元されます。レスポンスのcontainerオブジェクト内のexpires_atタイムスタンプは、より短いローリング値であり、30日の制限を示すものではありません。期限切れになったコンテナは再利用できません。新しいコンテナを取得するには、containerパラメータを指定せずにリクエストを再送信してください。

例

client = anthropic.Anthropic()

# 最初のリクエスト:新しいコンテナ内にランダムな数値を含むファイルを作成します
response1 = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Write a file with a random number and save it to '/tmp/number.txt'",
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

# 2回目のリクエスト:Claude が同じコンテナを再利用できるよう、コンテナIDを渡します
response2 = client.messages.create(
    container=response1.container.id,
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Read the number from '/tmp/number.txt' and calculate its square",
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

print(response2.to_json())

他の実行ツールとコード実行を併用する

コードを実行する他のクライアント提供ツール(BashツールやカスタムREPLなど)と一緒にコード実行を提供する場合、Claudeはマルチコンピューター環境で動作することになります。コード実行ツールはAnthropicのサンドボックス化されたコンテナで実行される一方、クライアント提供ツールはユーザーが管理する別の環境で実行されます。Claudeはこれらの環境を混同することがあり、誤ったツールを使用しようとしたり、環境間で状態が共有されていると想定したりする場合があります。

これを避けるには、違いを明確にする指示を「system prompt」(システムプロンプト)に追加してください。

When multiple code execution environments are available, be aware that:
- Variables, files, and state do NOT persist between different execution environments
- Use the code_execution tool for general-purpose computation in Anthropic's sandboxed environment
- Use client-provided execution tools (e.g., bash) when you need access to the user's local system, files, or data
- If you need to pass results between environments, explicitly include outputs in subsequent tool calls rather than assuming shared state

これは、コード実行を自動的に有効にするウェブ検索やウェブフェッチとコード実行を組み合わせる場合に特に重要です。アプリケーションがすでにクライアント側のシェルツールを提供している場合、自動的なコード実行によって2つ目の実行環境が作成されるため、Claudeはそれらを区別する必要があります。

Claudeがコード実行と並行してクライアントツールのいずれかを呼び出すと、APIはコード実行の呼び出しを結果なしで返します。結果は、クライアントツールのtool_resultブロックを送り返した後の、後続のレスポンスで届きます。

ストリーミング

「streaming」(ストリーミング)を有効にすると("stream": true)、コード実行イベントが発生するたびに受信できます。サブツールの入力はinput_json_deltaイベントとしてストリーミングされ、各結果ブロックは単一のcontent_block_startイベントでまとめて届きます。

event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "bash_code_execution"}}

// Tool input streamed as partial JSON
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"command\": \"python analyze.py\"}"}}

// Pause while the command runs

// Execution result delivered as a complete block
event: content_block_start
data: {"type": "content_block_start", "index": 2, "content_block": {"type": "bash_code_execution_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": {"type": "bash_code_execution_result", "stdout": "   A  B  C\n0  1  2  3\n1  4  5  6", "stderr": "", "return_code": 0, "content": []}}}

バッチリクエスト

コード実行ツールはMessages Batches APIに含めることができます。Messages Batches APIを通じたコード実行ツールの呼び出しは、通常のMessages APIリクエストと同じ料金です。

使用量と料金

コード実行は、web searchまたはweb fetchと併用する場合は無料です。 APIリクエストに web_search_20260209(またはそれ以降)もしくは web_fetch_20260209(またはそれ以降)が含まれている場合、標準の入力トークンおよび出力トークンのコスト以外に、コード実行ツールの呼び出しに対する追加料金は発生しません。

これらのツールなしで使用する場合、コード実行は実行時間に基づいて課金され、トークン使用量とは別に追跡されます。

  • 実行時間の最小単位は5分です
  • 各組織には、毎月1,550時間の無料使用枠が付与されます
  • 1,550時間を超える追加使用分は、コンテナごとに1時間あたり$0.05 USDで課金されます
  • リクエストにファイルが含まれている場合、ファイルはコンテナに事前にロードされるため、ツールが呼び出されなくても実行時間が課金されます

コード実行の使用量はレスポンス内で追跡されます。

{
  "usage": {
    "input_tokens": 105,
    "output_tokens": 239,
    "server_tool_use": {
      "code_execution_requests": 1
    }
  }
}

最新のツールバージョンへのアップグレード

最新のツールバージョンはcode_execution_20260521です。現在の3つのバージョン間で移行するには、リクエスト内のtype文字列を更新してください。3つすべてがレスポンス形式に記載されたレスポンスブロックを返します。各バージョンで追加される機能についてはツールバージョンを、それらをサポートするモデルについては互換性を参照してください。

このセクションの残りの部分では、従来のPython専用のcode_execution_20250522から現在のツールバージョンへの移行について説明します。

変更点

コンポーネント従来現在
ベータヘッダーcode-execution-2025-05-22不要
ツールタイプcode_execution_20250522code_execution_20250825以降
機能PythonのみBashコマンド、ファイル操作
レスポンスタイプcode_execution_resultbash_code_execution_result、text_editor_code_execution_*_result

後方互換性

  • 既存のPythonコード実行はすべて、これまでとまったく同じように動作し続けます
  • 既存のPython専用ワークフローに変更は必要ありません

アップグレード手順

アップグレードするには、APIリクエスト内のツールタイプを更新します。

- "type": "code_execution_20250522"
+ "type": "code_execution_20250825"

レスポンス処理を確認する(プログラムでレスポンスを解析している場合):

  • APIは、Python実行のレスポンスに対して以前のブロックを送信しなくなりました
  • 代わりに、APIはBashおよびファイル操作用の新しいレスポンスタイプを送信します(レスポンス形式を参照)

データ保持

コード実行は、サーバー側のサンドボックスコンテナで実行されます。実行アーティファクト、アップロードされたファイル、出力を含むコンテナデータは、最大30日間保持されます。この保持は、コンテナ環境内で処理されるすべてのデータに適用されます。コード実行がFiles APIに作成したファイル(client.files.download()で取得可能)は、明示的に削除されるまで保持されます。

すべての機能における「Zero Data Retention」(ゼロデータ保持)、すなわちZDRの適格性については、APIとデータ保持を参照してください。

次のステップ

高速な実行モデルと、生成の途中で戦略的なガイダンスを提供する より高度な知能を持つアドバイザーモデルを組み合わせます。

コード実行コンテナ内で実行されるコードから、独自のツールを呼び出します。

分析用のファイルをアップロードし、コード実行が作成したファイルをダウンロードします。

Agent Skillsを使用して、API経由でClaudeの機能を拡張する方法を学びます。

Compatibility

Supported models
  • Fable 5 and 5.1
  • Mythos 5 and 5.1
  • Opus 4.5, 4.6, 4.7, 4.8, 5, and 5.5
  • Sonnet 4.5, 4.6, 5, and 5.5
  • Haiku 4.5
Supported platforms
  • Claude API
  • Claude Platform on AWS
  • Microsoft Foundry1
  1. Microsoft Foundryでは、コード実行にはHosted on Anthropicデプロイメントが必要です。 ↩
  • サポートされているすべてのモデルは、3つのツールバージョンすべてを受け付けます。Claude Haiku 4.5では、プログラムによるツール呼び出しとREPL状態の永続化が利用できないため、新しいバージョンはcode_execution_20250825と同様に動作します。
  • Claude Mythos Previewでは、コード実行はClaude APIおよびMicrosoft Foundryでサポートされています。

Was this page helpful?