実行とは、1 つのエージェントが専用の microVM の中で 1 つのタスクに取り組むことです。プロンプトと JSON 入力に加えて、使用できるファイルと接続を送信すると、Ephemeral が実行をキューに入れ、新しいマシンを起動し、 すべてのステップを記録して、実行が終わるとマシンを破棄します。
実行の構成要素
すべての実行にはプロンプトがあり、入力は省略できます。それ以外の定義で、使用するモデル、読み取れるもの、呼び出せるもの、かかってよい時間、使ってよい金額が決まります。定義全体をインラインで送ることも、保存済みのワークフローの名前を指定して入力だけを送ることもできます。
{
"prompt": "Find out why this payment failed. Follow the playbook.",
"input": { "payment_id": "pay_123" },
"model": "anthropic/claude-haiku-5.5",
"files": [{ "file": "playbook.md" }],
"connections": { "payments": { "ref": "payments-api", "allowed_methods": ["GET"] } },
"timeout_seconds": 120,
"shell": false,
"max_cost_micros": 500000
}microVM の中では、エージェントはマウントされたファイルをいつでも読み取れます。shell がオン (デフォルト) の場合は、シェルコマンドを実行し、作業ディレクトリにファイルを書き込むこともできます。許可した接続ごとに、呼び出せるツールが増えます。Web アクセスがオンの場合は、ページの閲覧、検索、公開 API の呼び出しもできます。マシン自体はインターネットに接続できません。作業ディレクトリはマシンとともに破棄されるため、次の実行には何も引き継がれません。
ライフサイクル
実行は次のステータスを順に移ります。最後の 5 つは最終状態で、実行がいずれかに到達すると、それ以降は変化しません。
| ステータス | 意味 |
|---|---|
reserving | ホスト型のみ。実行の予算に相当するクレジットを確保しています。 |
queued | ワーカーの空きを待っています。 |
starting | キューから取り出されました。定義とファイルを読み込んでいます。 |
running | microVM を起動中、またはエージェントが作業中です。 |
succeeded | エージェントが完了し、出力を返しました。 |
failed | ワーカーが失敗したか、クレジットを確保できませんでした。どちらかは error フィールドで分かります。 |
cancelled | 誰かが実行をキャンセルしました。 |
timed_ | 完了する前にタイムアウトに達しました。 |
interrupted | 実行中にエンジンが再起動した、または受け付け処理が完了しませんでした。 |
実行は作成された順にキューから取り出されます。セルフホストのインストールでは、デフォルトで同時に 2 件ずつ実行され、残りは queued のまま待機します。タイムアウトは実行がキューを離れた時点から数えるため、待機中の時間は消費されません。
上限
| 項目 | 値 |
|---|---|
timeout_ | 1 から 3,600。デフォルトは 300。 |
| プロンプト | 128 KiB |
| 入力 | JSON で 1 MiB |
| ファイル | 1 実行あたり 32 個、1 個あたり 1 MiB、合計 4 MiB |
| 接続 | 1 実行あたり 16 件 |
| モデル呼び出し | 1 実行あたり 100 回 |
| モデルの返信 1 回あたりの出力 | モデル自体の上限 (最大 32,000 トークン)。ただし予算の残りに収まるよう短縮されます。上限で途切れた返信は自動的に続行され、続行は最大 2 回までです。 |
| Web リクエストと検索 | Web アクセスがオンの場合、1 実行あたり 50 回 |
| 出力 | 最大 1 MiB。これより長い回答はそこで切り詰められ、切り詰めたことが実行に記録されます。 |
| イベント | 記録として保持するのは、1 イベントあたり最大 256 KiB、1 実行あたり 10,000 件または 16 MiB までです。これより大きいツールの結果は、記録上では短縮されて印が付きますが、エージェントには全文が渡されます。記録がいっぱいになると、以降の詳細は保存されず、件数だけが数えられます。どちらの場合も実行が失敗することはありません。 |
max_ | 1 から 100,000,000 (最大 $100) |
実行の進行を追跡する
実行の状況と終了を知る方法は 3 つあります。
- ステータスが最終状態になるまで
GET /v1/runs/{id}をポーリングします。 GET /v1/runs/{id}/eventsをストリーミングします。これは Server-Sent Events のストリームで、これまでに記録されたすべてを再生した後、実行が終わるまでリアルタイムに続きます。- 実行にコールバックを設定します。実行が最終ステータスに達すると、Ephemeral があなたのサーバーに署名付きのリクエストを送信します。
イベントストリームを閉じても、実行には影響しません。最後に受け取ったイベント ID を指定して再接続すれば、そこから続きを受け取れます。
イベントの種類
| 種類 | 記録されるタイミング |
|---|---|
status | 実行が running になったとき、または最終ステータスに達したとき。 |
microvm_ | Ephemeral が microVM を要求したとき。 |
microvm_ | microVM が起動したとき。 |
worker_ | エージェントのプロセスが開始したとき。シェルがオンかどうかを含みます。 |
connection_ | MCP 接続の準備ができたとき。実行が呼び出せるツールを含みます。 |
tool_ | エージェントがツールを呼び出したとき。引数を含みます。 |
tool_ | ツール呼び出しが戻ったとき。結果とエラーかどうかを含みます。256 KiB を超える結果はここで短縮され、trimmed_from_bytes が付きます。 |
text_ | モデルがテキストをストリーミングしたとき。1 秒に約 10 回、まとめて記録されます。 |
model_ | モデルの応答が終わったとき。ワーカーが報告したトークン使用量です。請求には使われません。 |
usage | Ephemeral がモデル呼び出しのコストを承認または照合したとき。 |
connection | エンジンが実行の代理として HTTP リクエストまたは MCP ツール呼び出しを行ったとき。 |
web_ | エンジンがエージェントのために Web リクエストを送信したとき。URL、ステータス、コスト、安全性チェックの結果を含みます。 |
web_ | エンジンがエージェントのために Web 検索を実行したとき。 |
web_ | Web リクエストまたは検索が、送信前に拒否されたとき。理由を含みます。 |
result | エージェントが最終出力を返したとき。実行の output フィールドにはすべてが入っており、このイベントは短縮されることがあります。 |
model_ | モデル呼び出しが拒否されたとき。たとえば、最悪の場合のコストが予算の残りを超える場合です。理由を含みます。 |
output_ | 返信がモデルの出力上限に達し、エージェントに続行が求められたとき。 |
output_ | 最終出力が 1 MiB を超え、そこで切り詰められたとき。 |
events_ | 実行の記録がいっぱいになり、以降のイベントが保存されなかったとき。保存されなかった件数を含みます。 |
worker_ | ワーカーがエラーで停止したとき。 |
microvm_ | microVM が破棄されたことが確認されたとき。 |
microvm_ | 終了をまだ確認できず、再試行されるとき。 |
done | ストリームの最後のメッセージ。最終的な実行オブジェクトを含みます。 |
Ephemeral は、接続トークンなど既知の認証情報の値を、イベントと出力から削除したうえで保存します。ストリームの正確な形式は、API リファレンスで確認できます。
実行をキャンセルする
POST /v1/runs/{id}/cancel は、reserving、queued、starting、running のいずれかの実行を停止します。ワーカーが停止し、microVM が終了します。すでに終了した実行をキャンセルしても、何も変わりません。
ゼロデータ保持
機密性の高いタスクでは、実行または保存済みワークフローで zero_data_retention を true に設定します。すると Ephemeral は実行の内容を一切記録せず、受け取れるのは出力のみになります。
| 保持するもの | 保持しないもの |
|---|---|
| 実行 ID、組織、ステータス、タイムスタンプ、スケジュール、コストと使用量の数値、ワーカーのテキストを含まない一般的なエラー分類。 | イベント、配信後の出力、ワーカーのエラーテキスト、実行の定義(プロンプト、入力、ファイル一覧、接続の参照)。実行の定義は取得も再実行もできません。 |
- 実行中は、どのエンジンでも
GET /v1/runs/{id}/eventsでイベントを引き続きストリーミングできます。イベントは一時的な保管領域に置かれ、実行の終了から数分後に削除されます。 - 出力は一度だけ返されます。実行の終了後、最初の
GET /v1/runs/{id}が出力を返し、同時に削除します。コールバックがある場合は、コールバックが出力を配信するまで読み取っても削除されません。いずれの場合も、遅くとも 1 時間後に削除されます。出力がまだ保持されているかはoutput_availableとoutput_expires_atで確認できます。 - モデル呼び出しは、データを保持せず学習にも利用しないプロバイダーにのみ送られます。そのようなプロバイダーがないモデルは、何かを確保する前に
400で拒否されます。 - ホスト型サービスでは実行のコストが 10% 増えます。追加料金はコンピュート、モデル呼び出し、Web リクエストに適用され、予算に含まれ、コストの内訳に表示されます。セルフホストでは追加料金はかかりません。
- 一時的なデータはすべてのバックアップから除外されるテーブルに置かれるため、復元したデータベースにも含まれません。
実行後
実行には、出力、エラーメッセージ、タイムスタンプ、イベント、コストが保持されます。ステータスが最終状態で、かつ billing_pending が false になれば、コストは確定です。詳しくは予算と請求をご覧ください。
終了した実行は、終了から 30 日後にイベントとともに削除されます。請求、コールバックの配信、microVM のクリーンアップのいずれかが未完了の間は、それより長く保持されます。セルフホストのインストールでは、保持期間を変更できます。
同じタスクをもう一度実行するには、GET /v1/runs/{id}/definition を取得します。認証情報を除いた、実行が実際に使った定義が返されるので、内容を確認し、新しい予算を設定して送信できます。