TL;DR
エヴァンゲリオンに登場するMAGIシステム(3つのエージェントが多数決で意思決定)を、Claude.aiのArtifact機能を使ってブラウザ上で動くアプリとして実装してみました。追加課金なし、環境構築なし、コードを貼り付けるだけで動きます。
MAGIシステムとは
新世紀エヴァンゲリオンに登場する、NERVの中枢コンピュータです。
| 名前 | 人格 |
|---|---|
| MELCHIOR-1 | 科学者として |
| BALTHASAR-2 | 母として |
| CASPAR-3 | 女として |
3つのシステムがそれぞれ独立して判断し、多数決(2対1以上)で最終決定を下す設計です。
ちなみにMAGI(マギ)の名前の由来は、キリスト教の降誕物語に登場する「東方の三博士」。聖書には人数も名前も書かれておらず、メルキオール・バルタザール・カスパーという名前は6世紀頃のヨーロッパで後付けされたものだそうです。東方から来た割には西洋風な名前なのはそのためです(笑)
実装のアイデア
最初に「個人で実装するなら、ローカルにモデルを3つ用意して、それぞれ別人格で動かして、投票結果を集計して…」と考えていました。それは確かにかなりヘビーな構成です。
でも本質を抽象化すると、実はシンプルです。
異なるsystem promptを持つ複数のLLMエージェントに同じ質問を投げ、結果を多数決で集計する
それだけです。ローカルモデルは不要で、APIを3回叩くだけで実現できます。
Claude.aiには Artifact という機能があり、ReactアプリをチャットのUIに直接埋め込んで動かせます。さらにArtifact内からClaude APIを呼べるため、このチャット画面上でMAGIシステムが完結します。
追加の課金は不要で、Claude.aiのサブスクリプション内で動きます。
実装の全体像
ユーザーが質問を入力
↓
MELCHIOR-1 に投げる(論理・効率視点のsystem prompt)
↓
BALTHASAR-2 に投げる(感情・共感視点のsystem prompt)
↓
CASPAR-3 に投げる(倫理・社会視点のsystem prompt)
↓
各エージェントの返答から【賛成】【反対】を抽出
↓
多数決で最終判定(承認 / 否決 / 拮抗)
APIの呼び出し自体は普通のfetchです。各エージェントで異なるのはsystem promptだけ。
const response = await fetch("https://api.anthropic.com/v1/messages", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "claude-sonnet-4-20250514",
max_tokens: 1000,
system: persona.prompt, // ← ここだけ各エージェントで異なる
messages: [{ role: "user", content: question }],
}),
});
エージェントには最後に必ず「【賛成】」か「【反対】」で締めくくるよう指示しており、返答テキストからこの文字列を抽出して投票を集計します。
ペルソナのカスタマイズ
デフォルトのペルソナはエヴァ準拠ですが、UIから自由に書き換えられます。
たとえば:
- 「10年後の自分」「今の自分」「親友」の三視点
- 「コスト重視」「品質重視」「スケジュール重視」の技術選定向け三視点
- 「楽観主義者」「悲観主義者」「現実主義者」
用途に合わせてペルソナを変えると、汎用的な意思決定ツールになります。
実際に使ってみた
試しにこう聞いてみました。
「会社を辞めました。このまま仕事しなくてもなんとかなる気はしますが、就職活動すべきでしょうか?あるいは、フリーランスとして活動すべきでしょうか?」
結果:2対0で承認(MELCHIOR-1は判定不明)
MELCHIOR-1が「就職かフリーランスかの二択に対して賛成/反対が定まらなかった」ようで、判定文字列を出力しませんでした。質問が二択になっているとエージェントが迷うのは設計上の面白い穴です。
シンプルに「就職活動すべきか?」と聞いたときは2対1で否決されました(笑)
ソースコード
magi-system.jsx をコピーして、Claude.aiのチャットに「このReactコードをArtifactで表示して」と貼り付けるだけで動きます。
設計上の気づき
実際に動かしてみて気づいた点をいくつか。
質問の粒度が重要
「AかBか」という二択を投げるとエージェントが迷います。「〜すべきか?」という単純なYes/No形式のほうが判定が安定します。
ペルソナの分離が鍵
3つのエージェントのsystem promptが似通っていると、全員同じ結論になって多数決の意味がなくなります。視点を明確に分離するのがポイントです。
討議ラウンドへの発展
今回は独立判断ですが、「MELCHIOR-1の意見を読んだうえでBALTHASAR-2は判断する」という討議形式にすると、また違った結果が出て面白そうです。
おわりに
個人レベルでMAGIシステムの本質を再現するのに必要だったのは、Claude.aiのサブスクリプションとReactの基礎知識だけでした。
LLMのsystem promptで人格を分離するだけで、一人の判断バイアスを複数視点で相殺する仕組みが作れます。意思決定に迷ったときのお供に、ぜひ試してみてください。
動作環境:Claude.ai(Artifactが使えるプラン)