Snapshot de eventos (diagnóstico)
Recupera o histórico de eventos de uma execução, sessão ou requisição para suporte e troubleshooting
Endpoint de leitura para diagnóstico. Retorna o que ficou registrado no sequentialKeeper (cache do motor) sobre uma execução: a sequência de eventos emitidos, snapshot de contexto e correlações de sessão.
Use quando precisar investigar uma execução já encerrada — por exemplo, num atendimento de suporte (“cliente reclama que a resposta veio errada às 14:30”), em troubleshooting de produção, ou para reconstruir contexto para um replay.
Este endpoint não substitui a escuta em tempo real pelo socket /sequential-thinking. Ele recupera o que foi registrado, com TTL: eventos ficam 1h em cache; contexto dinâmico fica 3h. Após esse prazo, o histórico vai apenas para a persistência em PostgreSQL (não exposta por este endpoint).
Endpoint
GET /getKeeperSnapshot
Autenticação
Exige token Bearer. O KrakenD injeta X-Host-Id e X-Domain-Id quando aplicável. Em ambiente local, o hostId pode ir nos headers manualmente.
Authorization: Bearer {TOKEN}
Parâmetros (query string)
Ao menos um dos identificadores (sessionId, intentId ou requestControlId) é necessário para localizar o snapshot.
ID da sessão WebSocket. Use quando quiser ver tudo o que aconteceu numa sessão de usuário (pode incluir várias execuções encadeadas).
ID da execução específica. Use quando o problema está localizado num pedido — é o caminho mais direto.
ID de controle de requisição (gerado no gateway/orquestrador externo). Use quando seu sistema externo correlaciona pedidos por esse ID e você só tem ele à mão.
Quantidade máxima de eventos a retornar. Máximo 200. O servidor devolve os mais recentes.
Exemplo
curl -X GET "{{BASE_URL}}/getKeeperSnapshot?intentId=uuid-da-execucao&limit=100" \
-H "Authorization: Bearer {{TOKEN}}"
Resposta
{
"data": {
"intentId": "uuid-da-execucao",
"sessionId": "uuid-da-sessao",
"requestControlId": "req-12345",
"hostId": "uuid-do-host",
"conversationId": "uuid-da-conversa",
"events": [
{
"type": "plan_ready",
"intentId": "uuid-da-execucao",
"seq": 7,
"chapterKey": "planning",
"timestamp": "2026-04-26T14:30:01.234Z",
"payload": { "totalSteps": 3 }
},
{
"type": "step_completed",
"seq": 12,
"chapterKey": "execution",
"payload": { "stepNumber": 1, "action": "ragSearch", "progress": 33 }
}
],
"context": {
"entries": []
}
}
}
Campos da resposta
O que esperar
- O endpoint só retorna o que ainda está no cache. Execuções com mais de 1h podem voltar sem
events. Para histórico permanente, recorra à persistência interna (não exposta por API pública). - A ordem dos eventos é a mesma que o socket emitiu, com
seqmonotônico. - Eventos sensíveis (que carregavam dados privados) podem ter o
payloadreduzido conforme política de retenção.
Erros
| Código | Descrição |
|---|---|
400 | Nenhum identificador (sessionId, intentId ou requestControlId) foi enviado |
401 | Token inválido ou ausente |
404 | Snapshot não encontrado (expirado ou nunca existiu) |
500 | Erro interno do servidor |