Eventos
Tipos de evento usados pelo event log de sessions, pelo stream SSE e por webhooks.
Eventos são ordenados por seq dentro de uma session. O mesmo evento pode ser lido no histórico e recebido no stream.
#Eventos ingeríveis
Seu backend pode postar estes eventos no endpoint de events da session:
| Tipo | Payload | Uso |
|---|---|---|
user.message | { content, idempotencyKey? } | Envia uma mensagem ou instrução do usuário. |
user.interrupt | { idempotencyKey? } | Solicita interrupção do trabalho atual. |
user.custom_tool_result | { toolUseId, content, isError?, idempotencyKey? } | Responde custom tool executada pelo cliente. |
user.tool_confirmation | { toolUseId, decision, reason?, idempotencyKey? } | Aprova ou nega tool que pediu confirmação. |
content usa blocos de texto: [{ "type": "text", "text": "..." }].
#Eventos do agent
| Tipo | Quando ocorre |
|---|---|
agent.message | O agent produziu resposta textual. |
agent.thinking | O provider expôs conteúdo de raciocínio apresentável. |
agent.tool_use | O agent solicitou uma built-in tool. |
agent.tool_result | Resultado de uma built-in tool. |
agent.custom_tool_use | O agent solicitou uma custom tool executada pelo seu backend. |
agent.mcp_tools_listed | Tools MCP foram resolvidas para a session. |
agent.mcp_tool_use | O agent solicitou uma tool MCP. |
agent.mcp_tool_result | Resultado de uma tool MCP. |
agent.memory_read | Uma tool de memória leu um documento. |
agent.memory_write | Uma tool de memória escreveu um documento. |
agent.outputs_captured | Outputs da execução foram capturados como artifacts. |
agent.skills_mounted | Skills foram montadas para a session. |
#Eventos de status
| Tipo | Significado |
|---|---|
session.status_idle | A session está pronta ou aguardando ação externa. |
session.status_running | A session está processando trabalho. |
session.status_rescheduled | A session foi reagendada para continuar. |
session.status_terminated | A session terminou. |
session.error | A execução registrou falha terminal ou recuperável conforme payload. |
#Eventos de observabilidade
| Tipo | Significado |
|---|---|
span.model_request_start | Início de uma chamada ao modelo. |
span.model_request_end | Fim de uma chamada ao modelo, incluindo usage quando disponível. |
Esses eventos ajudam a depurar latência e consumo, mas normalmente não dirigem experiência de usuário.
#Eventos entregáveis por webhook
Webhooks aceitam um subconjunto estável de alto valor operacional:
| Tipo |
|---|
agent.message |
session.status_idle |
session.status_running |
session.status_rescheduled |
session.status_terminated |
#Uso no SDK
ts
import { isAgentMessage, isAgentCustomToolUse } from '@noorden/sdk';
for await (const event of session.stream({ afterSeq: checkpoint })) {
checkpoint = event.seq;
if (isAgentMessage(event)) {
await appendText(event.text);
}
if (isAgentCustomToolUse(event)) {
await queueTool(event.toolUseId, event.name, event.input);
}
}