文字、JSON 與 stream-JSON 格式的輸出綱要
--print
使用時,可透過 --output-format
選項輸出多種格式。這些格式包含供程式化使用的結構化格式(json
、stream-json
),以及用於人類可讀的進度追蹤的精簡文字格式。
--output-format
的預設值為 stream-json
。此選項僅在列印(--print
)或推斷為列印模式(非 TTY 的 stdout 或經由管線輸入的 stdin)時有效。json
輸出格式會輸出單一 JSON 物件(後接換行)。不會輸出增量與工具事件;文字會彙整為最終結果。
發生失敗時,程序會以非零代碼結束,並將錯誤訊息寫入 stderr。失敗情況下不會輸出任何格式正確的 JSON 物件。
欄位 | 說明 |
---|---|
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 }
tool_call.function
結構,包含 { "name": "tool_name", "arguments": "..." }
text
輸出格式提供簡化、易讀的代理動作串流。它不是詳細的 JSON 事件,而是即時輸出精簡的文字描述,說明代理正在做什麼。
這種格式適合在不需處理結構化資料解析負擔的情況下監控代理進度,非常適合用於記錄、除錯,或簡單的進度追蹤。
\n
結尾thinking
事件在列印模式下會被隱藏,不會出現在任何輸出格式中assistant
訊息增量串接起來以重建完整回應