できること
サンドボックスでのコード実行
Claude がサンドボックス化されたコンテナの中で Bash コマンドを実行し、ファイルの作成・表示・編集を行えます。ツールを渡すと、bash_code_execution と text_editor_code_execution の 2 つのサブツールが Claude に与えられます。
データ分析とファイル処理
Files API でアップロードした CSV、Excel、JSON、XML、画像、テキストなどのファイルを Python 環境で処理できます。pandas、numpy、scipy、scikit-learn、matplotlib、seaborn などのライブラリがあらかじめ入っています。
コンテナと状態の再利用
前の応答のコンテナ ID を渡すと、同じコンテナを複数のリクエストで使い続け、作成したファイルを引き継げます。code_execution_20260120 以降とプログラムによるツール呼び出しの組み合わせでは、Python インタプリタの状態も引き継がれます。
機能解説
概要
データ分析、可視化、複雑な計算、アップロードしたファイルの処理を、API の会話の中で直接行えます。コマンドはすべて API のサーバー側で実行され、結果は同じリクエストの中で Claude に返されます。
仕組みと実行環境
API はすべてのコマンドをサーバー側で実行し、同じリクエストの中で結果を Claude に返します。そのため、利用者がコードを実行したり tool_result ブロックを送り返したりする必要はありません。ただし、Claude が利用者側のクライアントツールも呼び出す場合は例外です。
- 処理はすべてサンドボックス化されたコンテナで実行され、インターネットへのアクセスはセキュリティのため完全に無効です。実行時にパッケージをダウンロードできず、使えるのはあらかじめ入っているライブラリだけです。
- Bash コマンドの結果には
stdout、stderr、return_codeと、$OUTPUT_DIRに残った各ファイルのfile_idを含むcontentリストが入ります。 - ストリーミングを有効にすると、コード実行のイベントを発生順に受け取れます。サブツールの入力は
input_json_deltaイベントとして流れ、各結果ブロックは 1 つのcontent_block_startイベントでまとめて届きます。 - Messages Batches API のリクエストにも Code execution tool を含められます。
コードを実行するかどうか判断が分かれる依頼では、「run code to verify this」のように明示的にコードの実行を依頼します。
ツールのバージョン
ツールのバージョンは type の文字列で選びます。現在の 3 つのバージョンの間は、リクエストの type を書き換えるだけで切り替えられ、どのバージョンも anthropic-beta ヘッダーは不要です。
code_execution_20260120: REPL の状態保持と、サンドボックス内からのプログラムによるツール呼び出し (programmatic tool calling) を追加したバージョンです。プログラムによるツール呼び出しに必要な最小バージョンです。Claude Fable 5、Claude Mythos 5、Claude Opus 4.5 以降、Claude Sonnet 4.5 以降のモデルで利用できます。code_execution_20260521:code_execution_20260120と同じランタイムです。違いは、プログラムによるツール呼び出しでの Python セルごとの実行時間上限 90 秒をツール説明で Claude に伝える点で、Claude は長時間かかるセルの時間配分を見積もれます。
モデルがこのツールを受け付けるかは、リクエストを送る前に Models API の capabilities.server_tools.code_execution.supported の値で確認します。最上位の capabilities.code_execution の値はこの確認に使いません。
旧バージョンの code_execution_20250522 から移行する場合は、API リクエストのツールの type を code_execution_20250825 に更新します。Bash とファイル操作については以前のブロックに代わる新しい応答の型が返るため、応答をプログラムで解析している場合は処理を見直します。
コンテナと生成ファイルの扱い
各リクエストは、前の応答のコンテナ ID を渡さない限り新しいコンテナで実行されます。同じコンテナを使い続けるには、応答に含まれるコンテナの id を、リクエストの最上位の container パラメーターに渡します。
- コンテナは作成から 30 日で期限が切れます。約 5 分操作が無いとチェックポイントが取られ、30 日以内にその ID を付けてリクエストを送ると復元されます。
- 期限切れのコンテナは再利用できず、参照するとエラーが返ります。
containerパラメーターを付けずにリクエストを送り直すと、新しいコンテナが割り当てられます。 - 応答の停止理由が
pause_turnの場合は、その応答をそのまま次のリクエストに渡すと Claude がターンを続けます。このとき応答のコンテナ ID も一緒に送ります。送らないと新しいコンテナで実行され、そのターンの前半に作られたファイルは失われます。
Claude が出力ディレクトリに保存したファイルは、各ファイルの ID がツールの結果に含まれ、Files API でダウンロードできます。結果として返るのは $OUTPUT_DIR の最上位にあるファイルだけで、それ以外の場所に書かれたファイルはコンテナに残り、返されません。アプリケーションがファイルの受け取りを前提にしている場合は、ファイルを $OUTPUT_DIR にコピーし、同じコマンドでそのディレクトリを一覧表示するよう Claude に指示します。ls の出力で取り込みを確かめられます。
管理者・導入時に確認したい点
- 実行の生成物、アップロードしたファイル、出力を含むコンテナのデータは、最大 30 日間保持されます。
- コンテナからインターネットへのアクセスはできません。
- Claude API では、サンドボックスで Claude が作成した対応形式の画像・動画・音声ファイルを Files API でダウンロードすると、C2PA の Content Credentials が付いています。テキストファイル、PDF、オフィス文書は署名の対象形式ではないため、署名されません。
- 利用者側で用意した実行ツールと併用する場合は、両者の実行環境の違いをシステムプロンプトで明確に指示します。
使い方
自分のファイルをアップロードして分析させる場合の流れです。
- Files API を使ってファイルをアップロードします。
- メッセージの中で、
container_uploadコンテンツブロックを使ってそのファイルを参照します。 - API リクエストに Code execution tool を含めます。ツール定義では
typeにツールのバージョン (例:code_execution_20250825) を、nameにcode_executionを指定し、追加のパラメーターは不要です。
利用シーン
CSV や Excel のファイルをアップロードし、pandas などで集計・分析させる場面に使えます。
分析結果からグラフなどの可視化を作り、生成ファイルとして受け取る場面に向いています。
web search や web fetch のツールと組み合わせ、取得した結果をコンテキストに入れる前にコード実行環境の中で絞り込む場面に使えます。
Messages Batches API を使い、コード実行を含むリクエストをまとめて処理する場面に使えます。
ChatGPT・OpenAI の対応する機能
比較の単位となる業務: API 経由でのサンドボックス内コード実行とプログラムによるツール呼び出し
Code execution tool では、API がコマンドをサーバー側のサンドボックス化されたコンテナで実行し、同じリクエストの中で結果を Claude に返します。作業の継続は、前の応答のコンテナ ID を次のリクエストに渡してコンテナを再利用する形です。
Agents API (パブリックベータ) では、エージェントを OpenAI ホストのサンドボックスで実行するか、自社インフラまたは対応プロバイダーのサンドボックスを接続して実行できます。ターンをまたぐ作業の継続には永続的なセッションを使います。
これまでの変更
Python、TypeScript、Go、Java、Ruby、PHP、C# の各 SDK が
code_execution_20260120に対応しました。ツールの type をcode_execution_20260120に設定すれば使え、ベータヘッダーは不要です。code_execution_20260521に対応しました。セルごとの実行時間上限 90 秒をツール説明で示すバージョンです。