Esquema de salida para formatos de texto, JSON y stream-JSON
--output-format
cuando se usa junto con --print
. Estos formatos incluyen opciones estructuradas para uso programático (json
, stream-json
) y un formato de texto simplificado para un seguimiento del progreso legible por humanos.
--output-format
predeterminado es stream-json
. Esta opción solo es válida al imprimir (--print
) o cuando se infiere el modo de impresión (stdout no TTY o stdin encadenado).json
emite un único objeto JSON (seguido de un salto de línea) cuando la ejecución se completa correctamente. No se emiten deltas ni eventos de herramientas; el texto se agrega en el resultado final.
En caso de error, el proceso termina con un código distinto de cero y escribe un mensaje de error en stderr. No se emite ningún objeto JSON bien formado en casos de error.
Field | Description |
---|---|
type | Siempre "result" para resultados terminales |
subtype | Siempre "success" para ejecuciones correctas |
is_error | Siempre false para respuestas correctas |
duration_ms | Tiempo total de ejecución en milisegundos |
duration_api_ms | Tiempo de la solicitud a la API en milisegundos (actualmente igual a duration_ms ) |
result | Texto completo de la respuesta del asistente (concatenación de todos los deltas de texto) |
session_id | Identificador único de la sesión |
request_id | Identificador de solicitud opcional (puede omitirse) |
stream-json
emite JSON delimitado por saltos de línea (NDJSON). Cada línea contiene un único objeto JSON que representa un evento en tiempo real durante la ejecución.
El stream termina con un evento terminal result
en caso de éxito. En caso de fallo, el proceso termina con un código distinto de cero y el stream puede terminar antes de tiempo sin un evento terminal; se escribe un mensaje de error a stderr.
tools
y mcp_servers
a este evento.message.content[].text
en orden para reconstruir la respuesta completa del asistente.tool_call.readToolCall.args
contiene { "path": "file.txt" }
tool_call.readToolCall.result.success
contiene metadatos del archivo y contenidotool_call.writeToolCall.args
contiene { "path": "file.txt", "fileText": "content...", "toolCallId": "id" }
tool_call.writeToolCall.result.success
contiene { "path": "/absolute/path", "linesCreated": 19, "fileSize": 942 }
tool_call.function
con { "name": "tool_name", "arguments": "..." }
text
proporciona un flujo simplificado y legible de las acciones del agente. En lugar de eventos JSON detallados, muestra descripciones concisas en texto de lo que el agente está haciendo en tiempo real.
Este formato es útil para monitorear el progreso del agente sin la carga de parsear datos estructurados, lo que lo hace ideal para logging, depuración o un seguimiento simple del progreso.
\n
thinking
se suprimen en modo de impresión y no aparecerán en ningún formato de salidaassistant
para reconstruir la respuesta completa