マルチAIエージェントの未来をAutogenで思考する
はじめに
こんにちは、ストックマークのプロダクトデザイナーの @motokazu です。
最近、AI同士が対話しながらタスクを進めていく世界であるマルチAIエージェントに興味があるので、そこを起点に未来を考えてみたいと思います。
自分は、多くのクリエイティブ精神が溢れている世界観が好きなのですが、そのような未来が待っているのか否か。楽しみです。
その前にマルチAIエージェントって…?
AIエージェントは、定義された目的を達成するために、ユーザーに変わってタスクを自動的に実行することができる存在です。目標達成に必要なことを自分ができる作業に分解し、自律的に実行して目的達成をサポートしてくれます。
マルチAIエージェントは、それが複数になったバージョンですね。
つまりチームワークを自動化して目標を達成するということを目指した仕組みです。
よく、LLMのプロンプトで、「あなたは〜です。」といった形で、どのように振る舞うかを設定することがあると思いますが、それを複数用意して、1つのチャットルームで会話している様子をイメージして頂けると良いと思います。
何が嬉しいのか?
まずは例を見ると分かりやすいかと思うので、参考にさせて頂いた記事を紹介します。1週間の献立を立てるというシーンです。
身近な例としてわかりやすいなと思いました。
見ていただくと、素材を活かした美味しい献立を提案してくれる調理人エージェントと、健康観点で専門的な意見を提案してくれる医者のエージェントが協調して1週間の献立を考えています。
1人で考えて煮詰まった時に、他の人の観点が加わることで、アイデアがブラッシュアップされた瞬間に出くわしたことはないでしょうか?
上記の例は、その現象が起きていて面白いです。
ChatGPTでも、「はい、今から調理人役です」「はい、ここからは医者です」のような依頼を都度出せば近しいことができます。ただ、面倒ですし、指示している側も、エージェント側も、ん、今どっちの設定?と設定がブレていきますよね。
これを気にしなくて良いのも利点かもしれません。
可能性を探る
マルチAIエージェントの世界観でよくみるのは、エージェントを集めて👇こんな感じのチーム構成を作ることです。
2023年6月頃、まさに、上記のようなチーム(ほぼソフトウェア会社)を実現しようとした実験がChatDevでした。
発表された頃(2023/6頃)には、テキストでの会話が主でしたので、コードは生成できても、画像生成したり、画像に対してレビューしたりということはできなかったわけですが、衝撃的でした。
11月に、GPT4-Vというマルチモーダルなモデルが出ましたが、その頃、発表されたのがAutoGenです。AutoGenではマルチAIエージェントの構成を簡単に組むことができるフレームワークです。
画像生成やマルチモーダルなモデルを組み合わせることで、例えば、ディレクターとデザイナーのエージェントを作り、ロゴ画像をブラッシュアップしながら作りあげていくようなことができます。
https://github.com/microsoft/autogen/blob/main/notebook/agentchat_dalle_and_gpt4v.ipynb
↑を見ると夢が広がります🚀🚀🚀
ユーザーはその時何をするのかというと、、「初めの問いや目的を提示すること、途中や結果に対する意思決定」に責務を負うことになります。
💡AutoGen を使うと、マルチAIエージェントで何が出来るのかを、簡単に動かして試すことができます。
未来を想像する
ということで、
「未来を考える会」をマルチエージェント環境で開催します。
何の目的で思考するのかが、一番初めの問いになります。(そもそもこれが無いと始まりません)
せっかくなので、読んでワクワクする未来を描きたいですね!なので目的地は以下に設定します。
「マルチAIエージェントが当たり前の世界での、ある若者の物語」を描く
よさそう👍
さて、始めようと意気込んだところで問題になるのが、誰を雇うのか?です。どのようなエージェントを設定するのかというところで迷います。
さて、「未来を考える会」には、どのような参加者がいるとよいのでしょうか?
どんなエージェントを雇うのか?
未来の物語を考えるフレームの1つとしてSF思考を参考にしてみます。
SF思考では、SFを作成することで未来像を描く。未来像から事業を考える思考フレームとしては、SFプロトタイピングという具体的なものことまで落とし込み、可能性を探ることを目指します。
SF思考の書籍「SF思考ービジネスと自分の未来を考えるスキル」では、アメリカのアリゾナ州立大学の科学と想像力センター(CSI)の例として以下のような参加者が紹介されていました。
ストーリーを描く専門家と、SF作家を仲間にいれるという点は物語を描く上では必須ですね。
今回は、"SF作家、編集者、研究者"を仲間に入れたいと思います。
各専門家のインストラクションはChatGPTの助言を参考に以下のように定義しました。
想像してみる
早速目的を与えて、マルチエージェントチームに考えてもらいましょう!
と、その前にChatGPTで試行
ChatGPTでも十分作れるのではないか?という疑問が残ります。ChatGPTに対して、自分がディレクションする形でSF物語を書いてみました。
その、一節をお届けします。
早速、📝書いてもらいました。(すご…)
未来感はありそうですが、技術に関してはあまり具体的なシーン描写ではなく単語(スマートベッドとか)が置かれてるだけで読者任せになっています。
自然な雰囲気の中にテクノロジーがあるのではないか。という未来についての想像を元に、ここに、カームテクノロジーを引用して脚色します。
カームテクノロジーの要素で物語をアップデートしたものがこちらです。
カームテクノロジーすごい!!!😳
スマートベッド → 自然木目調のベッドで自然に起床を促すものへ
未来感あふれるインタフェース → タップするとディスプレイになる壁へ
というように、カームテクノロジーなど、雰囲気をディレクションするキーワードが思いつけば、リアリティを高められるわけですが、知らなければこのディレクションは難しいものになります。
続いて、マルチAIエージェントで
マルチエージェントで物語を作るときに、技術に詳しいメンバーを入れることで視点が補われるのかが気になるポイントです。
ということで、マルチエージェントで物語を作成した、一節をお届けします。SF作家エージェントが書き出した内容を、編集者や研究者がレビューしている様子です。以下のようなやりとりが自動で起きます。
(ちなみに、何回か試行しましたが、物語の内容については、大体こんな感じのストーリーになりました… 😅 うーん。)
研究者はより、具体的な世界観を描くための技術的なアドバイスをしている様子が見えます。編集者は読者がより共感できるような内容にするにはどうするかを提案していたりします。
(やりとりが非常に面白い!😃)
肝心の内容がレビューによってアップグレードされているのか?という点についてですが、1つの章に着目すると以下のような改善がみえて面白く感じました。
初版
初期は、それっぽい技術用語を並べていたり、描写がふわっとしている(ブラッシュアップってなんだ?っていうところとか)
第二版
対して、研究者が技術的なリアリズム(AIは感情を持つのではなく、らしい反応を示す程度に。というアドバイスがあった)を持ち込みます。
第三版
編集者が、現実世界の読者との接続を試みます。より場面の空気感を感じられるものになった気がします。
振り返り
シングルエージェント(ChatGPT単体)では、物語の方向性作りに、ユーザーの知識や、思考方法の関与率が高く、常に内容への影響を意識し続けることになります。視点が寄っていったり、広がりが感じられない時があります。また、ディレクション無しで、「続けて」とChatGPTに連続して出力してもらうと、どんどん視点が偏っていってしまいます。
マルチエージェントでは、お互いの責任範囲と振る舞いの明確化が重要になると感じます。(範囲が明確ではない場合、途中で役が入れ替わったりしてやりとりがチグハグに…💦)
お互いにレビューすることで、魅力が高まる場面もあれば、逆に自分からするとそっちじゃないなーという時もありました(そこはユーザーが介在していく必要がありますし、Autogenではユーザーの介在ができます。その点も良いです)
マルチエージェントの可能性は未知で、ワクワクがすごいのが1つですが、まさにエージェントに書いてもらった物語の内容のように、主体性や関係性、人の感性について考えさせられる瞬間になります。(これを現在でも感じていることを考えると、未来の物語になってないとも言えるが…)
やってみて、ユーザーの介在は必須であると思いました。
自分自身の介在が物語を大きく方向転換させます。全自動で作る物語よりも、自分が介在する物語づくりの方が、楽しいとは思いました。
最後に
様々な観点を持つエージェントによって、思考の幅が広がる感覚は持てました。人が多角的な視点を持つことが容易にはなると感じます。そして、人の関与もまた重要事項であり、関与していくには人側にも判断軸が必要になります。
今回のタスクは非常にファジーなので、答えがないがゆえに人側にかなり判断が委ねられます。その分楽しさも感じました。
マルチAIエージェントでどのような世界が広がるのか、継続して思考していくことになりそうです。
また書きます。
最後まで読んでいただきありがとうございました。
備考
注意:マルチAIエージェント環境では、ちょっとした試行にそこそこコストが嵩むのでご注意ください&連続利用していると rate limit に引っ掛かる場合があります🙏
レビュー回数を各エージェント1回までとするなど制限を設けることで、ループを最小限にし、コストを抑えることがでるかもしれません。
OpenAI Assistant API と連携して autogen でマルチエージェント環境を構築する方法については以下が参考になります。(いわば、GPTsを連携できる感じになります。)
制限として、グループチャットのマネージャーにGPT Assistantを使うことはできないようですね。
- Group chat managers using GPT assistant are pending
コードはこちらが参考になります。
https://github.com/microsoft/autogen/blob/main/notebook/agentchat_oai_assistant_groupchat.ipynb
また、途中のやりとりが全く見えないので、APIコールされているのかと思うと不安になります😅💦
そんな方は、logを表示することをお勧めします!
import logging
logging.basicConfig(level=logging.INFO);