Мультиагентность: веер, противник, синтез
Есть второй вкус «множества агентов» — он работает внутри одной задачи, а не поверх отдельных. Вместо того чтобы один агент делал всё, вы разделяете роли:
- Веер ради широты. Несколько агентов берутся за одну задачу с разных сторон — или исследуют разные части большой кодовой базы — и докладывают. Полезно, когда нужен охват: «найди каждое место, где мы вызываем эту устаревшую функцию» хорошо параллелится.
- Состязательный ревьюер. Один агент пишет; единственная задача второго — атаковать вывод первого: найти баг, упущенный крайний случай, необработанную ошибку. Ревьюер, нацеленный на diff с указанием «считай, что это неверно, и выясни почему», ловит то, в чём агент-автор сам себя убедил.
- Синтез. Финальный проход собирает находки и выдаёт один цельный результат — работающий код плюс короткая заметка о том, что отметил ревьюер и как это решили.
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.
Три роли образуют конвейер с гейтом в конце: ничто не доходит до коммита, пока состязательный ревьюер не сделает свой проход, а синтез не разрешит то, что он нашёл:
┌────────────────── в рамках ОДНОЙ задачи ──────────────────┐
│ │
│ ┌──────────┐ │
│ │ ВЕЕР │ неск. агентов, разные углы │
│ │ агентов │ ── широта / охват ──┐ │
│ └──────────┘ ▼ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ АВТОР │── пишет дифф ─▶│ РЕЦЕНЗЕНТ │ │
│ │ агент │ │ "считай его │ │
│ └──────────┘ │ неверным, │ │
│ │ ищи баг" │ │
│ └──────┬───────┘ │
│ ▼ │
│ ┌──────────────┐ │
│ │ СИНТЕЗ │ собрать │
│ │ правка + прим.│ находки │
│ └──────┬───────┘ │
└────────────────────────────────────────┼──────────────────┘
▼
── ВОРОТА ──▶ commit ✓
Состязательного ревьюера стоит завести, даже когда вы один и без флота агентов, — потому что автор изменения хуже всех находит его изъяны, будь то человек или ИИ. Ещё один проход с враждебным промптом — дешёвая страховка.