Harness Evolution System (HES): o que aprendemos fazendo um agente propor melhorias ao próprio harness
Lições da construção do HES — sistema de auto-evolução de prompts via análise de traces, Sonnet executor + Opus advisor, com gates humanos formais.
Phases 1, 2, 3, 5 em produção. Custo proposer típico: $0.50/run.
TypeScript · Anthropic SDK · systemd · JSONL traces
A pergunta de pesquisa
Agentes de IA em produção falham — emoções negativas que travam, loops sem progresso, alucinações de paths. A pergunta de pesquisa do HES: um agente pode propor melhorias ao próprio harness onde ele roda, com supervisão humana mínima e custos controlados?
A arquitetura em 7 fases
- Trace logger (shipped). systemd service que captura todas as turnadas de agentes em produção como JSONL append-only com classificação emocional aproximada.
- Failure corpus (shipped). Repositório curado de exemplos de falha com análise.
- Proposer (shipped). Roda semanalmente: lê traces da semana, identifica padrões de falha, gera proposta de mudança ao system prompt do agente. Sonnet 4.6 como executor + Opus advisor max_uses=1 + soft abort em 60k tokens.
- Auto-apply (cancelled). Mecanismo para auto-aplicar mudanças menores. Cancelled porque o roteamento OpenRouter da nossa instância OpenClaw não suporta o beta header
advisor_20260301necessário para safe execution. - Versioning (shipped). Snapshot diário do harness antes de qualquer mudança.
- Container deployment (skipped). HES roda como systemd nativo, junto do OpenClaw — não vale Docker overhead.
- Self-rewriting SOUL.md (pending). Agente edita seu próprio prompt-base de identidade sob constraints rigorosos.
O que aprendemos
1. Failure corpus é a primitiva, não o trace. Bruta, trace é ruído. O que carrega informação é a curagem do trace para um exemplo de falha rotulado. O HES gasta mais tokens nessa transformação do que no proposer em si.
2. Opus advisor max_uses=1 é jogo limpo. Definir um único call ao Opus por proposta força o sistema a “investir bem” o budget — não é desperdiçado em validações ruidosas.
3. Soft abort > hard kill. Quando o proposer ultrapassa 60k tokens, ele encerra cooperativamente e marca o run como partial. Isso preserva trace de progresso e evita perder horas de compute em runaway.
4. Auto-apply é onde a abstração quebra. A diferença entre “proposta humana revisa em 5 minutos” e “auto-apply” é uma ordem de grandeza em complexidade de gating. Cancelar a Phase 4 foi a decisão correta.
Métricas operacionais
- Custo por proposer run: $0.50 típico, $2.50 worst-case.
- Phase 1 logger: 255 turns reais ingeridos no primeiro mês, 43 MB RSS estável.
- Primeira proposta real: 4 arquivos, $0.14, identificou 2 bugs reais no parser de traces.
Por que isso importa
Se o resultado se sustentar, agentes em produção passam a ter um loop de auto-melhoria com gates humanos formais. O modelo é replicável para qualquer agente Claude rodando em produção crítica — não específico do OpenClaw.
Acompanhar
Posts técnicos no Library — categoria ai-engineering.