agents-lab

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

View on GitHub

Colony Runtime Recovery Guide

Como localizar artefatos da colônia e recuperar contexto quando uma execução termina/parcialmente falha.

Para configuração de provider/model e controle operacional da colônia, veja também: colony-provider-model-governance.md.

TL;DR

Onde as coisas ficam

A extensão de colony usa storage compartilhado por workspace (path espelhado).

No Windows (Git Bash), o espelho costuma ficar em:

~/.pi/agent/ant-colony/c/Users/<user>/.../<repo>/
├── colonies/
│   └── colony-<id>/
│       ├── state.json
│       ├── pheromone.jsonl
│       └── tasks/
└── worktrees/
    └── <runtime-worktree-name>/

Inspeção rápida

Script utilitário deste repo:

pnpm run colony:inspect
# ou filtrar por ID
node scripts/colony-runtime-inspect.mjs --id colony-abc123

Ele mostra:

Fluxo de recuperação após uma parada

  1. Capture o último sinal/report no chat:
    • exemplo: [c1|colony-mnxq8g8z-vii7z]
  2. Rode pnpm run colony:inspect e localize state.json correspondente.
  3. Se houve worktree isolado, entre nele e confira diff:
git -C <worktree-path> status --short
git -C <worktree-path> log --oneline -n 10
git -C <worktree-path> diff --stat
  1. Se auto-injeção não trouxe tudo para branch atual:
    • cherry-pick de commits relevantes, ou
    • gerar patch e aplicar no repo principal.

Retenção first-party (quando mirror/worktree sumiu)

Mesmo sem mirror disponível, sinais terminais da colônia podem ser recuperados em .pi/colony-retention/*.json (goal, fase terminal, hints de mirror, etc.).

Tuning em .pi/settings.json:

{
  "piStack": {
    "colonyPilot": {
      "candidateRetention": {
        "enabled": true,
        "maxEntries": 40,
        "maxAgeDays": 14
      }
    }
  }
}

Observabilidade:

Sinais comuns e interpretação

Esses erros são operacionais; mantenha objetivo técnico separado de dependências de runtime.

Boas práticas para próxima rodada

Relação com first-party web

web-session-gateway é independente da colony. Use-o para qualquer sessão, inclusive para recuperar contexto de runs interrompidas.