Esquema de saída para formatos de texto, JSON e stream-JSON
--output-format
quando combinada com --print
. Esses formatos incluem opções estruturadas para uso programático (json
, stream-json
) e um formato de texto simplificado para acompanhar o progresso de forma legível por humanos.
--output-format
padrão é stream-json
. Essa opção só é válida ao imprimir (--print
) ou quando o modo de impressão é inferido (stdout não TTY ou stdin encadeado).json
emite um único objeto JSON (seguido por uma quebra de linha) quando a execução é concluída com sucesso. Deltas e eventos de ferramentas não são emitidos; o texto é agregado no resultado final.
Em caso de falha, o processo termina com um código diferente de zero e escreve uma mensagem de erro em stderr. Nenhum objeto JSON bem-formado é emitido em casos de falha.
Field | Description |
---|---|
type | Sempre "result" para resultados finais |
subtype | Sempre "success" para conclusões bem-sucedidas |
is_error | Sempre false para respostas bem-sucedidas |
duration_ms | Tempo total de execução em milissegundos |
duration_api_ms | Tempo da requisição à API em milissegundos (atualmente igual a duration_ms ) |
result | Texto completo da resposta do assistente (concatenação de todos os deltas de texto) |
session_id | Identificador único da sessão |
request_id | Identificador opcional da requisição (pode ser omitido) |
stream-json
emite JSON delimitado por quebra de linha (NDJSON). Cada linha contém um único objeto JSON representando um evento em tempo real durante a execução.
O stream termina com um evento terminal result
em caso de sucesso. Em caso de falha, o processo encerra com um código diferente de zero e o stream pode terminar prematuramente sem um evento terminal; uma mensagem de erro é escrita no stderr.
tools
e mcp_servers
podem ser adicionados a este evento.message.content[].text
em ordem para reconstruir a resposta completa do assistente.tool_call.readToolCall.args
contém { "path": "file.txt" }
tool_call.readToolCall.result.success
contém metadados e conteúdo do arquivotool_call.writeToolCall.args
contém { "path": "file.txt", "fileText": "content...", "toolCallId": "id" }
tool_call.writeToolCall.result.success
contém { "path": "/absolute/path", "linesCreated": 19, "fileSize": 942 }
tool_call.function
com { "name": "tool_name", "arguments": "..." }
text
fornece um fluxo simplificado e legível por pessoas das ações do agente. Em vez de eventos JSON detalhados, ele gera descrições de texto concisas do que o agente está fazendo em tempo real.
Esse formato é útil para acompanhar o progresso do agente sem a sobrecarga de analisar dados estruturados, tornando-o ideal para logging, depuração ou acompanhamento simples de progresso.
\n
thinking
são suprimidos no modo de impressão e não aparecerão em nenhum formato de saídaassistant
para reconstruir a resposta completa