Pular para o conteúdo
research

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

  1. Trace logger (shipped). systemd service que captura todas as turnadas de agentes em produção como JSONL append-only com classificação emocional aproximada.
  2. Failure corpus (shipped). Repositório curado de exemplos de falha com análise.
  3. 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.
  4. 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_20260301 necessário para safe execution.
  5. Versioning (shipped). Snapshot diário do harness antes de qualquer mudança.
  6. Container deployment (skipped). HES roda como systemd nativo, junto do OpenClaw — não vale Docker overhead.
  7. 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.