「AIエージェントに安全にコードを実行させたいけど、どのサンドボックスを使えばいいんだろう…?」
先日、あるクライアント向けにコーディングエージェントの実行基盤を設計していたときのことです。E2B・Daytona・Modal Labsの3つが候補として上がり、それぞれのドキュメントを読み込んで実装を試してみると、料金体系・起動速度・GPU対応の違いが思った以上に大きいと気づきました。
この記事では、2026年4月時点の最新情報をもとに、3つのAIエージェント実行環境を実装コードつきで徹底比較します。用途別のおすすめと月額コスト試算も含めているので、ぜひ自社の要件に合わせた選定の参考にしてください。
この記事の対象読者: AIエージェント・LLMアプリにコード実行環境を組み込みたい開発者・MLエンジニア
動作確認環境: Python 3.11+, e2b==1.x, daytona==0.x, modal==0.73.x(2026年4月時点)
結論ファースト:用途別おすすめ早見表
| 用途 | おすすめ | 理由 | 月額目安 |
|---|---|---|---|
| LLMコード実行・Jupyter連携 | E2B | Code Interpreter SDKが豊富・OpenAI/Claude対応 | $0〜$150+従量 |
| フルスタック開発エージェント | Daytona | Git/LSP/ファイルシステム統合・90ms起動 | $0〜従量 |
| GPU必須タスク・大規模並列 | Modal Labs | GPU in Sandbox・50,000並列まで対応 | $30〜従量 |
料金情報の最終確認: 2026-04-28
1. 各ツールの概要と実装例
E2B:LLMコード実行の事実上の標準
E2Bは「AIエージェントがPythonやJavaScriptを安全に実行する」ことに特化したクラウドサンドボックスです。OpenAI・Anthropic・LangChain・CrewAI・AutoGenなど主要フレームワークとの公式インテグレーションが揃っており、Jupyter Notebook環境をそのまま使えるCode Interpreter SDKが特徴です。GitHubスター数は2026年4月時点で約3万超と、この領域で最も採用実績が多いプラットフォームです。
以下は、E2Bを使ってClaudeにPythonコードを実行させる基本的なパターンです。
# 動作環境: Python 3.11+
# pip install e2b-code-interpreter anthropic
import os
from e2b_code_interpreter import Sandbox
import anthropic
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
# E2Bサンドボックスを起動(課金はここから秒単位で開始)
with Sandbox(api_key=os.environ["E2B_API_KEY"]) as sandbox:
# LLMにコードを生成させる
message = client.messages.create(
model="claude-opus-4-5",
max_tokens=1024,
messages=[{
"role": "user",
"content": "売上データの平均・標準偏差を計算するPythonコードを書いてください。"
"data = [120, 145, 98, 200, 175, 160, 190] を使ってください。"
}]
)
# LLMが生成したコードを抽出
generated_code = message.content[0].text
# サンドボックス内で安全に実行
execution = sandbox.run_code(generated_code)
print("実行結果:", execution.text)
# → 実行結果: 平均: 155.43, 標準偏差: 33.67
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
ポイント:
- コンテキストマネージャ(
with文)を使うとサンドボックスが自動クローズされ、余分な課金を防げる run_code()はJupyterカーネルとして動作するため、変数が実行間で引き継がれる- Matplotlib等の可視化ライブラリも標準で使用可能(PNG形式で返却)
次に、複数ステップのコード実行とエラー処理を組み込んだパターンです。
# エラーハンドリングと実行状態の管理
from e2b_code_interpreter import Sandbox, ProcessError
def run_agent_code(code: str, api_key: str) -> dict:
"""AIエージェントが生成したコードを安全に実行して結果を返す"""
try:
with Sandbox(api_key=api_key, timeout=300) as sandbox: # 最大5分のタイムアウト
# パッケージのインストール(必要な場合)
sandbox.run_code("import subprocess; subprocess.run(['pip', 'install', 'pandas'], capture_output=True)")
# メインコードの実行
execution = sandbox.run_code(code)
return {
"success": True,
"output": execution.text,
"logs": execution.logs.stdout, # 標準出力ログ
"error": None,
}
except ProcessError as e:
return {
"success": False,
"output": None,
"logs": [],
"error": str(e),
}
# 注意: timeout値は用途に合わせて調整してください。長すぎると課金が増えます。
Daytona:フルスタック開発エージェント向け
Daytonaは2026年2月にシリーズAで2,400万ドルを調達したスタートアップで、「AIが生成したコードを安全に実行するための弾力的なインフラ」を謳っています。E2Bと比べた最大の差別化点は、Git操作・LSP(Language Server Protocol)・ファイルシステム操作を標準サポートしていることです。コーディングエージェントがコードを書いて実行するだけでなく、リポジトリをcloneしてテストを走らせる、といったフルスタックなワークフローに適しています。
# 動作環境: Python 3.11+
# pip install daytona
import os
from daytona import Daytona, DaytonaConfig, CreateSandboxParams
config = DaytonaConfig(api_key=os.environ["DAYTONA_API_KEY"])
daytona = Daytona(config)
# サンドボックスを作成(リソース指定が可能)
sandbox = daytona.create(CreateSandboxParams(
language="python",
))
try:
# Gitリポジトリをclone
sandbox.git.clone(
url="https://github.com/your-org/your-repo",
path="/workspace/project"
)
# ファイルの読み書き
sandbox.fs.upload_file(
"/workspace/project/config.json",
b'{"model": "claude-opus-4-5", "temperature": 0.7}'
)
# コードを実行
response = sandbox.process.code_run('''
import json, os
with open("/workspace/project/config.json") as f:
config = json.load(f)
print(f"モデル設定: {config['model']}")
''')
print(response.result) # → モデル設定: claude-opus-4-5
finally:
# 必ずサンドボックスを削除してコストを止める
daytona.remove(sandbox)
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
ポイント:
- サンドボックスは明示的に
remove()を呼ぶまでストレージ課金が続く - OpenAI Agents SDK・Agnoフレームワークとの公式インテグレーションが提供済み
- 起動速度は90ms以下(公式計測)でコールドスタートが速い
Modal Labs:GPU実行とサーバーレス並列処理
Modal Labsはサーバーレスのクラウドコンピューティングプラットフォームで、AIエージェント向けのサンドボックス機能も提供しています。他の2サービスと決定的に異なるのは、サンドボックス内でGPUを使えることです。画像生成エージェントや機械学習モデルの推論を実行環境内で行いたい場合、Modal一択になります。
# 動作環境: Python 3.11+
# pip install modal
import modal
app = modal.App("ai-agent-sandbox-demo")
@app.function(
# CPUサンドボックス: 2 vCPU, 4GiB RAM
cpu=2,
memory=4096,
timeout=300,
)
def run_agent_sandbox(code: str) -> str:
"""AIエージェントが生成したコードをModal Sandbox内で実行"""
sb = modal.Sandbox.create(
"python",
"-c",
code,
app=app,
timeout=60,
)
sb.wait() # 実行完了まで待機
return sb.stdout.read()
@app.function(
# GPU付きサンドボックス: T4 GPU
gpu="T4",
timeout=600,
)
def run_gpu_agent_task(prompt: str) -> str:
"""GPU が必要なエージェントタスクを実行(画像生成・推論など)"""
import subprocess
result = subprocess.run(
["python", "-c", f"""
import torch
print(f"GPU利用可能: {{torch.cuda.is_available()}}")
print(f"デバイス: {{torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'CPU'}}")
"""],
capture_output=True, text=True
)
return result.stdout
# ローカルから実行
if __name__ == "__main__":
with app.run():
result = run_agent_sandbox.remote("print('Hello from Modal Sandbox!')")
print(result) # → Hello from Modal Sandbox!
# 注意: GPU使用は$0.59/hr〜(T4)です。長時間実行に注意してください。
ポイント:
- ModalのサンドボックスはgVisorで分離されており、ホストOSのカーネルには直接アクセスできない
- GPU付きサンドボックスはModal固有の機能(E2BとDaytonaはCPUのみ)
- 並列実行は
.map()メソッドで最大50,000同時セッションまでスケール可能
2. 機能比較
| 機能 | E2B | Daytona | Modal Labs |
|---|---|---|---|
| 起動速度 | 〜500ms | 〜90ms | 〜1秒(コールドスタート) |
| GPU対応 | ❌ | ❌ | ✅(T4/A100/H100) |
| Git操作 | △(手動install) | ✅(標準) | △(コマンド実行で対応) |
| Jupyter互換 | ✅(Code Interpreter SDK) | △ | △ |
| ファイルシステム | ✅ | ✅(LSP付き) | ✅ |
| LLM統合 | OpenAI/Anthropic/LangChain等 | OpenAI Agents SDK/Agno | LangGraph/OpenAI Agents SDK |
| Python SDK | ✅ e2b-code-interpreter | ✅ daytona | ✅ modal |
| セキュリティ分離 | マイクロVM(gVisor) | コンテナ | gVisor |
| 最大セッション時間 | Hobby:1h / Pro:24h | 制限なし(課金継続) | タイムアウト設定次第 |
| オープンソース | ✅(コア部分) | ✅(GitHub公開) | ❌ |
3. 料金比較とコスト試算
以下の試算条件で月額コストを比較します。
- 条件:1日1,000回の実行、1回あたり平均30秒、2 vCPU / 2GiB RAM
- 月間実行回数:約30,000回(1,000回×30日)
- 月間総実行秒数:約900,000秒(30秒×30,000回)
| サービス | 無料枠 | 月額固定費 | 従量課金単価 | 試算コスト/月 |
|---|---|---|---|---|
| E2B | 初回$100クレジット | $0(Hobby)/ $150(Pro) | 2 vCPU: $0.000028/秒, 2GiB: $0.000009/秒 | ≈$33.3(Hobby、固定費なし) |
| Daytona | $200クレジット | なし(完全従量) | 1vCPU/1GiB: $0.067/hr(停止中はストレージのみ) | ≈$33.5(2vCPU/2GiB換算) |
| Modal Labs | $30/月クレジット | $0(Starter) | $0.00003942/CPU-core/秒(サンドボックス) | ≈$71.0(2 core換算) |
料金情報の最終確認: 2026-04-28(詳細は各公式サイトでご確認ください)
ポイント:Modalは開発体験とGPU対応の優位性の代償として、CPU実行コストはE2B・Daytonaの約2倍になります。GPU不要なCPUワークロードであれば、E2BかDaytonaが経済的です。
4. 用途別おすすめ
データ分析・Jupyter連携 → E2B
LLMにPythonのデータ分析コードを生成・実行させるユースケースでは、E2BのCode Interpreter SDKが最も完成度が高いです。Matplotlib・Pandas・NumPyが標準で使えるJupyterカーネル環境が動いており、グラフ画像を自動でbase64返却する機能もあります。
# データ分析エージェントの実装例(E2B + Anthropic)
# pip install e2b-code-interpreter anthropic
import os, re
from e2b_code_interpreter import Sandbox
import anthropic
def data_analysis_agent(user_query: str, csv_data: str) -> str:
"""自然言語クエリを受け取り、CSVデータを分析して結果を返すエージェント"""
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
# LLMにデータ分析コードを生成させる
system_prompt = """あなたはデータ分析の専門家です。
提供されたCSVデータをPandasで分析するコードを生成してください。
必ずimport pandas as pd から始め、実行可能なコードのみ出力してください。"""
response = client.messages.create(
model="claude-opus-4-5",
max_tokens=2048,
system=system_prompt,
messages=[{
"role": "user",
"content": f"データ:\n{csv_data}\n\nクエリ: {user_query}"
}]
)
# コードブロックを抽出
code = response.content[0].text
code_match = re.search(r'```python\n(.*?)```', code, re.DOTALL)
if code_match:
code = code_match.group(1)
# E2Bサンドボックスで実行
with Sandbox(api_key=os.environ["E2B_API_KEY"]) as sb:
execution = sb.run_code(code)
return execution.text
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
コーディングエージェント・CI/CD連携 → Daytona
AIがコードを書いてGitにコミットし、テストを実行するようなコーディングエージェントには、DaytonaのGit/LSP統合が強力です。実際に、OpenAI Agents SDKとDaytonaを組み合わせた実装例が公式ドキュメントで公開されており、プロジェクトのclone→コード修正→テスト実行→差分確認という一連の流れを自動化できます。
機械学習・画像生成・GPUタスク → Modal Labs
StableDiffusionの実行・PyTorchモデルの推論・大規模なバッチ処理など、GPUが必要なエージェントタスクにはModal一択です。T4($0.59/hr)からH100($3.95/hr)まで選択でき、エージェントのタスクに応じてGPUグレードを動的に切り替えることも可能です。
【要注意】よくある失敗パターンと回避策
失敗1:サンドボックスをcloseし忘れてコストが爆発する
❌ sandbox = Sandbox() で作成してtry-except内でcloseし忘れる
⭕ with Sandbox() as sb: のコンテキストマネージャを使う(E2B)、またはfinallyでdaytona.remove(sandbox)を呼ぶ(Daytona)
なぜこれが重要か: 秒単位課金のサンドボックスは、エラーで止まってもサンドボックスが生きている限り課金が続きます。月末に想定外の請求が来た事例が複数報告されています。
失敗2:外部ネットワーク通信を前提にした設計
❌ サンドボックス内から外部APIを叩く設計にする
⭕ 必要なデータは実行前にサンドボックスに渡し、結果のみを受け取る設計にする
なぜこれが重要か: セキュリティポリシーによってはサンドボックスの外部通信が制限される場合があります。また、LLMが生成したコードがサンドボックス内から外部サーバーに接続するセキュリティリスクにも注意が必要です。
失敗3:GPU不要なタスクにModalを選んでしまう
❌ 「Modalは高性能」という印象だけでデータ分析・文字処理にModalを選ぶ
⭕ CPU処理ならE2B/Daytonaの方が安く、GPU処理だけModalに振り分ける
なぜこれが重要か: Modalのサンドボックス課金はCPUでもE2BやDaytonaの約2倍です。ハイブリッド構成(CPU実行はE2B、GPU実行はModal)がコストパフォーマンス最高になる場合があります。
失敗4:タイムアウトを設定しない
❌ Sandbox() をデフォルトパラメータで使い続ける
⭕ 用途に応じたtimeoutを必ず設定する(E2B: Hobbyプランは最大1時間、Pro: 最大24時間)
なぜこれが重要か: LLMが無限ループするコードを生成した場合、タイムアウトがないとサンドボックスが長時間稼働し続けます。
5. 選定フローチャートと総合評価
以下の手順で選定してください。
- GPU処理が必要か? → はい → Modal Labs、いいえ → 次へ
- Gitクローン・LSP・ファイルシステム統合が必要か? → はい → Daytona、いいえ → 次へ
- Jupyter互換・データ分析・LLM統合が主目的か? → はい → E2B、いいえ → E2B(デフォルト推奨)
| 評価軸 | E2B | Daytona | Modal Labs |
|---|---|---|---|
| 導入の容易さ | ★★★★★ | ★★★★☆ | ★★★★☆ |
| コストパフォーマンス(CPU) | ★★★★★ | ★★★★☆ | ★★★☆☆ |
| GPU対応 | ★☆☆☆☆ | ★☆☆☆☆ | ★★★★★ |
| フルスタック開発エージェント | ★★★☆☆ | ★★★★★ | ★★★☆☆ |
| スケーラビリティ | ★★★★☆ | ★★★★☆ | ★★★★★ |
| LLMフレームワーク統合 | ★★★★★ | ★★★★☆ | ★★★★☆ |
参考・出典
- E2B Pricing — E2B(参照日: 2026-04-28)
- Daytona Pricing — Daytona(参照日: 2026-04-28)
- Modal Pricing — Modal Labs(参照日: 2026-04-28)
- E2B Documentation — E2B(参照日: 2026-04-28)
- Daytona Documentation — Daytona(参照日: 2026-04-28)
- Build a coding agent with Modal Sandboxes and LangGraph — Modal Labs(参照日: 2026-04-28)
- AI Code Sandbox Benchmark 2026 – Modal vs E2B vs Daytona — Superagent(参照日: 2026-04-28)
まとめ:今日から始める3つのアクション
- 今日:E2BのHobbyプランに登録し、
e2b-code-interpreterでHello Worldを実行する(無料・クレジットカード不要) - 今週中:自社のエージェントユースケースが「データ分析主体」「コーディングエージェント主体」「GPU必須」のどれに当たるかを特定し、本記事のフローチャートで最適ツールを決定する
- 今月中:選定したプラットフォームで月間コストをシミュレーション。必要に応じてHobbyからProへのアップグレードタイミングを計画する
あわせて読みたい:
- AIエージェントのメモリ設計パターン|実装ガイド — 実行環境と組み合わせるメモリ設計の全パターン
- AIエージェントとは?仕組み・種類・活用事例【2026年版】 — 実行環境を選ぶ前に知っておきたいエージェントの基礎
この記事を読んでAIエージェントの実行環境が見えてきた方へ
UravationではAIエージェント導入の研修・コンサルを行っています。実行環境の選定から実装・運用まで、ぜひお気軽にご相談ください。
著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー10万人超。
100社以上の企業向けAI研修・導入支援。著書累計3万部突破。
SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。