agents-lab

Local-first lab for reusable AI-agent primitives and the curated pi-stack.

View on GitHub

Governança de Budget

Guia para tratar custo como restrição de primeira classe em qualquer trabalho, incluindo swarm, colônia, offload e rotas com provider externo.

Objetivo

  1. impedir execuções sem limite de custo claro;
  2. manter evidência de consumo para operação e contestação;
  3. garantir paridade de capacidades sem sujar o ambiente principal.

Conceito: Budget Envelope

Um budget envelope é o contrato mínimo de custo de uma execução.

Campos recomendados:

Sem envelope explícito, não há controle operacional real.

Envelope mínimo para canário protegido (capacidade externa)

Quando a lane for protegida (ex.: GitHub Actions/offload), exigir no envelope:

Sem esses campos, a decisão padrão é defer.

No agents-lab, existe um wrapper report-only para registrar pacote de evidência:

pnpm run offload:evidence:template -- --task TASK-BUD-134 --decision defer

Controles mínimos do operador na lane protegida (sempre explícitos):


Superfícies que se complementam

Não é “ou/ou”; é camadas de observabilidade.

Runtime externo experimental: o @aretw0/pi-stack inclui scaffold claude-code-adapter (/claude-code status|login|auth-status) para operar Claude Code como target de roteamento com login oficial-first e fallback manual, sem persistir credenciais no repositório.

Budget compartilhado por provider (cota emprestada/time)

Quando você opera com chaves de colegas/time, configure orçamento por provider com percentual/cap acordado:

Modelo de operação:

Importante: a chave canônica suportada é provider[/account].

  • Com identidade de conta disponível na ingestão, use budgets por provider/account.
  • Sem identidade de conta, o sistema mantém fallback compatível por provider.
  • Para cenários mistos, mantenha regra provider-only como baseline e refine por conta quando a origem emitir account de forma estável.

Colônia e budget

Ponto crítico

/colony <goal> (comando) não expõe maxCost na CLI.

Para hard cap explícito, use o caminho com ant_colony e maxCost.

Política no colony-pilot

piStack.colonyPilot.budgetPolicy permite:

piStack.guardrailsCore.providerBudgetGovernor permite enforcement global (não só swarm):

Diagnóstico operacional recomendado em ambiente com plugins extras:

piStack.colonyPilot.projectTaskSync (opt-in) permite sincronizar eventos de colônia para .project/tasks:

{
  "piStack": {
    "colonyPilot": {
      "budgetPolicy": {
        "enabled": true,
        "enforceOnAntColonyTool": true,
        "requireMaxCost": true,
        "autoInjectMaxCost": true,
        "defaultMaxCostUsd": 2,
        "hardCapUsd": 20,
        "minMaxCostUsd": 0.05,
        "enforceProviderBudgetBlock": true,
        "providerBudgetLookbackDays": 30,
        "allowProviderBudgetOverride": true,
        "providerBudgetOverrideToken": "budget-override:"
      },
      "projectTaskSync": {
        "enabled": true,
        "createOnLaunch": true,
        "trackProgress": true,
        "markTerminalState": true,
        "taskIdPrefix": "colony",
        "requireOperatorClose": true,
        "maxNoteLines": 20
      }
    }
  }
}

Política single-board clock (v1)

Projeção de status (TUI + WEB)


Paridade + isolamento de ambiente

Antes de concluir que falta funcionalidade, valide se a stack instalada tem as mesmas capabilities esperadas para aquele perfil. No agents-lab, os wrappers são:

pnpm run pi:parity
pnpm run pi:parity:project

Para isolamento forte em estudos sem sujar o perfil global:

pnpm run pi:isolated
pnpm run pi:isolated:status

Em projetos sem esses wrappers, use o equivalente local: perfil de Pi isolado, diretório de sessão separado e check explícito de packages instalados.

(Equivalente manual: exportar PI_CODING_AGENT_DIR=$PWD/.sandbox/pi-agent.)

Isso permite pesquisar e desenvolver sem confundir ausência de pacote com ausência de feature.


Workflow recomendado por execução

  1. Confirmar paridade (pi:parity) no contexto da análise.
  2. Definir budget envelope (goal + maxCost + escopo + owner).
  3. Abrir/atualizar task em .project/tasks.json.
  4. Rodar execução com budget (ant_colony com maxCost quando for swarm).
  5. Coletar evidência (/usage, /quota-visibility export).
  6. Revisar resultados com o operador antes de fechar tasks.

Para disciplina operacional completa (cleanroom, promoção de candidate e reconciliação de drift), veja swarm-cleanroom-protocol.md.

Para fronteira explícita entre baseline agnóstico e estilos opt-in, consulte opt-in-lean-profile-inventory.md.


Regra de governança de tasks

Para esta iniciativa: não fechar task automaticamente no fim da sessão.

Fechamento só após etapa de revisão com o operador, validando: