Projetos

AgentFlow

Painel local que mostra quanto de cota resta em cada agente de IA de programar, recomenda qual usar numa tarefa e deixa rodar a tarefa só depois de eu confirmar.

Nas execuções do vídeo e das telas os agentes são simulados, num repositório descartável: nenhum modelo de verdade foi chamado. As leituras de cota e de versão vêm da minha própria máquina, no momento da gravação.

  • Lê as cotas do Claude Code, do Codex e do Antigravity pelo cache local, sem pedir senha nem token
  • Cada janela de cota é mostrada separada: nunca soma períodos diferentes nem inventa um histórico
  • Execução supervisionada: projeto cadastrado à mão, dois aceites e permissões de só leitura por padrão
  • Python puro, sem dependência de runtime, 44 testes automáticos e ouve só no endereço local

Como era antes.

Eu trabalho com três agentes de IA para programar, cada um com a sua cota de uso por janela de cinco horas e por semana. Saber qual ainda tinha folga significava abrir três lugares diferentes, e eu escolhia pelo hábito, não pelo que sobrava.

Quando a cota acabava no meio de uma tarefa, eu só descobria na hora. E deixar um agente mexer num projeto exigia confiar que ele pediria permissão no momento certo.

O que mudou.

O AgentFlow junta tudo numa tela. Ele descobre quais agentes estão instalados, lê o catálogo de modelos que cada um guardou na máquina e as cotas pelo cache do Codenotch, um app que já as acompanhava. Cada leitura traz a idade: recente, antiga ou desconhecida. Desconhecido não vira zero, porque falta de informação não é cota esgotada, e janelas de escopos diferentes nunca são somadas.

O Smart Router recebe a descrição da tarefa e responde com uma recomendação explicada: a categoria que ele entendeu, a afinidade do agente, o estado da cota e o que ficou incerto. Há três modos, qualidade, equilíbrio e economia, e a análise roda só no servidor local e não aciona nenhum agente.

A versão 0.2 acrescentou a execução, separada da recomendação de propósito. Cada projeto precisa ser cadastrado pelo terminal, tem de ser um repositório Git e é recusado se for um diretório amplo ou um atalho. Para rodar, a tarefa é preparada, eu reviso diretório, ramo, agente e objetivo, marco duas confirmações e só então ela começa. Os agentes entram com perfis restritos, e se a tarefa exigir escrita ou uma permissão que não existe, ela termina como Needs attention em vez de receber acesso sozinha.

A parte de segurança foi tratada como requisito, não como detalhe. O servidor só ouve no endereço local, a área de execução exige uma chave aleatória que vive na sessão da aba e é tirada do endereço depois de lida, e cada pedido confere origem e formato. O histórico fica num banco privado e as saídas passam por uma limpeza para não guardar segredos. O visual foi refeito em modo escuro com um acento verde-menta, sem biblioteca de ícones ou de gráficos, e respeita a preferência por menos movimento.

Por dentro.

  • Tela de agentes e modelos com o cartão do Claude Code e do Codex, caminho do executável, janelas de cota e barras de uso
    Cada agente mostra de onde vem cada dado: o executável, a origem da versão e a idade de cada leitura. As barras têm texto equivalente, para não depender só de cor.
  • Smart Router com a tarefa escrita, os três modos e a recomendação do Codex com as razões e as outras opções elegíveis
    O Router explica a escolha e diz o que não sabe: aqui o modelo é unknown, e o aviso de que a disponibilidade não foi comprovada aparece junto da recomendação.
  • Diálogo Revise antes de executar com projeto, diretório, ramo, agente, objetivo, tempo limite e duas caixas de confirmação
    Nada roda sem este diálogo. Ele repete o que vai acontecer, pede dois aceites e avisa que não haverá aprovação automática, troca de provedor, commit, push ou deploy.
  • Execução concluída com o selo Completed, resumo, identificadores, horários, arquivos observados e botões de retomada e handoff
    O estado vem do processo e dos eventos, nunca de uma barra de progresso inventada. Retomar exige preparar e confirmar outro plano.
  • Tela de diagnóstico com a leitura local, os limites da versão, o significado dos estados e a origem dos dados
    Diagnóstico explica as fontes e os limites. Fresh, stale e unknown têm definição escrita, e a tela diz que o relógio reavalia a validade sem buscar dado nenhum.

Quer saber como essa parte foi feita?