「Claude APIのコード実行、有料なのかと思って使うのをためらっていました」
実は2026年から、Web SearchまたはWeb Fetchツールと組み合わせて使う場合、コード実行ツールの追加料金はかかりません。標準の入出力トークン料金のみです。これはAnthropicが公式ドキュメントで明記している仕様です(Code execution tool — Claude API Docs)。
要するに、調査しながらコードを書くタスク、リアルタイムデータを取得して計算するタスクでは、コード実行が実質的にタダで使えます。この記事では、この仕組みを活かした5つの実践パターンをコード付きで解説します。
Claude APIのコード実行ツール(code_execution_20260120)は、セキュアなサンドボックス環境でPythonとBashコマンドを実行します。ファイルの作成・読み書き、ライブラリの利用、計算処理が可能です。
| 項目 | code_execution_20250825 | code_execution_20260120 |
|---|---|---|
| 対応モデル | 全モデル(Haiku含む) | Opus 4.5+ / Sonnet 4.5+のみ |
| REPL状態永続化 | なし | あり(会話内で変数が持続) |
| プログラムからのツール呼び出し | なし | あり(コード内からツールを呼べる) |
| Web Search無料化 | 対象 | 対象 |
| 料金(単独使用時) | 通常料金 | 通常料金 |
| 料金(Web Search/Fetch併用時) | 無料 | 無料 |
最新バージョン(code_execution_20260120)はREPL状態が会話内で持続するため、「Step 1でデータを取得し、Step 2で分析し、Step 3でグラフを描く」といった複数ステップの作業を1会話内で完結できます。
AIエージェントの基本概念についてはAIエージェント構築完全ガイドも参照してください。
パターン1:リアルタイムデータ分析
Web Searchで最新の株価・経済指標・ニュースを取得し、Pythonで即座に分析するパターンです。Web Search + コード実行の組み合わせなので追加料金なし。
# 動作環境: Python 3.11+, anthropic>=0.40.0
# 必要パッケージ: pip install anthropic
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
import anthropic
client = anthropic.Anthropic()
# Web Search + コード実行を同時に有効化(これで実行料金が無料になる)
tools = [
{"type": "web_search_20260209"}, # このツールを含めることでコード実行が無料に
{"type": "code_execution_20260120"}
]
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
tools=tools,
messages=[{
"role": "user",
"content": (
"2026年4月時点のAI関連の主要ニュースを検索し、"
"Pythonで感情分析(ポジティブ/ネガティブ/ニュートラルの割合)を実行して"
"結果をテキストで表示してください。"
)
}]
)
# ツール使用の結果を確認
for block in response.content:
if hasattr(block, 'text'):
print(block.text)
ポイント: web_search_20260209またはweb_fetch_20260209をtoolsリストに含めるだけで、コード実行が無料になります。どちらか一方を含めるだけでOK。
パターン2:Webスクレイピング+データ整形
Web Fetchで取得したページのHTMLをPythonで解析し、構造化データに変換するパターン。情報収集の自動化に実用的です。
# Web Fetch + コード実行(無料の組み合わせ)でスクレイピングエージェント
# 必要パッケージ: pip install anthropic
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
import anthropic
import json
client = anthropic.Anthropic()
def scrape_and_structure(url: str, extraction_schema: dict) -> dict:
"""
指定URLのコンテンツを取得し、スキーマに従ってデータを抽出する
Args:
url: スクレイピング対象URL
extraction_schema: 抽出したいデータの構造(例: {"title": "str", "price": "float"})
Returns:
抽出されたデータ(dict)
"""
tools = [
{"type": "web_fetch_20260209"}, # Fetchを含めてコード実行を無料化
{"type": "code_execution_20260120"}
]
schema_str = json.dumps(extraction_schema, ensure_ascii=False, indent=2)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=2048,
tools=tools,
messages=[{
"role": "user",
"content": (
f"このURL: {url} のコンテンツを取得し、"
f"以下のスキーマに従ってデータを抽出してPythonのdictとして出力してください:n"
f"{schema_str}nn"
"Pythonコードを書いて実行し、最終結果をJSONで出力してください。"
)
}]
)
# レスポンスからJSONデータを抽出
for block in response.content:
if hasattr(block, 'text') and '{' in block.text:
try:
# JSON部分を抽出してパース
start = block.text.find('{')
end = block.text.rfind('}') + 1
return json.loads(block.text[start:end])
except json.JSONDecodeError:
pass
return {}
# 使用例
result = scrape_and_structure(
url="https://example-ai-news-site.com/latest",
extraction_schema={
"headline": "str",
"published_date": "str",
"summary": "str",
"tags": "list[str]"
}
)
print(result)
パターン3:計算検証エージェント
財務計算・統計分析・数値シミュレーションを、Webで調べた最新係数を使いながらリアルタイムで検証するパターンです。
# 最新の為替レートや金利をWebで検索し、財務計算を実行するエージェント
# 必要パッケージ: pip install anthropic
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
import anthropic
client = anthropic.Anthropic()
def financial_calculation_agent(query: str) -> str:
"""
財務・統計計算をWebの最新データを使って実行するエージェント
Web Search + コード実行の組み合わせで、
リアルタイムのレートや指数を取得してから計算を実行
"""
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
tools=[
{"type": "web_search_20260209"},
{"type": "code_execution_20260120"}
],
messages=[{
"role": "user",
"content": (
f"以下の計算タスクを実行してください。必要な最新データはWebで検索し、"
f"Pythonで計算して結果を出力してください:nn{query}"
)
}]
)
result_text = ""
for block in response.content:
if hasattr(block, 'text'):
result_text += block.text
return result_text
# 使用例: 為替を調べながら換算計算
result = financial_calculation_agent(
"現在の米ドル/円レートを調べ、100万ドルの投資に対する"
"利回り5%での10年後の将来価値を円建てで計算してください。"
"複利計算式を使い、計算過程も表示してください。"
)
print(result)
パターン4:ファイル変換バッチ処理
CSVやJSONファイルを読み込んで変換・クリーニングするバッチ処理を、Claudeに自律的に実行させるパターンです。
# CSVデータの自動クリーニングと変換エージェント
# 必要パッケージ: pip install anthropic
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
import anthropic
import base64
client = anthropic.Anthropic()
def process_csv_with_claude(csv_content: str, transformation_spec: str) -> str:
"""
CSVデータをClaudeのコード実行環境で変換する
Args:
csv_content: 処理対象のCSV文字列
transformation_spec: 変換仕様の自然言語記述
Returns:
変換後のCSV文字列またはPython実行結果
"""
# コード実行ツール単体(Web Searchなしなので通常料金)
# ※ファイル変換のみならWeb Searchなしでも許容範囲
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
tools=[
{"type": "web_fetch_20260209"}, # Fetchを含めることで実行を無料化
{"type": "code_execution_20260120"}
],
messages=[{
"role": "user",
"content": (
f"以下のCSVデータを処理してください:nn"
f"```csvn{csv_content[:3000]}n```nn"
f"変換仕様:n{transformation_spec}nn"
"Pythonコードを書いて実行し、変換後のCSVを出力してください。"
"pandasを使用可能です。"
)
}]
)
for block in response.content:
if hasattr(block, 'text'):
return block.text
return ""
# 使用例
sample_csv = """name,age,salary,department
Alice Smith,28,450000,Engineering
Bob Johnson,35,,Marketing
Charlie Brown,42,620000,Sales
"""
result = process_csv_with_claude(
csv_content=sample_csv,
transformation_spec=(
"1. 空欄のsalaryは部門平均で補完するn"
"2. 年齢でソートするn"
"3. 給与を万円単位に変換(1万円単位に丸め)n"
"4. 変換後のCSVとサマリー統計を出力する"
)
)
print(result)
パターン5:テスト自動実行エージェント
コードの品質検証やテストケース生成を自動化するパターンです。最新のライブラリドキュメントをWebで調べながらテストを生成します。
# コードのテストケースを自動生成・実行するエージェント
# 必要パッケージ: pip install anthropic
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
import anthropic
client = anthropic.Anthropic()
def auto_test_agent(source_code: str, library_name: str = None) -> str:
"""
ソースコードのテストケースを自動生成して実行する
Web Searchでライブラリの最新仕様を調べながら
pytestスタイルのテストを生成・実行する
"""
extra_context = ""
if library_name:
extra_context = (
f"必要に応じて {library_name} の最新APIドキュメントをWebで調べてください。"
)
response = client.messages.create(
model="claude-opus-4-6", # テスト生成は高精度モデルを推奨
max_tokens=8192,
tools=[
{"type": "web_search_20260209"}, # ライブラリ仕様の調査
{"type": "code_execution_20260120"} # テスト実行
],
messages=[{
"role": "user",
"content": (
f"以下のPythonコードに対してpytestスタイルのテストを生成し、"
f"実際に実行して結果を報告してください。{extra_context}nn"
f"対象コード:n```pythonn{source_code}n```nn"
"正常系・異常系・境界値のテストケースを含めてください。"
"テスト実行後、合格/不合格の件数と失敗した場合の詳細を出力してください。"
)
}]
)
result = []
for block in response.content:
if hasattr(block, 'text'):
result.append(block.text)
return "n".join(result)
# 使用例
sample_function = """
def calculate_discount(price: float, discount_rate: float) -> float:
if discount_rate 1:
raise ValueError(f"discount_rate must be between 0 and 1, got {discount_rate}")
return price * (1 - discount_rate)
"""
test_result = auto_test_agent(
source_code=sample_function,
library_name="pytest"
)
print(test_result)
【要注意】よくある失敗パターンと回避策
失敗1: 無料化の条件を誤解する
❌ コード実行ツール単体でリクエストしたのに「無料だと思っていた」
⭕ web_search_20260209またはweb_fetch_20260209をtoolsに含めた場合のみ無料
なぜ重要か: コード実行単体は通常料金がかかります。無料化は「Web Search / Web Fetch との併用時」という条件が必須です。
失敗2: 古いツールバージョンを指定する
❌ code_execution_20250825のみ使用してREPL状態が引き継がれないと混乱
⭕ 複数ステップの計算・分析にはcode_execution_20260120(Opus 4.5+ / Sonnet 4.5+)を使う
なぜ重要か: 旧バージョンは会話ターン間でPython変数が保持されません。データ分析のように状態を引き継ぎたい場合は新バージョンが必須です。
失敗3: サンドボックスの制限を無視する
❌ ローカルのファイルシステムや社内ネットワークにアクセスしようとする
⭕ サンドボックスはネットワーク分離された独立環境。外部アクセスはWeb Searchツール経由のみ
なぜ重要か: コード実行環境はOSレベルのサンドボックスです。任意のHTTPリクエストはできません。外部データが必要ならweb_fetchツールを使いましょう。
失敗4: トークン消費量を見誤る
❌ 大量の出力(グラフ画像、巨大CSV)を生成して、トークンコストが高騰
⭕ 出力量をコードで制御する(head(100)、サマリー統計のみ、など)
なぜ重要か: コード実行は無料でも、生成されたコンテンツのトークン消費は課金対象です。大量データを扱う場合はサンプリングやサマリーを心がけましょう。
参考・出典
- Code execution tool — Claude API Docs — Anthropic公式ドキュメント(参照日: 2026-04-11)
- Web search tool — Claude API Docs — Anthropic公式ドキュメント(参照日: 2026-04-11)
- Claude Platform Release Notes — Anthropic(参照日: 2026-04-11)
- Claude Code Sandboxing: Network Isolation, File System Controls, and Container Security — TrueFoundry(参照日: 2026-04-11)
まとめ:今日から始める3つのアクション
- 今日やること:
web_search_20260209とcode_execution_20260120を組み合わせた簡単なスクリプトを試す。まずパターン1(リアルタイムデータ分析)から始めると感触をつかみやすい - 今週中: 既存の定型データ処理(CSV整形、レポート生成)をコード実行エージェントに置き換えてコスト削減効果を測定する
- 今月中: パターン5(テスト自動実行)を開発フローに組み込んで、コードレビューのボトルネックを解消する
あわせて読みたい:
- AIエージェント構築完全ガイド — エージェント設計パターンの基礎
- AIエージェントのコスト最適化 — トークン削減5つの戦略
著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー10万人超。
100社以上の企業向けAI研修・導入支援。著書累計3万部突破。
SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。