7.3 KiB
Coding Agent Reliability EXPLODES When They Argue (New Adversarial Dev Technique)
URL: https://youtu.be/HAkSUBdsd6M
Durată: 17:35
Data salvare: 2026-03-30
Tags: @work @project #ai-coding #adversarial-dev #harnesses #multi-agent
🎯 TL;DR
Adversarial Dev = 2 agenți AI care lucrează împreună: Generator (scrie cod) + Evaluator (critică nemilos).
Problemă: Single-agent coding = sycophancy (agentul își evaluează singur munca → bias, probleme ascunse).
Soluție: Harness cu 3 agenți:
- Planner - creează spec detaliat din prompt-ul tău vag
- Generator - implementează cod
- Evaluator - critică, scoruri 1-10, forțează re-iterații (max 3x)
Inspirație din GANs (Generative Adversarial Networks): generator încearcă să "păcălească" evaluatorul → cod mai bun.
Rezultat: Aplicații complexe one-shot (fără iterații manuale) cu modele mai mici/ieftine (Sonnet vs Opus).
Trade-off: Mai mulți tokeni, dar mai puțină muncă manuală + reliability mai mare.
📌 Puncte cheie
Problema: Sycophancy în AI Coding
- Sycophancy = AI-ul e prea de acord cu sine/cu tine, ascunde probleme mari
- Se agravează pe măsură ce modelele devin mai puternice (!!)
- Worst case: agent care își evaluează singur codul = "student care își corectează tema"
Adversarial Dev Architecture
Inspirație: GANs (Generative Adversarial Networks)
- Generator creează imagini → Discriminator detectează fake vs real
- Generator învață să facă imagini mai realiste pentru a păcăli discriminatorul
Aplicat la coding:
- Planner agent - ia prompt vag, creează spec comprehensiv
- Negociere contract - Generator + Evaluator stabilesc:
- Sprint-uri (chunks din spec)
- Criterii de evaluare (scoruri 1-10 + threshold)
- Loop iterativ:
- Generator implementează sprint
- Evaluator judecă (scoruri pentru fiecare criteriu)
- Dacă sub threshold → Generator re-iterează (max 3x)
- Dacă OK → next sprint
Ce poate construi
Anthropic example: Retro game maker
- Single agent → UI cool, dar gameplay broken
- Harness → sprite editor + level design + gameplay funcțional
Author example: RAG YouTube chat app (4 ore, one-shot)
- Full-stack (frontend + backend)
- RAG pipeline funcțional
- UI polished (streaming, surse, etc.)
- Folosit Sonnet 4.6 (nu Opus!)
Avantaje
✅ One-shot complex apps - trimiți prompt, aștepți, primești app funcțional ✅ Modele mai mici OK - Sonnet 4.6 cu harness > Opus 4.6 fără harness ✅ Reliability - evaluator forțează calitate, nu doar "se pare că merge" ✅ Mai puțin babysitting - nu tu dai feedback, ci evaluatorul
Dezavantaje
❌ Token cost - loop-uri de iterații = many tokens ❌ Timp - 4 ore pentru app complex (dar zero muncă manuală) ❌ Overhead - multi-agent setup mai complicat decât single-agent
Trade-off final
Mai mulți tokeni, dar:
- Leaning into system design (harness) vs model reasoning power
- Poți folosi modele mai ieftine (Sonnet vs Opus)
- Net result: poate economisești tokeni overall
- Câștigi: timp + reliability
Open Source Implementation
Repo: Link în descriere (Claude + Codex harnesses)
- Planner, Generator, Evaluator - toate cu prompts gata
- Quick start: 5 min setup
- Poți folosi subscription (Claude/Codex), nu trebuie API credits (pentru local dev)
- Bun run command - one-liner pentru lansare
Prompts incluse:
- Planner: "You are a product architect..."
- Generator: Software engineer implementation
- Evaluator: "You are a skeptical QA engineer..."
💬 Quote-uri importante
"The worst thing you can do is have a coding agent evaluate its own work. It's going to give itself a gold star every time because it's like a student grading their own homework."
"Opus 4.6 would not have been able to one-shot this without the harness, and Claude Sonnet did with the harness."
"We could actually save tokens with these harnesses because now we're leaning more into the system we build for AI coding versus always relying on the most reasoning power possible with these bigger large language models."
"The generator and evaluator negotiate a contract. They're going to decide upfront: here are the different phases we're going to go through to break up the spec, and here's how we're going to evaluate each phase."
"The generator's sole job once it gets feedback is to appease the evaluator. If it's doing everything in its power to trick the evaluator, then the application is working."
💡 Idei și insights
🔥 Pentru Marius / Echo
1. Adversarial Dev pentru roa2web / noi features?
- În loc să implementez eu direct features complexe, pot folosi harness
- Planner creează spec → Generator implementează → Evaluator verifică
- Beneficiu: Cod mai robust, mai puțin babysitting din partea mea
- Trade-off: Token cost, dar timp câștigat
2. Ralph Workflow upgrade?
- Ralph actual = single-agent autonomous loop
- Upgrade posibil: Ralph v2 cu Evaluator agent separat
- Generator (Sonnet) scrie cod → Evaluator (Sonnet/Opus) critică
- Rezultat așteptat: Features mai robuste, mai puține bug-uri
3. System design > model power
- Insight cheie: Harness bun cu Sonnet > No harness cu Opus
- Aplicabil la orice workflow: investește în sistem, nu doar în model mai scump
- Exemplu: morning-report, evening-report - pot fi îmbunătățite prin sistem, nu doar model
4. Negotiation phase = win
- Generator + Evaluator stabilesc upfront criterii de evaluare
- Anti-bias: Evaluatorul nu poate fi "cumpărat" după, criteriile sunt fixate
- Aplicabil: La design decisions - stabilesc upfront "cum arată succes"
5. GANs philosophy pentru orice
- Principiu: Două sisteme adversare = rezultate mai bune
- Aplicat la: Planning (optimist vs pesimist), Design (creativity vs constraints), etc.
- Pentru Echo: Când fac propuneri, pot juca ambele roluri - propose + critique
6. Subscription usage = OK pentru local dev
- Clarificare importantă: Claude/Codex subscription OK pentru harnesses locale
- NU OK: Dacă build business unde alții folosesc subscription-ul tău
- Pentru noi: Safe să folosim subscription pentru Ralph, tooling, etc.
🛠️ Acțiuni posibile
[ ] Testez repo-ul adversarial dev
- Clone, run cu prompt simplu (ex: generator invoices PDF)
- Compar: single-agent Ralph vs adversarial harness
- Evaluez: token cost, timp, calitate cod
[ ] Propun Ralph v2 cu Evaluator
- Design: cum ar arăta Ralph cu adversarial dev
- Beneficii: mai puține bug-uri, cod mai curat
- Trade-off: mai mulți tokeni, dar reliability
[ ] Adversarial planning pentru features mari
- Când Marius cere feature complex (ex: raport nou ROA)
- Planner creează spec → Generator implementează → Evaluator verifică
- Rezultat: feature production-ready, nu doar POC
📚 Referințe
- Anthropic blog: New harness research (menționat, dar nu open-sourced)
- GANs: Generative Adversarial Networks (machine learning approach)
- Author repo: Claude + Codex harnesses (link în descriere video)
- Scribba: AI Engineering path sponsor (curs AI agents, RAG, MCP, etc.)
Status: ✅ Salvat
Next: Index update (auto via kb index check în heartbeat)