O Sequential Thinking é o motor de orquestração da plataforma. Recebe uma instrução em linguagem natural (ex: “crie um formulário com nome, e-mail e telefone”), monta um plano de steps e executa cada um com contexto, persistência e controle de falhas. Todos os domínios reutilizam o mesmo motor em vez de reinventar planejamento, execução e retomada.

Por que isso importa

  • Evita duplicação de lógica entre produtos e squads
  • Garante padrão único de execução, erros, retries e auditoria
  • Permite pausar, retomar e cancelar fluxos longos com segurança
  • Expõe eventos de progresso para frontend em tempo real
  • Reduz custo quando o fluxo é fixo usando PlanTemplate (sem custo de planejamento)

Base URL

https://api.tolky.to/api/externalAPIs/public/sequentialThinking

Use {BASE_URL} nos exemplos. Em ambiente local, substitua por http://localhost:3000/api/externalAPIs/public/sequentialThinking.

Autenticação

  • listActions e run: rotas públicas, sem autenticação (testes).
  • runWithAgents: exige token Bearer. O KrakenD injeta X-Host-Id e X-Domain-Id nos headers.
Authorization: Bearer {TOKEN}

Em ambiente local, quando os headers do KrakenD não estão presentes, o hostId pode ser passado no body.


Como ler esta documentação

Endpoints da API

  • GET /listActions
  • POST /run
  • POST /runWithAgents

Use /run para validar prompts e comportamento do motor sem efeitos colaterais.
Use /runWithAgents para execução real em produção.

Estruturas de dados

StepResult

CampoTipoDescrição
stepNumbernumberPosição do step no plano (1-based)
actionstringNome da ação executada
statusstring"completed" | "failed" | "skipped"
resultobjectDados retornados pela ação
paramsobjectParâmetros capturados pelo LLM
errorstringMensagem de erro (quando status é "failed")
durationMsnumberTempo de execução em milissegundos

Eventos (array events)

CampoTipoDescrição
typestringNome do evento
intentIdstringID da execução
timestampstringISO 8601
payloadobjectDados específicos do evento

Catálogo de eventos: plan_ready, feasibility_checked, execution_started, step_started, step_completed, step_failed, step_skipped, execution_completed, execution_failed, execution_cancelled.

Quando aplicável, o campo progress é calculado como:

Math.round((stepNumber / totalSteps) * 100);

FeasibilityAnalysis

CampoTipoDescrição
feasiblebooleanSe o plano é viável
issuesstring[]Bloqueadores
warningsstring[]Alertas
recommendationsstring[]Sugestões de melhoria