AIエージェントのデザインパターンを実装する
AIエージェントをLanggraphで実装する「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」を読み、AIエージェントのデザインパターンを実際のユースケースに当てはめてColaboratory上で実装してみる。
他のデザインパターンについての記事は以下にまとめている。
今回は「議論ベースの協調」を実装してみる。議論ベースの協調は、それぞれのLLMが賛成、反対、まとめなどの立場となって議論を行うデザインパターンである。
議論ベースの協調
実装では以下のフローチャートのように「ルーター」と呼ばれるノードを作成して、議論中で次の発言を行う役割を指定する構成とした。初期化ノードで、「司会→賛成者→反対者→司会→賛成者→反対者」という発言の順番を設定してこの順番で各ノードに発言を割り振る。
各ノードの役割としては、
- 司会: 今までの議論があればそれらを要約する役割
- 賛成者: 議論に賛成の立場からこれまでの議論を踏まえた賛成意見を展開する
- 反対者: 議論に反対の立場からこれまでの議論を踏まえた反対意見を展開する
とした。
今回は議論の発言順は初期化ノードで設定されたものから変更していないが、議論の流れを見て司会ノードで適宜発言順を変更したり追加することで、より柔軟な議論ができると考える。
議題例としては、「先進国はより他国の政治や経済に干渉すべきだ。」という議題でそれぞれ賛成意見、反対意見を展開した。