AIエージェント入門

Claude APIコード実行が無料に|活用パターン5選【2026年最新】

Claude APIコード実行が無料に|活用パターン5選【2026年最新】

この記事の結論

Claude APIのコード実行ツールがWeb Search併用時に無料になりました。データ分析・スクレイピング・計算検証・ファイル変換・テスト自動化の5パターンをコード付きで解説。

「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)、サマリー統計のみ、など)

なぜ重要か: コード実行は無料でも、生成されたコンテンツのトークン消費は課金対象です。大量データを扱う場合はサンプリングやサマリーを心がけましょう。

参考・出典

まとめ:今日から始める3つのアクション

  1. 今日やること: web_search_20260209code_execution_20260120を組み合わせた簡単なスクリプトを試す。まずパターン1(リアルタイムデータ分析)から始めると感触をつかみやすい
  2. 今週中: 既存の定型データ処理(CSV整形、レポート生成)をコード実行エージェントに置き換えてコスト削減効果を測定する
  3. 今月中: パターン5(テスト自動実行)を開発フローに組み込んで、コードレビューのボトルネックを解消する

あわせて読みたい:


著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー10万人超。
100社以上の企業向けAI研修・導入支援。著書累計3万部突破。
SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。

ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年4月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事