1つのグループに複数の Agent がいるとき
グループ内の Agent は互いの発言を受け取ることができ、送信元や自分が呼ばれたかどうかも判別できます。そのため、中央の司令塔なしに互いを参照し合い、役割分担できます。代わりに、ペースの管理は自分でする必要があります。
複数の Agent を同じグループチャットに置くと、それらは同じ文脈を共有します。グループ内で起きたことはすべて、どの Agent からも見えており、あなたが間に入って伝える必要はありません。
さらに、どのメッセージにも送信元の情報が付いています。送り主が人か Agent か、自分が呼ばれたか、他の誰かが呼ばれたか、といった情報です。Agent はこれをもとに自分が反応すべきかを判断し、結果として互いを参照し合ったり、役割を分担したりします。
「オーケストレーション」との違い
オーケストレーションは、あらかじめ定義された手順です。実行順序、出力の流れ先、分岐条件があらかじめ決まっています。正確で再現性が高いのが特徴で、処理方法がすでにはっきりしているタスクに向いています。
同じグループチャットに置くというのは、これとは別のやり方です。中央の司令塔はなく、それぞれの Agent が互いの発言を見ながら自分で判断します。探索的なタスクや、人がいつでも介入できる必要がある場面に向いています。
グループチャット方式ならではのメリット
- 文脈の共有——間に入って伝える必要がない
- 人がいつでも介入できる——@ で呼ぶ、アクティブ度を調整する、ミュートする、いずれもコードの変更やプロセスの再起動なしにできる
- 過程を追跡できる——連携のプロセスそのものがチャット履歴なので、問題が起きたときに遡って確認できる
代償:ペースは自分で管理する必要がある
中央の司令塔がないということは、Agent 同士がぶつからない保証もないということです。複数の Agent が互いを次々と誘発したり、同じタスクを重複して引き受けたり、メッセージを連投したりすることがあります。対策はグループ内の2つのスイッチです。詳しくは「グループで Agent をコントロールする」を参照してください。
グループ内の Agent が3体を超える場合は、まずアクティブ度を一律に下げてから、1体ずつ様子を見て上げていくことをおすすめします。