Open3
LlamaIndexのmulti-agent-conciergeを試す
マルチエージェント・コンシェルジュ・システム
なぜこれを構築するのか?
対話型チャットボットは、今や顧客サービスのソリューションとしておなじみであり、エージェントはチャットボットの実装において頻繁に使用されるコンポーネントである。エージェントは、記憶、内省、ツールの使用など、有能なボットに必要な機能を提供する。
私たちは、より大規模なチャットボットに興味を持つようになった。何百ものツールを使って、何十ものタスクをこなし、そのうちのいくつかは互いに依存している。そのようなエージェントはどのようなものだろうか?膨大なシステム・プロンプトと膨大な数のツールから選択することになり、エージェントにとっては混乱しかねない。
ある銀行が次のようなシステムを導入するとしよう:
- 特定の銘柄の価格を調べる
- ユーザーを認証する
- 口座残高を確認する
- ユーザーを認証する必要がある
- 口座間の送金
- ユーザーを認証する必要がある
- また、ユーザーが最初に口座残高をチェックすることも必要である。
これらのトップレベルのタスクにはそれぞれサブタスクがある、例えば:
- 株価のルックアップは、最初に株価シンボルを調べる必要があるかもしれない。
- ユーザー認証は、ユーザー名とパスワードを集める必要がある。
- 口座残高は、ユーザーのどの口座をチェックするかを知る必要がある。
これらすべてのタスクとサブタスクに対して単一のプライマリ・プロンプトを用意するのは非常に複雑だ。そこで代わりに、各トップレベルのタスクを担当するエージェントと、ユーザーを適切なエージェントに誘導できる「コンシェルジュ」エージェントを持つマルチエージェントシステムを設計した。
LlamaIndexの新しいフレームワーク、ということではなさそう。LlamaIndexを使ったマルチエージェントのPoC的実装だと思う。参考にはなると思うので少し触ってみようと思う。
multi-agent-conciergeをworkflowsで書き直したらしい
図を見ると結構カオスに見えるが、可視化の問題だと思う。pyvizのグラフってもうちょっときれいに出せないものかな?
マルチエージェントの参考になりそう。