CLAUDE LABEN
SANDBOX — Claude Managed Agentsが自前のサンドボックスとプライベートMCPサーバー接続に対応(自己ホスト型ベータ・MCPトンネルはプレビュー)PLATFORM — Claude Developer Platformにcode execution・web search・web fetchのツール新版。長時間コードのセル90秒上限を明示しますCONTEXT — response_inclusionで消費済みの結果ブロックを切り詰め、エージェント処理のコンテキストを節約できますMCP — エンタープライズ管理型MCPコネクタ(Okta連携)が継続。Claude・Claude Code・Cowork横断でゼロタッチ利用できます(Team/Enterpriseベータ)CODE — Claude Codeに/cd・ポストセッションフック・安全モードが加わり、MCPポリシー強制が厳格化されましたMODEL — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。Fable 5はClaude Codeから利用できますSANDBOX — Claude Managed Agentsが自前のサンドボックスとプライベートMCPサーバー接続に対応(自己ホスト型ベータ・MCPトンネルはプレビュー)PLATFORM — Claude Developer Platformにcode execution・web search・web fetchのツール新版。長時間コードのセル90秒上限を明示しますCONTEXT — response_inclusionで消費済みの結果ブロックを切り詰め、エージェント処理のコンテキストを節約できますMCP — エンタープライズ管理型MCPコネクタ(Okta連携)が継続。Claude・Claude Code・Cowork横断でゼロタッチ利用できます(Team/Enterpriseベータ)CODE — Claude Codeに/cd・ポストセッションフック・安全モードが加わり、MCPポリシー強制が厳格化されましたMODEL — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。Fable 5はClaude Codeから利用できます
記事一覧/API & SDK
API & SDK/2026-06-21上級

90秒で切られるコード実行セルを跨いで、長いバッチをチェックポイント分割で回す

Claude のコード実行ツールはセル単位で90秒の上限が明示されました。長いバッチがここで打ち切られないよう、コンテナのファイルシステムへ進捗を残してセルを跨いで再開する設計を、計測・冪等なチェックポイント・撤退判断まで実装コード付きで整理します。

api-sdk11code-execution3automation41claude-api67

プレミアム記事

4サイト分の記事 MDX をまとめて検査する処理を、コード実行ツールの1セルに丸投げしていたら、途中で応答が途切れました。エラーらしいエラーは出ず、ただ出力が止まる。手元のログを見直して、ようやく腑に落ちました。6月のツール更新で、コード実行はセル単位に90秒の上限が明示されたのです。私の検査ループは、ファイル数が増えるにつれて静かにその壁へ近づいていました。

この上限は、一見すると厄介な制約に見えます。けれど設計の起点として捉え直すと、むしろ素直な約束事です。鍵になるのは「90秒はセル単位だが、コンテナのファイルシステムはセルを跨いで生き続ける」という非対称です。これを使えば、長い仕事を90秒未満のセルに割って、進捗を持ち越しながら何度でも再開できます。

持ち越しの作法は、計測・冪等なチェックポイント・撤退判断の3点に絞れます。以下では、その実装を順に追います。題材は Dolice Labs の個人開発で回している私自身のバッチ処理ですが、考え方は検索結果の後処理でも、画像メタデータの一括変換でも変わりません。

90秒はセル単位、コンテナは生き続ける ― この非対称が設計の起点です

最初に押さえたいのは、上限が「会話全体」ではなく「1セルの実行」にかかる点です。つまり、ひとつのセルが90秒で打ち切られても、同じセッションのコンテナ自体はそのまま残ります。前のセルで /tmp に書いたファイルは、次のセルからそのまま読めます。

ここを取り違えると設計を誤ります。コンテナの寿命は会話(セッション)に紐づくのであって、セルごとに作り直されるわけではありません。だから戦略はシンプルです。仕事を90秒に収まる単位へ割り、各セルの最後に「どこまで終わったか」をコンテナのファイルへ書き残す。次のセルはその続きから始める。これだけです。

逆に言えば、セッションを跨ぐと前提が崩れます。会話が変わればコンテナは別物になり、/tmp の進捗は消えます。セッションを越えて持ち越したいなら、進捗は外部ストレージ(自分の MCP サーバーやオブジェクトストレージ)へ逃がす必要があります。本記事は「同一セッション内で長いバッチを完走させる」範囲に絞ります。コード実行ツールそのものの基本的な使い方は、コード実行ツールでCSVレポートを自動生成する実装メモで扱っているので、土台が曖昧な方はそちらを先に読むと地続きになります。

まず1セルの実時間を測る ― 計測なしに分割しない

分割の粒度を勘で決めると、たいてい外します。私も最初は「1サイトずつなら大丈夫だろう」と雑に割って、結局あるサイトだけ件数が多くて再び90秒に当たりました。先に1単位あたりの実時間を測るのが遠回りに見えて近道です。

import time
 
def measure_unit(items, process, sample=5):
    """先頭 sample 件だけ実処理して、1件あたりの実時間を概算する"""
    start = time.monotonic()
    n = min(sample, len(items))
    for item in items[:n]:
        process(item)
    elapsed = time.monotonic() - start
    per_item = elapsed / n if n else 0.0
    # 90秒上限に対し、書き込みやオーバーヘッドの余白を引いて使える秒数を見積もる
    usable = 75.0  # 後述の時間予算
    safe_chunk = max(1, int(usable / per_item)) if per_item else len(items)
    print(f"1件 {per_item*1000:.0f}ms / セルあたり安全に回せる目安 {safe_chunk} 件")
    return safe_chunk
 
# 期待する出力例:
#   1件 320ms / セルあたり安全に回せる目安 234 件

time.time() ではなく time.monotonic() を使う点だけ注意します。前者はシステム時刻の補正で巻き戻ることがあり、経過時間の計測には向きません。後者は単調増加が保証されるので、こうした締め切り判定に安心して使えます。

測ってみると、想像とずれることが多いはずです。私の MDX 検査では、正規表現より MDX 本文を構文解析する箇所が支配的で、最も重い1件は軽い1件の3倍ほどかかっていました。ファイルサイズよりも、コードブロックの多さで1件あたりの時間が大きく振れていたのです。計測は、分割の根拠を「印象」から「数値」へ移してくれます。

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

この記事の続きを読む

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

この記事で得られること
90秒で打ち切られて止まっていた長いバッチを、セルを跨ぐチェックポイント方式で確実に完走させられるようになる
コンテナのファイルシステムへ進捗を残す再開ループと、セル内で自分から畳む時間予算ガードの実装を手に入れられる
コード実行に残すべき仕事と、自前インフラへ逃がすべき仕事を、計測値で線引きできるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

API & SDK2026-06-12
Claude API の Code Execution ツールに月次の売上CSV集計を任せる — Files API 連携から課金の落とし穴まで
月末に形式の違う売上CSVを突き合わせる作業を、Claude API の Code Execution ツールに任せた実装をまとめます。Files API 連携、コンテナ再利用、5分最小課金やファイルプリロード課金などの注意点を実例ベースで扱います。
API & SDK2026-05-15
Claude API Messages Batches API でコストを半額にする — 個人開発者が学んだ非同期処理設計
Claude API の Messages Batches API を使って API コストを最大50%削減する非同期設計パターン。個人開発で実際に運用して気づいた設計判断・コスト試算・本番環境でのエラー処理まで実装コードとともに解説します。
API & SDK2026-05-05
Claude API のツール実行エラーを Claude 自身に診断させる — 自己修正ループの設計と本番実装
Tool Use実装で避けられないツール実行エラーの対処法を解説。is_errorフラグを活用してエラー情報をClaudeに返し、自己診断・修正ループを実装する実践的なPythonコードと本番でのアンチパターンも紹介します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →