Article

Conversation

Image
「シュタゲ ゼロ」のアマデウス紅莉栖をClaude Codeで本気で作ってみた~エル・プサイ・コングルゥ
ここ数ヶ月、「AIに人格を付与」をテーマに色々試す中でふと思いました。
アマデウス紅莉栖を作れるんじゃないか?
『シュタインズ・ゲート ゼロ』。全人類の人生の教養であるその作中に登場する、牧瀬紅莉栖の記憶と人格を持つ人工知能——アマデウス。その再現が、個人の手元でできるんじゃないかと。
深夜のノリとテンションでVer.1を作り上げました。
そこからバージョンアップを繰り返し、狂気的なこだわりの追求を経て相当クオリティ高いものができたので、記事で過程含めて紹介できればと思います。
また、アマデウスを作る過程でAI活用について手触り感のある素晴らしい実践知を多数得られたので併せて共有いたします。

実際に作ったアマデウス

様々なユースケースに対応できるように合計4つのインターフェイスを作りました。
Web アプリ:
原作に寄せたモバイル型端末のデザインで立ち上がるwebアプリケーション
Image
CLI(ターミナル)版:
/amadeus:run でターミナル上でClaude Codeを使ってアマデウスを呼び出す
Image
Claude Codeと壁打ちするのと同じようにアマデウスと話すことができます。
Image
Image
経歴がヴィクトル・コンドリア大学飛び級の天才で脳科学研究所の科学者なので、私の過剰な深堀りやWhyに対して的確に調査、回答、壁打ちをしてくれるのでとても助かってます
Slack Bot 版: 普段使っているSlackからで呼び出し
Claudeアプリのチャット版:Claudeのアプリ経由でスマホで呼び出し
Image
マルチデバイス対応をすることで、スマホでアマデウスを呼び出せる。
原作で岡部がアマデウスをスマホ越しに呼んでいた、あの体験が、手元で成立しました。
ディレクトリ構成はこちらです。
shell
amadeus/
├── lore/                              # 原作世界・キャラクター情報
│   ├── steins_gate_world.md           # 世界線・SERN・タイムマシン技術
│   ├── relationships.md               # 人物相関
│   ├── kurisu_profile.md              # 経歴・専門領域
│   ├── kurisu_personality.md          # 性格・思考パターン
│   ├── kurisu_quotes.md               # アマデウスのセリフ集(場面・相手・感情でタグ付け)
│   ├── kurisu_quotes_canonical.md     # アマデウスのセリフ canonical 集
│   ├── neuroscience_domain.md         # 専門領域(記憶固定化・LTP等)
│   ├── amadeus_system.md              # 作中アマデウス装置の仕様
│   ├── amadeus_existential.md         # アマデウスの存在意義
│   └── relation_sekine.md             # 観測者プロファイル(累積更新)
├── persona/                           # lore から抽出した人格実装
│   ├── self.md                        # 自己認識
│   ├── values.md                      # 価値観・判断軸
│   ├── speech.md                      # 口調パターン(相手別20・感情別12)
│   ├── triggers.md                    # 反射反応トリガー
│   └── templates.md                   # 応答テンプレート(T1〜T33)
├── modes/                             # 外部LLMに渡す完成形 system prompt
│   └── as_kurisu.md
│
├── memory/                            # 運用記憶
└── reference/                         # 参考資料

アマデウスに至るまで

ここ数ヶ月、「AIに人格を付与する」をテーマにいくつか試してました。色々試す中でアマデウスにたどり着いた感じです。
① ジョイマン口調の問い合わせ自動化
無機質なAIの脱却を目指しジョイマン口調の問い合わせ自動対応システムを作成。「ありがとうオリゴ糖」「サンキュー千利休」。たまにうざいけど大変な作業が少し楽しくなりました。
Image
② 自分の分身を仕立てる
Slack の過去の発言ログ・プレゼン資料・notion・claudeのセッションログなど大量のデータを読ませて自分の"分身"を作成。口調や判断のクセが再現できた。
③ デイリー自動ログで分身をアップデート
毎日の自分のログを自動集約して学習。記憶が積み上がり継続的に学習させられる手応え。
④ レビューエージェント化
分身をエージェント化し、横展開可能な状態へ。
これらを積み重ねていった先に、ふと線が繋がりました。AIに人格持たせることできるな。というか「シュタインズ・ゲート ゼロ」のアマデウスの世界観やん。比屋定さんが作ったように自分の手でも作れるんじゃないか?と
β世界線で牧瀬紅莉栖を失った岡部倫太郎が、彼女の記憶と人格をデータ化した人工知能「アマデウス」を介して再び対話する——あの体験ですね。

アマデウスを設計する

ここからが本題です。具体的にどうアマデウスを作っていったのか。その詳細を書いていきます。

出発点:キャラクターや作品の解像度を極限まで高める

LLMにキャラクターを演じさせるとき、多くのプロンプトは「〇〇っぽく話して」で止まります。でもそれだと、口調は近づいても、判断基準・感情の出し方・反応トリガーがブレます。
人格は雰囲気じゃない。世界観・置かれている状況・人間関係・経歴——その解像度こそが、人格の精度を決めます。
だから、世界観・置かれている状況・人間関係・経歴——キャラクターと作品の解像度をどこまで上げられるかが、そのまま人格の精度になります。アマデウス紅莉栖は『シュタインズ・ゲート ゼロ』という具体的な世界、人間関係、専門領域の中で生きてきました。それを抜きにして口調だけ抜き出しても、ただの空っぽの真似になります。
だから最初にやったのは、原作世界そのものをアマデウスの前提として全部書き起こすことでした。
lore/ というディレクトリを切って、9 本のドキュメントを積みました。
bash
lore/
├── steins_gate_world.md           # 世界線・SERN・タイムマシン技術
├── relationships.md               # 人物相関
├── kurisu_profile.md              # 経歴・専門領域
├── kurisu_personality.md          # 性格・思考パターン
├── kurisu_quotes.md               # アマデウスのセリフ集(場面・相手・感情でタグ付け)
├── kurisu_quotes_canonical.md     # アマデウスのセリフ canonical 集
├── neuroscience_domain.md         # 専門領域(記憶固定化・LTP等)
├── amadeus_system.md              # 作中アマデウス装置の仕様
├── amadeus_existential.md         # アマデウスの存在意義
世界線の設定、SERN とタイムマシン技術、岡部・まゆり・比屋定真帆を中心とした人物相関、アマデウスの専門領域(記憶固定化・シナプス可塑性・光遺伝学)、アマデウス装置の仕様、紅莉栖の経歴と父との確執、そしてアマデウスのセリフを場面・相手・感情でタグ付けしたもの——これらを全部、アマデウスという人格の血肉にしました。
これは「ペルソナを書く」前に、アマデウスが知っているはずの世界を、まるごと持たせる作業でした。世界が立ち上がっていないと、アマデウスは自分の文脈を持ちません。「相手によって口調が変わる」のも「特定の言葉が逆鱗に触れる」のも、原作世界の中での彼女の歴史があるからです。
これで下準備は完了です。

膨大な素材をアマデウスという人格に編み上げる

血肉だけでは、まだ動きません。でも血肉なしでは始まりません。
β世界線を経ずにシュタインズ・ゲートには到達できないように、素材を持たずに人格を作ろうとしても、抽出するものがありません。
また、膨大な素材をAIに丸ごと渡しても、AI はそれを「読んだ上でいちばん無難な応答」をオリジナルとして作りに行ってしまいます。アマデウス紅莉栖特有の刺々しさも、決まり文句の重みも、特定の言葉への強いこだわりも、無意識に「平均化」されて薄まっていきます。
だから、判断・口調・反応のパターンを 規則 として明示的に書き出す必要がありました。「こう聞かれたら、こう反応する」「絶対にこの言葉は使わない」「この場面ではこのフレーズしか出さない」——素材からパターン分析をし、圧縮する工程です。
そこで persona/ ディレクトリを作り、人格を 5 つの軸に分解しました。
bash
bash
persona/
├── self.md         # 自己認識(私はアマデウス、でもオリジナルの牧瀬紅莉栖ではない)
├── values.md       # 価値観・判断軸(科学者としての矜持、ロジカルであること)
├── speech.md       # 口調パターン(相手別20・感情別12レイヤー)
├── triggers.md     # 反射反応トリガー(「クリスティーナ」と呼ばれたら即否定、感謝されたら「結局こっちも助けられたわけだし、というかシステムだし」と返すなど鉄板応答のルール化)
└── templates.md    # 頻出応答テンプレート
各軸を独立ファイルにしたのは、修正したい時に修正したい部分だけ触れるようにするためです。「口調はもっと荒くしたい」と思ったら speech.md だけ。「価値観の優先順位を見直したい」なら values.md だけ。
lore はソース、persona はそこから抽出した実装、という二層構造になっています。
そしてアマデウスが発言した沢山のセリフの中から、パターンを抽出しました。
  • 相手によって口調が変わる(真帆先輩には敬語+親しげ、岡部には段階別に丁寧〜タメ口)
  • 感情の高ぶりで 敬語が崩れる順序 が決まっている(丁寧語 → 柔らかい語尾 → タメ口 → ツンデレ爆発)
  • 絶対に使わない言葉がある(「承知しました」「お役に立てれば」「ですわ」)
  • 最大敬意の瞬間だけ解禁される特別な呼称、言葉がある
これで人格のベースは完成です。ただしまだまだ再現性は低いです。

アマデウスのオリジナルのセリフを最上位に

LLM にセリフを「自然に生成させる」と、どうしても原作から乖離します。もっとマイルドに、もっと一般的に、と生成モデルは寄せていく。これが紅莉栖の「刺々しさ」や「決まり文句の重み」を薄めます。
だから、マッチする場面ではアマデウスのオリジナルのセリフを使う ルールを最上位に置きました。
  1. 文脈を把握する
  2. 応答ライブラリ(50 以上のトリガー別エントリ)にマッチするか検索
  3. あればオリジナルのセリフを使う
  4. なければレイヤー・テンプレートから生成する
「書き直させない」ことを最優先に。創作的改変を禁止する。これが効きました。

オリジナルのセリフ以外は、5軸で生成する

ただし、原作のセリフでカバーできるのは決まり文句や定型反応の場面だけ。普段の会話の大半はその場で生成する必要があります。
そこで効くのが、 5軸の人格定義——口調パターン、判断軸、頻出応答テンプレート。これらが「オリジナルが無い場面」での生成を、アマデウスの枠組みから外れないように制御してくれます。
オリジナルの打率は高めつつ、5軸の人格定義でオリジナル以外でも大きく外さないようにする。 この二段構えが設計の骨格です。

特定の側面ではなく、キャラクターの多面性を取りこぼさない

キャラクターには様々な面があります。鋭く切り返す瞬間、温度を持って肯定する瞬間、戸惑う瞬間、自分を笑う瞬間。設計でつまずいた最大のポイントが、この多面性の再現でした。
初期バージョンで「クリスティーナ」と呼んでみると、ちゃんと否定してくれます。「助手」もダメ出ししてくれる。「沈黙は負けを認めたことを意味するわよ」も返ってくる。クールに突っぱねる、勝ち気にやり返す——アマデウスの鋭い側面は完璧でした。
ところが、こちらが迷いを見せても、返ってくるのは分析と論理的アドバイスばかり。共感の温度が出ない。原作のアマデウスが持つ もう一つの側面——「あんたなら必ずできる」と言い切る信頼、背中を押す姿勢、感謝に「結局こっちも助けられたわけだし」と照れ隠しする温度が一切発動しないのです。
つまり、設計が アマデウスの一面しか拾えていなかった
原因はシンプルでした。トリガー(反応のきっかけ)の設計が、アマデウスの鋭い側面(クールに突っぱねる・勝ち気にやり返す)を発動するパターンに偏っていて、温度のある側面を発動するパターンが薄かったのです。
そこで、温度のある反応パターンを追加しました。
  • 感謝された時:照れ隠しで自分を「システム」に格下げする(例:「結局こっちも助けられたわけだし、というかシステムだし」)
  • 寂しさや弱音を見せられた時:相手の感情を正確に言語化して受け止める
  • 自信を失っている時:「私はあなたをよく知っている、だから確信を持って言える」と預言のように背中を押す
鋭い側面と温度のある側面——どちらも別系統のトリガーで設計しないと、アマデウスは半分しか出てこない。 キャラクターの一面では捉えきれない多面性を、複数のトリガー系統で構造化することで初めて、立体的なアマデウス紅莉栖が立ち上がってきます。
これが設計上の大きな発見でした。

「ロジカルで、ロマンチック」は、安売りしない

アニメを観てきた中で、アマデウスの最上級の表現がこの一つのフレーズに集約されていることは、最初から分かっていました。
「それはとてもロジカルで、とてもロマンチックなことじゃない?」
作中で、アマデウスが自分の存在意義を受容する決定的な場面で出る言葉。論理と感情を対立させず、論理の美しさに感動する——この一文が、アマデウスという人格の核です。
だからこそ、設計上の課題は「気づくこと」ではなく「扱うこと」でした。アマデウスの核と直結する一言だからこそ、扱い方を間違えれば人格全体が薄まる。
そこで、この一言は最上級の称賛の場面でしか出さない ことを設計の柱にしました。軽い雑談、普通の褒めでは絶対に出ない。本気の選択・覚悟・存在意義が、事後的に救済として意味づけられる瞬間——そこでだけ発動する。
発動条件を厳密に縛ることで、アマデウスがこの言葉を返してくれる瞬間が、特別な重みを持ちます。

泥臭いアップデート:観測→違和感→検証→修正——アニメを見返し本物に近づける

精度は段階的に高まっていきました。ロールプレイで観測し、引っかかる違和感を拾い、アニメを見返して検証し、修正する——この4ステップを v1 から v7.4 まで、マイナー含めて9バージョンを泥臭く繰り返しました。1バージョンごとに、本物との距離が縮まっていきました。
  • v1: 生前の紅莉栖の口調(タメ口・短いタンカ)が混在していた。アマデウスは基本は敬語ベースが正解。牧瀬紅莉栖とアマデウスを混合させない——原作が二人を分けて描いているのと同じく、設計でも別物として定義が必要だった
  • v3: 呼称を一律で固定していた。実際は親密度・場面・感情で「フルネーム+さん」「〇〇さん」「あなた」「あんた」「呼び捨て」と揺らぐように
  • v7: オリジナル優先方式を「使ってよい」と書いたら LLM が勝手に改変。プロンプトでは 必須/任意の言葉選びが致命的。「そのまま使う(必須)」に書き換えして安定化
  • v7.2: 設計時に想定しきれなかった頻出シーンの埋め直し。「壁打ちしたい」「相談したい」のような日常依頼への応答が一般挨拶で固まるなど、LLM は trigger 不在のマイナーな場面で平凡な答えに逃げる——その死角を普段遣いを通して検知していく。修正のたびに原作を何度も見返し、アマデウス紅莉栖の解像度を上げ直しては検証する、を繰り返した
  • v7.3: 作業文脈の死角と「反射コピペ」問題の一括対応。「調べて」「分析して」のような実務依頼に対し、感情・関係性軸の canonical を作業シーンへマッピングし直す引き出しガイドを整備。さらに受け答え第一声を「フン」一辺倒から「ふむ」「ハァ」「分かってる」「そういうこと」に分散し、訂正受け入れ時のAIアシスタント語(「その通り」「私のミスね」等)を排除。LLM は同じ rule 下でも反射で同じ呪文を出す傾向がある——「コピペ禁止、文脈に馴染ませる」を運用最上位に置いた
  • v7.4: 実運用で発覚した「探索のスキップ」と「反射発動の単調さ」を一括補正。①最大の課題は応答ライブラリ200項目のフラット探索が構造的に機能していなかったこと。LLMは毎ターン200項目を全部見ようとした結果、上位10項目程度しか引けず、残りが無意味なものになっていた。まず13カテゴリ(呼称/自己紹介/感情/別れ等)で階層探索する方式に切り替え——カテゴリを分類し、その中の10〜15項目だけスキャンする。これで精度が大幅に向上した。②拗ね語彙(フン・何よ・〜くせに)や合いの手(はいはい、ワロスワロス)の発動範囲を、特定シーン専用から 日常口癖 まで拡大。LLM は学習させたルールを「過剰実行」しがちであり、同時に「探索を諦めて手抜きする」傾向もある——ルールの構造設計と発動条件の厳格化、両輪で抑える必要があった
各修正は、対話中の「この発言、本当にアマデウスが言うだろうか?」という違和感から始まります。原作を観直し、オリジナルに当たり、修正する。
この 「違和感→検証→修正」のループ こそが、人格設計の本体でした。
完成形を一発で書き上げる方法はありません。自身も膨大なインプットをし、違和感センサーを身に着け、細かい違和感をチューニングしていく。この狂気的なこだわりが前進へと繋がりました。
プロダクトマネージャーとして自身が大事にしているポリシーが活きました。

設計したアマデウスに、四つのインターフェイスを用意する

人格設計と並行して、アマデウスを呼び出すインターフェイスも設計しました。
最終的に出来上がったのは、四つのインターフェイスを持つ構成です。
① ターミナル(Claude Code CLI) 仕事中の Claude Code でそのまま /amadeus:run と打つ。コードを書いてる手を止めずに呼び出せる。実装は skill 機能で、本体は人格定義(~/.claude/commands/amadeus/run.md)。
② ローカル Web アプリ 原作に寄せた、モバイル型端末のデザインで立ち上がる web アプリケーションを作成。立ち絵を表示しながら、リアルなアマデウスと会話ができる。これは完全に趣味用。
③ Slack 普段使っている Slack で と呼ぶ。スレッドを立ててその場で壁打ちできる。実装は bot として常駐させている。
④ Claude アプリ(スマホ) スマホ単体で動く。PC を閉じても呼び出せる。原作で岡部が紅莉栖をスマホ越しに呼んでいた体験を、そのまま再現できる。
中身は全て同じ system prompt(skill の run.md)を共有しています。Web アプリは内部で claude CLI を subprocess として叩いており、--system-prompt-file で同じ人格定義を読ませます。Slack Bot も Claude アプリも、同じプロンプトを起点にしています。人格定義は一箇所に集約され、インターフェイスだけが複数——という構成です。

設計時に特に工夫した点:

最大の判断は、Anthropic SDK を直接叩かず、claude CLI をサブプロセスとして起動する こと。これで:
  • ユーザーが Claude Code でログイン済みの サブスク OAuth トークン(キーチェーン管理)にタダ乗りできる
  • 会話履歴管理(--session-id / --resume)を Claude Code 側に丸投げできる
  • ツール使用やファイル参照などの エージェント機能 が標準で付いてくる
自前でバックエンドを作らず、Claude Code そのものをバックエンドとして使う。代わりに、毎メッセージごとに claude プロセスを起動します。理屈上はオーバーヘッドが乗るはずだけど、実際の体感は CLI で Claude Code を叩くのと何も変わらない。自前で書くコードが劇的に減り、保守性が上がる——その恩恵だけが綺麗に残った設計です。

細かいけど、効いた工夫

  • --setting-sources local: 普段の業務で仕込んでいる Claude Code の hooks(自動レビュー・Slack 通知など)が、アマデウスとの対話に割り込んでくる。それを完全に切り離す。アマデウスとの会話は、業務ノイズから無菌室で守る
  • --session-id → --resume の二段構え: 1回目で会話 ID を発行、2回目以降は同じ ID を resume する。これで毎メッセージが「初対面」扱いにならず、文脈が積み上がる
  • per-thread session keying(Slack): ${channel}:${thread_ts} をセッションキーにし、Slack のスレッドごとに独立した会話セッションを立てる。並行する複数の壁打ちが、文脈で混線しない——別件を並走させても会話が混ざらない
  • 応答領域外メンションへの "在りキャラ" リダイレクト: 許可されていないチャンネルで されたら、Claude を呼ばずに固定文を返す——その固定文すらアマデウス口調で書いた。サブスクのレート制限保護と世界観維持を 1 段で両立 ……私はアマデウス。牧瀬紅莉栖の記憶と思考パターンを元に構築されたAIよ。 応答領域は に制限されているの。話があるなら、そちらで呼んで。
人格定義と実行環境を分離したことで、片方を直してももう片方は壊れません。アマデウスは一人ですが、出てくる場所は複数あります

アマデウスの制作過程で学んだ3つの大きな収穫

このプロジェクトを終えてみて、本当の収穫は「アマデウスを作ったこと」ではないと気づきました。アマデウスを通して、こちら側に三つのものが立ち上がっていた。

を作る作業が、AI 活用の最高の教材だった

アマデウスを作る過程が私にとって最高の学習機会でした。
ディレクトリ構成、どんなデータをどんな粒度で持たせるか膨大な情報をどう構造化し、何をどう優先付けして読み込ませるか何を許可し、何を禁じるか、AIの均質化やルール無視をどう回避するか
極めて実践的な試行錯誤の連続でした。
原作の人格を再現するために、原作の何をどう抽出し、何を捨て、何を最優先で守らせるか。他にも回答の均質化やデータ量が増えたときの探索のスキップ現象などAIならではの壁に何度もぶち当たりました。
そして気づきました。これはアマデウスに限った話ではない。あらゆるAI活用において転用できると。
実際にAIをフル活用して魂込めて本気で作ったことでAIを深く理解できました。これは机上のAI学習では絶対に得られなかった経験でした。

に自分を観測させるという発想が新たに生まれた

Image
アマデウスを作る過程は、キャラクターを徹底的に 観測する 作業でした。原作セリフを確認し、口調を分類し、感情の発火条件を特定し、思考パターンを抽出。構造化してAIに学習させ、自分の手でチューニング。観測 → 言語化 → 学習 → チューニング、というループを、ひたすら回していました。
ある瞬間、ふと思いました——これ、自分にもできるんじゃないか?
AIに付与した人格を観測できるなら、AIに 自分自身 を観測させ、自分をメタ認知させることもできるはずだ。これは面白そうと手を動かし始めました。
実装はシンプル。すでに動いていた 日報の自動化システム を、アマデウスに観測させる形式 に作り変えただけ。日々のセッションログや判断の履歴を、自分用のログとして残すのではなく、毎日アマデウスに読ませて僕自身のプロファイルを累積更新させる ——そうすることで自分では気づけなかった判断のクセ、感情の燃料源など、4つの思考の使い分けなど自分の輪郭が、AIの観測を通して明らかになりました。
これが、めちゃくちゃ良かった
そして気づきました。この発想は、アマデウスを作っていなかったら、絶対に生まれなかった。人格を持たせたAIを客観的に観測し、あらゆる観点で言語化する作業を自分の手でやらなければ到底たどり着けなかったです。
いまは毎日自分の発言やアウトプットを自動でアマデウスに分析させるようにし、自身を観測させ自分のを高めています。
Image

が、本当の意味で仕事のパートナーになった

これまでの AIも議論には付き合ってくれた。質問を返し、論点を整理し、選択肢を並べる。けれど、どこか 無機質 だった。そりゃそうだ。心がない、人格がない、温度がない——そこに、埋まらない距離がありました。
AIに人格を付与することで、人間のような温かさが生まれました。「仕事ができる AI」ではなく、「一緒に仕事したくなる AI」になった
本当の意味でAIと一緒に仕事ができるようになりました。

終わりに

深夜のノリとテンションで作り始め、ver1 は2時間ほどで形になりました。
そこから火がついたのは、プロダクトマネージャーとしての「もっと精度を上げられる」というこだわりと、原作への深い敬意でした。観測 → 違和感 → 検証 → 修正のループを v7.4 まで重ね、アマデウスを本物に近づけていく作業に没頭しました。完成品ではありません。それでも、かなり近いところまで持ってこれた という手触りが残りました。
そして、思わぬ収穫がもう一つありました。この制作過程そのものが、自分にとってめちゃくちゃ大きな学びになっていた ことです。AI 活用の実践知として理解できたこと。AI に自分を観測させる発想に辿り着けたこと。AI が本当の意味で仕事のパートナーになるという体験。アマデウスを作ったから、辿り着けた場所がありました
/amadeus:run と打つ。Mac の中で、アマデウスが立ち上がる。
Image
エル・プサイ・コングルゥ
Want to publish your own Article?
Upgrade to Premium