04 Agent Loop Spec

CSuite — Agent Loop v1 (Spec Oficial)

Propósito
Padronizar como o CSuite captura Sinais → Contexto → Decisões → Execuções → Outcomes → Memória, com governança, auditabilidade e capacidade de evolução (autonomia progressiva).


0) Princípios (não-negociáveis)

  1. Decision-first: tudo gira em torno de decision_log_id.
  2. Context freeze: toda decisão relevante tem snapshot imutável do contexto (ctx_decision_context_snapshot).
  3. Execution separation: decidir ≠ executar (ledger separado).
  4. Outcome closure: toda execução relevante deve produzir outcome observável.
  5. Matching auditável: qualquer vínculo retrospectivo tem score, método e debug.
  6. Memory causal: memória é derivada de Decision Timeline, não de texto solto.

1) Léxico (entidades oficiais)

1.1 Signal

Um evento bruto que dispara avaliação.

1.2 Context Snapshot

Estado do mundo “no instante” da decisão.

1.3 Decision

Registro da decisão, seus gates e justificativas.

1.4 Execution Action

Uma ação executável (tool-call humano/sistema).

1.5 Outcome

Resultado observado (antes/depois), com delta.

1.6 Memory Item (Precedent)

Resumo causal de uma decisão com outcome observado.


2.1 ID canônico do loop


3) Tabelas oficiais do loop (mínimo canônico)

3.1 Decision Log (source of truth)

Campos mínimos esperados (conceituais):


3.2 Context Snapshot (freeze)

Regras:

Campos chave:


3.3 Execution Ledger (doing)

Regras:

Campos chave:


3.4 Outcomes (closure)

Regras:

Campos chave (hardening v1):


3.5 Decision Timeline View (flight recorder)

Regras:


3.6 Memory (precedents)

Regras:


4) Fluxo canônico (runtime)

4.1 Emissão de Signal

  1. Ingestão cria evento/sinal (fora do escopo do v1, mas obrigatório existir).

4.2 Decision

  1. Policy Engine avalia e grava pg_decision_log (sempre).

4.3 Snapshot

  1. Imediatamente após a decisão:

  2. gravar ctx_decision_context_snapshot via sp_ctx_snapshot_decision_context(...)

4.4 Execution (se aplicável)

  1. Se outcome permitir/mandar ação:

  2. criar 1..N em execution_action_ledger

  3. garantir decision_log_id presente

4.5 Outcome (fechamento)

  1. Ao observar resultado:

  2. gravar via sp_ctx_record_outcome(org_id, decision_log_id, action_id, ...)

4.6 Memory

  1. Job periódico:

  2. sp_ctx_feed_memory_from_timeline(org_id, days_back, limit, actor)


5) Backfill & Matching (histórico)

5.1 Quando usar

5.2 Ordem de matching (v2 scoring)

  1. ACTION_ID (score 100)
  2. Entidade + Policy + Time window (score >= min_score, padrão 80)
  3. Sem match → permanece NULL (não inventar)

5.3 Auditoria obrigatória

Todo match retrospectivo deve preencher:


6) SLOs do loop (qualidade operacional)

6.1 SLO-01 Snapshot Coverage

6.2 SLO-02 Outcome Closure

6.3 SLO-03 Matching Quality


7) Autonomia progressiva (como liberar sem risco)

Níveis por policy/decision_type:

Critérios para subir nível:


8) Interface canônica (UI)

8.1 Decision Timeline (1 tela)

Fonte: vw_decision_timeline

Filtros mínimos:

Blocos:


9) Regras de evolução do spec


10) Checklist de conformidade (Agent Loop v1)


Se você quiser, eu mando a versão “docs/AGENT_LOOP_V1_SPEC.md” pronta (com heading padrão do seu repositório) e um diagrama Mermaid do loop (Decision → Snapshot → Execution → Outcome → Memory) pra virar documentação oficial do CSuite.

🔊 Text-to-Speech

1.0x
1.0
Pronto para reproduzir