Aller au contenu

Anthropic harness design : architecture planner/generator/evaluator pour agents long-running

Resume

Anthropic Engineering publie un guide d'architecture pour agents de code autonomes sur des taches longues et subjectives. Le pattern central : separer les roles en 3 agents (planner, generator, evaluator), inspire des GANs. L'evaluateur est un agent separe qui juge les outputs sans biais d'auto-congratulation. Le systeme transforme des criteres qualitatifs ("est-ce que le design est bon ?") en metriques mesurables. Construit avec le Claude Agent SDK, il gere des sessions de plusieurs heures. Le context reset entre iterations empeche l'accumulation de contexte stale.

Analyse critique

Ce qui est solide :

L'architecture tri-partite est la contribution principale :

Agent Role Analogie ProbatioVault
Planner Decompose la tache en etapes Step 4 (plan) + step 6a (decomposition)
Generator Produit le code/design Step 6b (agents multi-agents)
Evaluator Juge le resultat, score Step 7 (acceptabilite) + Gates ⅗/8

Le point cle : l'evaluateur DOIT etre separe du generateur. Si le meme agent genere et evalue, il rationalise ses propres erreurs ("sycophantic spiraling", cf. fiche MIT 2026-04-03). C'est exactement l'Article II de notre CONSTITUTIONAL.md (validation croisee — l'auteur ne valide jamais son propre travail).

Le context reset entre iterations est aussi crucial : chaque evaluation repart de zero, evitant que l'evaluateur "s'habitue" aux defauts des iterations precedentes.

Le differenciateur vs ProbatioVault :

Anthropic utilise le Claude Agent SDK pour orchestrer programmatiquement. Nous utilisons des subprocess claude -p + scripts shell. L'avantage SDK : meilleur controle du flow, gestion des erreurs, pas de parsing stdout. L'inconvenient : dependance a un SDK specifique.

Pertinence ProbatioVault

Impact fort — valide et enrichit notre architecture :

  1. Architecture identique : notre workflow 11 etapes EST un harness planner/generator/evaluator. Steps 0-5 = planning, step 6 = generation, steps 7-8 = evaluation. L'article Anthropic confirme que c'est la bonne architecture pour des taches longues.

  2. Context reset : l'article confirme notre choix d'isolation de contexte (claude -p isole par etape). Le context reset entre iterations de gate est exactement ce qu'Anthropic recommande.

  3. Evaluateur separe : renforce l'Article II (validation croisee). Le generateur (Claude step 6b) ne doit JAMAIS etre le meme agent que l'evaluateur (ChatGPT gates). Notre separation Claude/ChatGPT entre generation et evaluation est validee par Anthropic.

  4. TODO #9b (Playwright MCP Evaluator) : l'architecture evaluateur Anthropic est directement applicable. Le Playwright MCP Evaluator prevu en step 7 Phase 2 devrait etre un agent separe avec context reset, exactement comme decrit dans l'article. Reference deja mentionnee dans le TODO.

  5. Claude Agent SDK : a surveiller comme alternative aux subprocess claude -p pour l'orchestration. Potentiellement plus robuste pour le TODO #22 (--bare subprocess).