マルチエージェント:ファンアウト、敵対者、統合
別々のタスクにまたがってではなく一つのタスクの中で回る「多数のエージェント」の第二の種類がある。一つのエージェントがすべてをやる代わりに、役割を分ける:
- 幅のためのファンアウト。 複数のエージェントが同じ問題を異なる角度から攻める——あるいは大きなコードベースの異なる部分を探索する——そして報告する。網羅を欲するときに有用だ:「この非推奨関数を呼んでいるすべての場所を見つけよ」はよく並列化する。
- 敵対的レビュアー。 一つのエージェントが書く。二つ目のエージェントの唯一の仕事は、一つ目の出力を攻撃することだ——バグ、抜けたエッジケース、未処理のエラーを見つける。「これは間違っていると仮定して、なぜか突き止めよ」という指示で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.
敵対的レビュアーは、エージェントの艦隊を持たない一人きりの場合でも整える価値がある——なぜなら変更の作者は、人間であれAIであれ、その欠陥を見つけるのに最も不向きな者だからだ。敵対的なプロンプトでもう一度見直すことは安価な保険だ。