Multi-Agent: Fan-Out, Lawan, Sintesis
Ada satu jenis kedua dari "banyak " yang berjalan di dalam satu tugas alih-alih melintasi tugas-tugas terpisah. Alih-alih satu agent melakukan segalanya, kamu membagi perannya:
- Fan-out untuk keluasan (breadth). Beberapa agent menangani masalah yang sama dari sudut pandang berbeda — atau menjelajahi bagian-bagian berbeda dari basis kode yang besar — lalu melaporkan kembali. Berguna ketika kamu ingin cakupan (coverage): "temukan setiap tempat kita memanggil fungsi usang ini" bisa diparalelkan dengan baik.
- Peninjau yang bersifat lawan (adversarial reviewer). Satu agent menulis; agent kedua satu-satunya tugasnya adalah menyerang keluaran agent pertama — menemukan bug, kasus tepi ( case) yang terlewat, kesalahan yang tidak ditangani. Peninjau yang diarahkan ke sebuah diff dengan instruksi "anggap ini salah dan cari tahu kenapa" menangkap hal-hal yang membuat agent penulis meyakinkan dirinya sendiri secara keliru.
- Sintesis. Tahap terakhir mengumpulkan temuan-temuan dan menghasilkan satu hasil yang koheren — kode yang berfungsi plus catatan singkat tentang apa yang ditandai peninjau dan bagaimana itu diselesaikan.
Reviewer agent brief:
You are reviewing a diff written by another agent. Assume it contains
at least one bug and find it. Specifically check:
- Does it actually satisfy the original goal, or just pass the tests?
- Edge cases: empty input, nulls, the largest realistic input.
- Anything deleted or changed that the task didn't ask for.
Report concrete problems with file and line. Do not rewrite the code —
just report. If you find nothing after a genuine look, say so plainly.
Ketiga peran itu membentuk sebuah pipeline dengan gerbang di ujungnya: tidak ada yang mencapai sampai peninjau yang bersifat lawan sudah melakukan pemeriksaannya dan sintesis sudah menyelesaikan apa yang ditemukannya.
┌──────────────────── within ONE task ────────────────────┐
│ │
│ ┌──────────┐ │
│ │ FAN-OUT │ several agents, different angles │
│ │ agents │ ── breadth / coverage ──┐ │
│ └──────────┘ ▼ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ AUTHOR │── writes diff ──▶│ REVIEWER │ │
│ │ agent │ │ "assume it's │ │
│ └──────────┘ │ wrong, find │ │
│ │ the bug" │ │
│ └──────┬───────┘ │
│ ▼ │
│ ┌──────────────┐ │
│ │ SYNTHESIS │ merge │
│ │ fix + note │ finds │
│ └──────┬───────┘ │
└────────────────────────────────────────┼───────────────┘
▼
── GATE ──▶ commit ✓
Peninjau yang bersifat lawan layak disiapkan bahkan ketika kamu satu orang tanpa armada agent — karena penulis dari sebuah perubahan adalah orang yang paling buruk untuk menemukan kekurangannya sendiri, baik itu manusia maupun AI. Sebuah pemeriksaan kedua dengan yang bermusuhan adalah asuransi yang murah.