文本、JSON 和 stream-JSON 格式的输出架构
--print
一起使用时,Cursor Agent CLI 可通过 --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 }
tool_call.function
结构,包含 { "name": "tool_name", "arguments": "..." }
text
输出格式以简洁、易读的方式呈现代理的动作流。它不会输出详细的 JSON 事件,而是实时给出代理当前行为的简明文本描述。
这种格式便于在无需解析结构化数据的情况下监控代理进度,十分适合用于日志、调试或简单的进度跟踪。
\n
结尾thinking
事件在打印模式下被抑制,不会出现在任何输出格式中assistant
消息增量来重构完整响应