【AI】Claude APIのCode Execution Toolを使う方法

当ページのリンクには広告が含まれています。
この記事で解決できる悩み
いずみ

こんな悩みを解決できる記事を書きました!

僕は現役フリーランスエンジニア(歴年)で、資格は個保有しています。

Claude APIにコードを書かせるだけでなく、実行までさせたい」と考えていませんか?

Claudeが生成したPythonコードを、自分のサーバーやローカル環境でわざわざ動かす手間をかけたくない方へ。

Claude APIのCode Execution Toolを使うと、Anthropic側のサンドボックスでコードがそのまま実行され、結果だけが返ってくるようになります。

いずみ

tool_resultを自前で組み立てて返す必要がないので、実装はかなりシンプルです。

ということで、本記事ではClaude APIのCode Execution Toolを使う方法を解説します。

いずみ

すぐ読み終わるので、ぜひ最後までご覧ください。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
執筆者/監修者
  • フリーランスエンジニア(保有資格個、企業と直接契約
  • ブログ・アフィリエイト歴7年(2018年〜)
  • ブランドせどりで月利50万円⇨脱サラ
  • 投資(仮想通貨・FX)歴7年(2018年〜)
  • X(旧Twitter)フォロワー約1,900人
  • 運営者情報はこちら
いずみです
目次

【AI】Claude APIのCode Execution Toolを使う方法

早速、Claude APIのCode Execution Toolを使う方法を見ていきます。

Code Execution Toolの仕組み

Code Execution Toolは、Anthropicが管理する隔離コンテナ上でClaudeがPythonコードとbashコマンドを実行できるサーバーサイドツールです。

リクエストのtools配列にツール定義を追加すると、Claudeが必要と判断したタイミングで自動的にコードを書き、コンテナ内で実行し、実行結果を同じレスポンスの中に含めて返します。

開発者がtool_resultブロックを組み立てて返す一般的なツール利用のループは不要で、API側だけで処理が完結します。

コンテナにはPython実行用とファイル操作用のサブツールが用意されており、ファイルの作成・閲覧・編集もコード実行と組み合わせて行えます。

いずみ

コードを実行するエージェントを、自前のサンドボックスなしで作れるイメージですね。

対応モデルと必要な準備

Code Execution Toolは、Claude Opus 5・Sonnet 5・Fable 5をはじめ、Opus 4.5以降・Sonnet 4.5以降・Haiku 4.5で利用できます。

現行のツールバージョンは、いずれもanthropic-betaヘッダーなしで呼び出せます。

Pythonから使う場合、必要な準備は公式SDKのインストールとAPIキーの設定だけです。

STEP
anthropicパッケージをインストールする

公式のPython SDKを入れます。

pip install anthropic
STEP
APIキーを環境変数に設定する

発行済みのAPIキーを環境変数ANTHROPIC_API_KEYに入れておくと、SDKが自動で読み込みます。

export ANTHROPIC_API_KEY="sk-ant-..."
いずみ

キーはコードへ直接書かず、環境変数か.envで管理するのが基本です。

基本的なコード実行

最小構成のリクエストは、tools配列にcode_executionツールを1つ追加するだけです。

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "[2, 4, 6, 8, 10]の平均と標準偏差をコードを実行して求めて",
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

print(response.content)

ツール定義のtypeは使うバージョンを表し、nameはcode_execution固定です。

上の例では平均と標準偏差の計算をClaudeに依頼しており、Claudeがコンテナ内でPythonを実行して数値を返します。

いずみ

「計算して」「実行して」と明示すると、コード実行が選ばれやすくなります。

レスポンスの読み方

レスポンスのcontentには、Claudeが実行したコマンドを表すserver_tool_useブロックと、実行結果を表すbash_code_execution_tool_resultブロックが交互に並び、最後にClaudeのテキスト回答が入ります。

bash_code_execution_tool_result内のbash_code_execution_resultには、標準出力のstdout、エラー出力のstderr、終了コードのreturn_codeが含まれます。

コマンドが$OUTPUT_DIRにファイルを残した場合、contentリストに各ファイルのfile_idが入ります。

for block in response.content:
    if block.type == "text":
        print(block.text)
    elif block.type == "server_tool_use":
        print("実行:", block.input)
    elif block.type == "bash_code_execution_tool_result":
        result = block.content
        if result.type == "bash_code_execution_result":
            print("stdout:", result.stdout)
            print("return_code:", result.return_code)
いずみ

return_codeが0以外なら、stderrを見れば失敗理由がわかります。

コンテナを再利用して状態を引き継ぐ

リクエストごとに新しいコンテナが割り当てられ、作成したファイルは次のリクエストには残りません。

レスポンスのトップレベルにあるcontainerオブジェクトのidを、次のリクエストのcontainer引数へ渡すと、同じコンテナを使い続けられます。

code_execution_20260120以降では、ファイルだけでなくPythonインタプリタの変数などのREPL状態も保持されます。

res1 = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    messages=[{"role": "user", "content": "乱数を1つ作って /tmp/n.txt に保存して"}],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

res2 = client.messages.create(
    container=res1.container.id,
    model="claude-opus-5",
    max_tokens=4096,
    messages=[{"role": "user", "content": "/tmp/n.txt の数値を読んで2乗して"}],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

コンテナは作成から30日で失効し、約5分アクセスがないとチェックポイントされて、次のリクエストで復元されます。

いずみ

データ分析を何回かに分けて進めたいときに便利です。

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

手元のCSVやExcelを分析させたい場合は、Files APIでファイルをアップロードし、メッセージ内のcontainer_uploadブロックでfile_idを指定します。

from pathlib import Path

file_object = client.files.upload(file=Path("sales.csv"))

response = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "アップロードしたCSVを月次で集計してグラフを作って"},
                {"type": "container_upload", "file_id": file_object.id},
            ],
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

Claudeが生成した画像やレポートは、$OUTPUT_DIRに保存されたものがfile_id付きで返るので、Files APIのダウンロードで取得できます。

for block in response.content:
    if block.type == "bash_code_execution_tool_result":
        result = block.content
        if result.type == "bash_code_execution_result":
            for output in result.content:
                meta = client.files.retrieve_metadata(output.file_id)
                data = client.files.download(output.file_id)
                data.write_to_file(meta.filename)

サンドボックスの制約

コンテナには次のような制約があります。

  • Pythonは3.11、OSはLinux(x86_64)
  • メモリ5GiB、ディスク5GiB、CPU1コア
  • インターネット接続は無効で、実行時のパッケージ追加インストールは不可
  • 使えるのはpandas・numpy・scipy・scikit-learn・matplotlib・openpyxl・pillow・python-docxなどの事前インストール済みライブラリのみ
  • 実行できるのはClaude API・Claude Platform on AWS・Microsoft Foundryで、Amazon BedrockとGoogle Cloudは非対応
いずみ

外部APIを叩く処理はサンドボックス内では動かない点に注意です。

料金の考え方

web_search_20260209やweb_fetch_20260209と一緒にリクエストへ含めた場合、コード実行分の追加課金はありません。

単独で使う場合は実行時間で課金され、組織ごとに月1,550時間の無料枠があり、超過分はコンテナ1台あたり1時間0.05ドルです。

実行時間は最低5分としてカウントされ、ファイルを添付したリクエストはツールが呼ばれなくてもコンテナへ読み込むため課金対象になります。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式

【厳選】フリーランスエンジニアにおすすめなエージェント3選

フリーランスエンジニアになるにはエージェントから案件をもらう必要があります。

僕が実際に利用しているおすすめエージェントを紹介しますね。

いずみ

エージェントは必ず複数登録してください。

担当者によっては「全然案件紹介してくれない…」みたいなこともあるので…

僕は実際に5つのエージェントを使い回していますよ。

フリーランスを始めるなら「

案件数マージン率単価
約88,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 業界最大級の案件数。
  • 業界トップクラスの高単価報酬、低マージン(平均年収862万円)。
  • 案件参画中のフォローの充実。

※詳細は「【業界最大手】レバテックフリーランスとは?メリットや利用手順を解説!」を参照。

は業界最大手のフリーランスエージェントです。

とにかく案件数が多いので、とりあえず登録しておけば間違いないエージェントです!

いずみ

僕もはじめてフリーランスの案件を貰ったのはです。

保有している案件数が多いので、業務経験がなくても何かしらの案件は紹介してもらえますよ(僕はJavaの経験3年でも案件を貰えました)。

手厚い保障を重視したいなら「

案件数マージン率単価
約10,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 手厚い保障で正社員並みの安心感。
  • 還元率60%超え&単価公開でクリアな契約。
  • 給与保障制度(審査あり)。

は手厚い保障が特徴のフリーランスエージェントです。

フリーランスを目指しているけど不安な方や保障を重視したい方におすすめです。

いずみ

僕も何度か案件を紹介してもらいました。

自分のスキルに合った案件を紹介してもらえましたし、電話のやり取りも非常に丁寧でした。

週2〜3日の案件探しなら「

案件数マージン率単価
約5,000件非公開
初心者福利厚生申し込み
経験者向け無料
Good Point
  • IT案件に特化したフリーランスエージェント。
  • 週2〜3日の案件が豊富。
  • リモート案件が多く、直エンドなので単価も高い。

※詳細は「【週2・3案件】ITプロパートナーズとは?メリットや利用手順を解説!」を参照。

はIT案件に特化したフリーランスエージェントです。

週2〜3日から参画できる案件が豊富なので、起業したい人にもおすすめです。

いずみ

週2〜3日の案件はある程度スキルがないと紹介してもらえない印象です。

とはいえ、週5の案件ももちろんありますし、僕が利用した時は迅速・丁寧に対応していただきました!

よくある質問

Code Execution Toolにベータヘッダーは必要ですか?

現行の3バージョン(code_execution_20250825 / code_execution_20260120 / code_execution_20260521)は、いずれもanthropic-betaヘッダーなしで利用できます。

REPLの状態保持やプログラマティックなツール呼び出しが必要な場合はcode_execution_20260120以降を指定します。

サンドボックスから外部APIを呼び出せますか?

コンテナはインターネット接続が無効なので、外部への通信や実行時のパッケージインストールはできません。

使えるのは事前インストール済みのライブラリと、アップロードしたファイルだけです。

長い処理でレスポンスが途中で止まりました。

処理が長引くと、stop_reasonがpause_turnになってターンが一時停止することがあります。

返ってきたレスポンスの内容をそのまま次のリクエストのメッセージへ渡せば、Claudeが続きを実行します。

Amazon BedrockやGoogle Cloudでも使えますか?

Code Execution Toolが使えるのはClaude API・Claude Platform on AWS・Microsoft Foundryです。

Amazon BedrockとGoogle Cloudでは利用できないため、コード実行が必要なワークフローはClaude API側で組む必要があります。

まとめ

今回は、Claude APIのCode Execution Toolを使う方法について解説しました。

以下が本記事のまとめになります。

まとめ
  • Code Execution Toolはtools配列に定義を1つ足すだけで、Claudeがサンドボックスでコードを実行する。
  • ツール定義のtypeでバージョンを選び、nameはcode_execution固定。ベータヘッダーは不要。
  • レスポンスはserver_tool_useとbash_code_execution_tool_resultが交互に並び、stdout・stderr・return_codeで結果を受け取る。
  • containerのidを次のリクエストへ渡すと、ファイルやREPLの状態を引き継げる。
まとめ
いずみ

最後までお読みいただき、ありがとうございました!

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
  • クソおすすめ本
¥4,480 (2024/06/01 23:28時点 | Amazon調べ)
\楽天ポイント4倍セール!/
楽天市場
いずみ

海外のエンジニアがどういった思考で働いているかが理解できます。

海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。

この記事が気に入ったら
フォローしてね!

シェアしてね!
  • URLをコピーしました!
目次