テキスト、JSON、stream-JSON 形式の出力スキーマ
--print
と組み合わせたときに --output-format
オプションで複数の出力形式を提供するよ。プログラムで扱いやすい構造化形式(json
、stream-json
)と、人間が読みやすい進捗トラッキング向けのシンプルなテキスト形式がある。
--output-format
は stream-json
。このオプションが有効になるのは、出力の印字(--print
)時か、印字モードが推論される場合(非 TTY の stdout またはパイプされた stdin)のみだよ。json
出力形式は、実行が正常に完了したときに単一の JSON オブジェクト(末尾に改行あり)を出力する。デルタやツールイベントは出力されず、テキストは最終結果に集約される。
失敗時は、プロセスは非ゼロの終了コードで終了し、エラーメッセージを stderr に書き込む。失敗時には整形式の JSON オブジェクトは出力されない。
Field | Description |
---|---|
type | 端末結果では常に "result" |
subtype | 成功した完了時は常に "success" |
is_error | 成功レスポンスでは常に false |
duration_ms | 総実行時間(ミリ秒) |
duration_api_ms | API リクエスト時間(ミリ秒、現在は duration_ms と同値) |
result | 完全なアシスタント応答テキスト(すべてのテキストデルタの連結) |
session_id | 一意のセッション識別子 |
request_id | 任意のリクエスト識別子(省略可) |
stream-json
出力形式は改行区切りJSON(NDJSON)を出力します。各行には実行中のリアルタイムイベントを表す単一のJSONオブジェクトが含まれます。
ストリームは成功時に終端のresult
イベントで終了します。失敗時は、プロセスが非ゼロコードで終了し、ストリームは終端イベントなしに早期終了する可能性があります。エラーメッセージはstderrに書き込まれます。
tools
やmcp_servers
などのフィールドがこのイベントに追加される可能性があります。message.content[].text
値を順番に連結してください。tool_call.readToolCall.args
に{ "path": "file.txt" }
が含まれますtool_call.readToolCall.result.success
にファイルメタデータとコンテンツが含まれますtool_call.writeToolCall.args
に{ "path": "file.txt", "fileText": "content...", "toolCallId": "id" }
が含まれますtool_call.writeToolCall.result.success
に{ "path": "/absolute/path", "linesCreated": 19, "fileSize": 942 }
が含まれます{ "name": "tool_name", "arguments": "..." }
を持つtool_call.function
構造を使用する場合がありますtext
出力形式は、エージェントのアクションを人間に読みやすいシンプルなストリームで提供する。詳細な JSON イベントの代わりに、エージェントがリアルタイムで何をしているかを端的なテキスト記述で出力する。
この形式は、構造化データをパースするオーバーヘッドなしでエージェントの進捗をモニタリングできるので、ログ、デバッグ、あるいは簡易的な進捗トラッキングに最適。
\n
で終了する単一行として出力されるthinking
イベントはプリントモードでは抑制され、どちらの出力形式にも表示されないassistant
メッセージデルタを連結する