◉CLAUDE LABEN
●2.1.310 — Bedrock・Vertex・Foundry でも Monitor ツールが使え、ゲートウェイの失敗を修正しました(10/23)●2.1.307 — スリープやキーチェーンロックのあとに MCP が再接続されない問題を修正しました(10/21)。2.1.306 では claude -p の誤表示も解消●SONNET 4.5 — Claude API での提供終了は 11/30、残り36日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●API — 新しい API バージョン 2026-10-21 では temperature・top_p・top_k を渡すと 400 になります●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.310 — Bedrock・Vertex・Foundry でも Monitor ツールが使え、ゲートウェイの失敗を修正しました(10/23)●2.1.307 — スリープやキーチェーンロックのあとに MCP が再接続されない問題を修正しました(10/21)。2.1.306 では claude -p の誤表示も解消●SONNET 4.5 — Claude API での提供終了は 11/30、残り36日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●API — 新しい API バージョン 2026-10-21 では temperature・top_p・top_k を渡すと 400 になります●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/API & SDK
⬡ API & SDK/2026-06-12中級

Claude API の Code Execution ツールに月次の売上CSV集計を任せる — Files API 連携から課金の落とし穴まで

月末に形式の違う売上CSVを突き合わせる作業を、Claude API の Code Execution ツールに任せた実装をまとめます。Files API 連携、コンテナ再利用、5分最小課金やファイルプリロード課金などの注意点を実例ベースで扱います。

claude-api83code-execution3files-api3python22data-analysis

✦ プレミアム記事

月末になると、ダウンロードフォルダが CSV だらけになります。App Store Connect のファイナンシャルレポート、AdMob の推定収益、それからメディエーションで相乗りしている Unity Ads・Liftoff・InMobi のレポート。通貨も期間の区切り方も列名も、見事なくらい揃っていません。

収益の出どころが増えるほど、月末に突き合わせるレポートの種類も増えていきます。長らくこの作業はローカルの pandas スクリプトで回してきたものの、どこかのネットワークがレポート形式を変えるたびに列名参照が外れて落ちる、という小さな修理を繰り返す日々が続いていました。

厄介なのは、その修理が決まって締めの当日に発生することです。落ちてから直すので、原因を追う時間と集計をやり直す時間が、いちばん余裕のない日に重なります。

今年に入ってから、この月次の締め作業を Claude API の Code Execution ツールに任せる形へ改めました。CSV の中身をトークンとして読ませるのではなく、サンドボックスへ「ファイルごと」渡して、向こう側で pandas を走らせる方式です。実装してみると、公式ドキュメントの最小例と実運用との間にはいくつか段差がありました。ファイルを添付しただけで実行時間の課金が始まる仕様や、長い処理の途中で返ってくる pause_turn の扱いはその代表です。動かしたコードと一緒に、この段差の越え方を順に書き残しておきます。

ローカル集計スクリプトの保守をやめた理由

誤解のないように書いておくと、毎朝の定型 KPI 集計までコード実行ツールに置き換えたわけではありません。日次の売上確認は以前から Claude Code で App Store Connect と AdMob の売上を毎朝集計するパイプライン — 壁紙アプリ 4 本で 8 週運用した実装ノートに書いたローカルの仕組みで安定して回っています。形式が安定していて、毎日同じ問いに答える処理は、普通のスクリプトの方が速くて安いからです。

壊れ続けていたのは月次の「締め」の方でした。理由ははっきりしていて、昨年メディエーションに Unity Ads・Liftoff・InMobi の3社を加えてから、取り込むレポートの種類が一気に増えたためです。支払いプロファイルや W-8BEN の整備を済ませて入金が始まると、今度は各社の CSV が相手になります。通貨が USD と JPY で混在し、締めの期間が暦日だったり太平洋時間だったり、同じ「収益」でも列名が revenue だったり estimated_earnings だったりします。列名参照のゆらぎを場当たり的に吸収するコードは、書くほどに読めなくなっていきました。

そこで線引きを変えました。形式が安定した定型集計はローカルに残し、形式が揺れる月次の突き合わせはサンドボックスへ預けます。 スクリプトの保守コストはレポート形式の変更頻度に比例します。変更のたびに人間がコードを直すより、列名のゆらぎの吸収そのものを Claude にやらせる方が、私の規模では明らかに安くつきました。

もう一つの理由はコンテキストの節約です。CSV を会話の本文に貼り付けると、その全行がトークンとして課金され、コンテキストウィンドウも圧迫します。Code Execution ツールと Files API の組み合わせなら、ファイルはコンテナへ直接ロードされ、Claude はコードを書いてそれを読みます。トークンに乗るのは書いたコードと標準出力の要約だけです。数MBのレポート一式を扱う月次処理では、この差が効きます。

Code Execution ツールの現在地 — 2025年5月版の解説を読むと混乱します

このツールは更新が重ねられていて、検索で見つかる古い解説と現行仕様の差がかなり大きくなっています。実装前に整理しておくと迷いません。

  • code_execution_20250522(レガシー): 公開当初の Python 専用版です。code-execution-2025-05-22 というベータヘッダー前提の解説記事が今も多く残っています。応答ブロックの型名も code_execution_result 系で、現行とは別物です
  • code_execution_20250825: Bash コマンドとファイル操作に対応した版です。応答ブロックの形式がここで変わり、以降のバージョンもこの形を引き継いでいます
  • code_execution_20260120: REPL の状態維持と、サンドボックスの中から自前のツールを呼ぶ programmatic tool calling が加わりました
  • code_execution_20260521: 実行環境は 20260120 と同一です。違いはツールの説明文のほうにあって、Python のセル1つあたり 90 秒という実時間の上限が Claude に伝わるので、長くなりそうな処理を向こうから分割してくれます

ここで一つ、私が長らく取り違えていた点を訂正しておきます。バージョンごとに対応モデルが分かれていると思い込んでいたのですが、現行の対応モデルはいずれも3つのバージョンすべてを受け付けます。Haiku 4.5 に code_execution_20260120 を指定しても弾かれることはなく、ただ programmatic tool calling と REPL の状態維持だけが効かずに、実質 20250825 と同じ挙動へ落ちます。新しいツール型に上げたのに何も変わらないときに疑うべきは、モデル側の非対応ではなくこの縮退のほうかもしれません。

もう一点、Web 検索や Web フェッチと組み合わせるなら、コード実行側は code_execution_20260120 以降である必要があります。後述する「Web 検索と併用するとコード実行の追加課金がない」という話は、古いツール型のままでは成立しません。

実行環境は執筆時点で Python 3.11 系の Linux コンテナ(メモリ 5GiB・ディスク 5GiB・1 CPU)で、pandas・numpy・matplotlib・openpyxl など集計に必要なライブラリはあらかじめ入っています。そして重要な制約として、コンテナからインターネットへは一切出られません。pip install も外部 API への問い合わせもできない、という前提が後々の設計に効いてきます。詳細は公式ドキュメントに一覧があります。

なお、現行ドキュメントの最小例はコード実行についてはベータヘッダーなしで動く形になっています。ベータ指定が必要なのは Files API を併用するときの files-api-2025-04-14 です。SDK が古いと新しい応答型を知らずに戸惑うことがあるので、anthropic パッケージは最新化してから始めることをおすすめします。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦ローカルの集計スクリプトが壊れるたびに直していた人が、CSVをそのまま渡して集計からグラフ化まで任せられるようになる
✦アップロード前のローカル検査から Files API 連携・応答ブロックの解析・コンテナ再利用まで、そのまま動かせる Python 実装一式を持ち帰れる
✦ファイル添付だけで課金が始まる仕様と、pause_turn をまたぐと生成ファイルの回収が抜ける挙動を、実際に再現したうえで回避できるようになる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ API & SDK2026-04-24
Claude API を Python で本番運用する — レート制限・リトライ・タイムアウトの設計
Claude API を本番サービスに組み込むなら、429・503・Read timeout とどう付き合うかが品質を決めます。私が実運用で落ち着いたリトライとタイムアウトの設計方針を、コード込みで整理しました。
⬡ API & SDK2026-09-22
PDF の入力トークンは文字数では読めません — 送る前にページ数から上限で挟む
Claude API に PDF を送る前の入力トークンを、文字数ではなくページ数から上限で挟んで見積もる手順です。A4 9 ページの日本語文書で文字数見積もりの 6.6 倍になった実測と、解像度ティアとトークナイザの二重の増分、count_tokens が file_id を数えられない制約までをまとめます。
⬡ API & SDK2026-09-07
キャッシュ読み取りが 75% 安くなっても、請求の下がり方は構成しだいで 10 倍違います
Fable 5.1 と Mythos 5.1 でキャッシュ読み取りの倍率が 0.1 から 0.025 へ変わりました。自分のトークン内訳から削減幅を先に見積もる手順と、倍率を定数で持つコードの直し方をまとめます。