Skip to content

Caso de estudo · 2026

Agent Mission Control

Dashboard de operações para uma plataforma de orquestração com 5 agentes de IA: custos em tempo real, rastreio de sessões, filas de aprovação e controlo de orçamento num único painel.

Painel principal do Agent Mission Control com KPIs executivos e estado do sistema
fig. 01 - Visão geral - KPIs executivos, custo em tempo real e estado do sistema

Contexto

O OpenClaw é a minha plataforma pessoal de orquestração de agentes: 5 agentes de IA (4 na cloud, 1 local) a operar através de Telegram e Discord, com um loop coordenador a correr a cada 5 minutos e 8 tarefas agendadas por dia.

Um sistema destes gera custo, falhas e estado de sessão em contínuo - e tudo isso vivia espalhado por logs.

Problema

As decisões eram tomadas às cegas: sem visibilidade sobre custo por agente, sessões ativas, aprovações pendentes ou excessos de orçamento. Incidentes e aprovações expiradas só se descobriam tarde. Faltava um verdadeiro painel de operações - não mais logs.

Restrições

  • Tudo corre num único nó local (Mac mini) - sem infraestrutura cloud nem serviços geridos.
  • As sessões dos agentes são ficheiros JSONL no disco; o dashboard tem de os acompanhar em tempo quase real.
  • Os processos são geridos por LaunchAgents do macOS - o dashboard tem de sobreviver a reinícios sem intervenção.

Decisões

  • SQLite em modo WAL em vez de um serviço de base de dados: num sistema single-node, elimina operação e chega para 14 tabelas com validação Zod.
  • Server-Sent Events em vez de WebSockets para o tailing de sessões: o fluxo é unidirecional, e SSE é mais simples de servir e de recuperar.
  • Server components a ler SQLite diretamente para a maioria das páginas; client components com polling de 10–30s apenas onde há dados vivos.
  • Controlo de orçamento com limites diários/mensais e pausa automática ao exceder - guardrails aplicados pelo loop coordenador, não pela UI.

Abordagem técnica

Next.js 15 (App Router) com mais de 25 rotas de API a alimentar o painel: estado do gateway, monitorização de cron e coordenador, métricas por agente em 24h, fila de aprovações com níveis de risco e temporizadores de expiração, e streaming SSE das sessões.

O dashboard é personalizável - widgets drag-and-drop com configuração persistida em SQLite - e inclui um grafo de topologia com as relações de delegação entre agentes.

Resultado

Um único painel mostra custo em tempo real, health score, deteção de anomalias e tendências; o orçamento pausa agentes automaticamente quando é excedido. Health checks automáticos correm duas vezes por dia via API própria de QA.

As decisões sobre o sistema - pausar, retomar, reexecutar, autorizar - passaram a ser tomadas com dados à frente, a partir do browser.

Agent Office: mapa de presença com sessões ativas por agente
fig. 02 - Agent Office - presença e contagem de sessões por agente
Timeline de logs e eventos com pré-visualização de payload
fig. 03 - Logs e eventos - timeline filtrável com payload

Limitações conhecidas

  • A interface existe apenas em português - não tem toggle de idioma.
  • SQLite é single-node: sem replicação nem clustering.
  • O stream SSE lê JSONL do disco - com grande volume de sessões pode atrasar.
  • A estimativa de custos recorre a aproximação por evento quando os agentes não emitem o custo total.

Aprendizagens

  • Construir o painel obrigou a formalizar o que antes era implícito: o que é "saudável", quanto pode custar um dia, quando é que uma aprovação expira.
  • SSE com polling curto cobre a necessidade de "tempo real" de um dashboard de operações sem a complexidade operacional de WebSockets.
Agent Mission Control · Francisco Coelho