Sequential Thinking
Motor genérico que transforma instruções em plano executável, com persistência, retry, auditoria e eventos em tempo real
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
listActionserun: rotas públicas, sem autenticação (testes).runWithAgents: exige token Bearer. O KrakenD injetaX-Host-IdeX-Domain-Idnos 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
- Visão geral do motor — o que faz, quando usar e exemplos práticos
- Listar ações disponíveis — catálogo de ações e schemas
- Executar com sandbox — teste local com ações simuladas
- Executar com agentes reais — produção com ações reais
Endpoints da API
GET /listActionsPOST /runPOST /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
| Campo | Tipo | Descrição |
|---|---|---|
stepNumber | number | Posição do step no plano (1-based) |
action | string | Nome da ação executada |
status | string | "completed" | "failed" | "skipped" |
result | object | Dados retornados pela ação |
params | object | Parâmetros capturados pelo LLM |
error | string | Mensagem de erro (quando status é "failed") |
durationMs | number | Tempo de execução em milissegundos |
Eventos (array events)
| Campo | Tipo | Descrição |
|---|---|---|
type | string | Nome do evento |
intentId | string | ID da execução |
timestamp | string | ISO 8601 |
payload | object | Dados 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
| Campo | Tipo | Descrição |
|---|---|---|
feasible | boolean | Se o plano é viável |
issues | string[] | Bloqueadores |
warnings | string[] | Alertas |
recommendations | string[] | Sugestões de melhoria |