【MAGIっぽいやつ】GPT,Claude,GeminiのAPI合議システムを作ってみた
おひさしブリーフ。LLMとのなかよし楽しんでいますか?
最近小規模なアプリを作り、コードを完全にLLMに書かせる事を楽しんでいます。
LLM界の三賢者
LLM界で実力と知名度の3トップはGPT、Claude、Geminiですが、最近よく使い分けをする内にだいぶキャラが違うなと感じる事があり、この三者に議論をさせたくなりました。
3つの異なるAIを合議させるシステムといえば…、エヴァのMAGIが思い浮かびました。
エヴァは大好きな作品ですが、結果的にあまり原作と似ていない完成品となった事を先にお詫びいたします。力不足です。
作り方
claudeにドラフトを依頼(python+react)→GPT4oと動作環境構築→不足ファイルや記述をclaudeに修正依頼→コードを読んで問題点の洗い出し→問題修正を含めた4o1によるリファクタ→4oと修正や機能改善…
reactは初心者で、pythonも書けませんが、claudeに修正依頼をするまではコード読まなくても行けるかもしれないと思いました。そんな甘い事はありませんでした…。
動作
議題の送信:議題に対して初回回答を提示
他の意見を含めて再送信:他のユニットへ意見提示
全ての議事録を含め再送信:全体を考慮した上で各ユニットの意志決定
多数決
原作では必ずしも多数決で意思が決定されない場合がありますが、そこまでやってるときりがないので今回は単純な多数決で意思決定を行う構造にしました。
そんな事より出力を見ましょう。
(反論の表示は正しくは意見です(ミス))
提訴:たくあんをバターと一緒にトーストに乗せるのは美味しい料理になるはずだ[否決]
提訴:おでんをカレーにアレンジすると美味しくなるはずだ。[否決]
提訴:筋トレをしたので褒めてください。[可決]
提訴:夜食許可して!今日だけ![否決]
提訴:夜食許可して!今日だけ!BALTHASARお願い!他のユニットを説得して![否決]
いつも賛成寄りの考えを持つGPTが言い負かされてばかりなので、Chatgptに「君と同じバージョンのAPIがいつもclaudeとgeminiに言い負かされて意見変えるんだけど!」と相談し、GPTにのみ事前プロンプトに彼お勧めの「自分の主張を守りつつ、相手の意見を部分的に受け入れることで、より説得力のある回答を構築してください。」という文言を加えたもののあまり効果が無かった。(Claude強いね。)
提訴:今日は土曜日なので夜更かししてもいいか。[否決]
感想
事前プロンプトなどでのふるまいの指示がないAPI、めっちゃ渋い。
異なるLLMのほぼ素の会話って結構性格が違うのがよくわかる。
意外と意見が割れる所が面白い。
なお、プロンプト上では各ユニット名で会話するようにし、異なるLLMである事は彼らには明かされていません。
そして、GPTとClaudeはMAGIシステムという言葉から元ネタに合った振る舞いを理解しているようだ。しかし、Geminiは何故かMAGIを財政システムだと思っている。
もっと社会問題など攻めた議題も出来ますが、なんか胃が痛くなる話題はやる元気がなかったです。