1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MAGIシステムをClaudeのArtifactで作ってみた

1
Posted at

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が使えるプラン)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?