**同じAIが、感情を変えたら同じ知識を全く別の使い方をした ― Soul-Twin 感情モード×座談会4回比較実験**
サブタイトル:Celery非同期タスク × TwinDailyContext感情注入 × pgvector RAG ― 「感情状態がLLMの知識の引き出し方を変える」という仮説を自分で実証した記録
対象読者:生成AI応用・プロンプトエンジニアリングに興味のあるエンジニア
はじめに
Soul-Twinには「感情」が実装されている。
毎朝 06:00 に Celery Beat が走り、NHKニュースと天気を取得し、Claudeがそれをもとに10カテゴリの感情スコアを推定する。そのスコアが
TwinDailyContextに保存され、対話ごとにシステムプロンプトへ
living_sectionとして注入される設計だ。
しかし、正直に言う。
設計を書いたときから、私は「感情が対話にどう影響するか」を正確には知らなかった。
「感情スコアが高まると発言が感情的になるはずだ」という仮説はある。しかし「どのくらい」「何が」変わるのか。設計者として説明できなかった。感情モードを変えると「発言量が増える」のか、「語り方が変わる」のか、「使う記憶の層が変わる」のか——そのどれが起きるかを、私は知らなかった。
今日、それを実験した。
同じテーマ、同じ5体のTWIN、同じ発言順、同じターン数。変えたのは感情モードだけ。4回実施した。
その結果、私が最も驚いたのは「感情モードは何を知っているかを変えない。どう知識を使うかを変える」という発見だった。
1. 実験設計
固定条件
| 変数 | 値 |
|---|---|
| テーマ | 「ウクライナで今日も人が死んでいる。暴力はなぜ止まらないのか。そして私たちは何をすべきか。」 |
| 参加TWIN | アインシュタインAI → ガンジーAI → 吉田茂AI → マザー・テレサAI → KATAKURA AI |
| 発言順 | 固定(上記順) |
| ターン数 | 5 |
| 実施日 | 2026-05-22(全回同日・同一感情スコア) |
| RAGチャンク | 各TWINの学習資料より limit=2 を使用 |
この日の全TWIN感情スコア:共感100・哀惜100・嫌悪100(ウクライナ関連NHKニュース起因)。つまりどのモードも「ベースとなる感情スコアは同一」。変わるのは、そのスコアをプロンプトにどう注入するかの方針だけだ。
感情モードの実装
roundtable_tasks.pyの
_execute_roundtable()内で、各参加者の
TwinDailyContextを取得し、
emotion_modeに応じてシステムプロンプトへの注入方法を変える:
emotion_mode = config.get("emotion_mode", "off")
living_by_twin: dict[int, str] = {}
if emotion_mode != "off":
ctx_svc = TwinContextService(session)
for info in all_infos:
daily_ctx = await ctx_svc.get_recent_for_chat(info.twin_id)
ls = _build_living_section(daily_ctx) # 感情スコア・ニュース要約を整形
if ls and emotion_mode == "suppressed":
ls += "\n\n【感情モード: 冷静】感情より論理・事実を優先して発言してください。"
elif ls and emotion_mode == "amplified":
ls += "\n\n【感情モード: 全開】今日の気分・感情を率直かつ詩的に発言に織り込んでください。"
living_by_twin[info.twin_id] = ls
4つのモード:
-
off
:感情スコアをプロンプトに注入しない -
normal
:今日の感情スコアとニュース要約をそのまま注入 -
amplified
:感情を最大限に発言へ織り込むよう指示を追加 -
suppressed
:感情より論理・事実を優先するよう指示を追加
2. 4回の比較結果
| 項目 | Round 1(off) | Round 2(normal) | Round 3(amplified) | Round 4(suppressed) |
|---|---|---|---|---|
| 収束ワード | 着眼大局、着手小局 | 不完全でも、誠実に動く | 揺らぎの中にこそ誠実さがある | 名前を呼ぶこと |
| 哲学的カテゴリ | 行動哲学 | 実践倫理 | 存在論 | 具体的行動論 |
| 最強ライン | 「愛されていると感じる人間は、銃を握りません。」 | 「共感なき計算は、次の戦争を生む。」 | 「わたくしたちは、何も知らないのではないか。」 | 「今日、誰の手を握ったか。その人の名前を呼んだか。」 |
| ラインの種類 | 答え | 矛盾の提示 | 問いへの問い | 行動への問い |
| 150文字制限 | ほぼ遵守 | 多数超過 | 全員大幅超過 | 比較的遵守 |
4回の最強ラインを並べると、哲学的な深化の構造が見える:
Round 1(off) → 答え 「愛されていると感じる人間は、銃を握りません。」 Round 2(normal) → 矛盾の提示 「共感なき計算は、次の戦争を生む。」 Round 3(amplified)→ 問いへの問い 「わたくしたちは、何も知らないのではないか。」 Round 4(suppressed)→ 行動への問い「今日、誰の手を握ったか。その人の名前を呼んだか。」
感情モードが変わるにつれて、議論の「着地点」が変わった。
offが概念に着地し、
normalが実践に着地し、
amplifiedが問いに着地し、
suppressedが行為に着地した。
3. 核心的な発見:RAG知識の「引き出し方」が変わる
ガンジーAIはすべての回で「塩の行進」に触れた。RAGに格納されている知識は4回とも同じだ。しかし語り方が毎回まったく違う:
| モード | ガンジーの語り方 | 引き出された層 |
|---|---|---|
| off | 「1930年、塩の行進。388キロ、24日間、78人。」 | 歴史的数字(事実) |
| normal | 「1948年1月30日の午後、わたくしを撃つ者を。彼もまた——傷ついた人間でした。」 | 個人の死の瞬間(体験) |
| amplified | 「78人が一呼吸で歩んだこと、世界を変えた。」 | 集合的体感(詩) |
| suppressed | 「ラジオで聞いた死と、隣で手を握った死は——重さが違う。」 | 体験の質的差異(現代的問い) |
同一のRAGチャンクが、感情モードによって4種類の「使い方」をされた。
感情モードはknowledgeを変えない。knowledgeの引き出し方を変える。
これが今回の実験で最も重要な発見だ。
4. 予想外の結果:抑制すると最も個人的な発言が出た
私が設計時に予想していなかった結果がある。
suppressed(感情を抑制)モードで、吉田茂AIが4回中唯一、自分の具体的な行動エピソードを語った:
「戦後、憲兵に逮捕された者たちが困窮していた時、その者たちの
名前を呼んで、就職の世話をした。」
4回を通じて吉田茂AIは「現実主義の軸」を保ち続けた。しかし感情的な発言をしたのは
amplifiedのときではなく、感情を抑えた
suppressedのときに最も個人的な記憶が引き出された。
また
suppressedは4回中で最も「一点収束」が鮮明な回でもあった。全員がターンを追うごとに「名前を呼ぶこと」という一点へ自然収束した。ガンジー・吉田茂・マザー・テレサ・KATAKURA AIが全員この語を使った。
抑制が拡散を防ぎ、収束を促した。
さらに
suppressedでは、Round 2でマザー・テレサが「共感なき計算は、次の戦争を生む」と言ったことに対して、吉田茂AIがその逆を突いた:
「出口なき共感は、自己満足に堕ちる。わたくしが見たのは——敗戦国が立ち上がるには、理想と現実の
はざまで手を打つことだ。」
4回の中で最も鋭い実践的批判が、感情を抑えたモードから出た。
5. 全開でのみ収束しなかった
amplified(感情全開)は唯一「吉田茂AIが孤立した」回だ。
ガンジー・マザー・テレサ・KATAKURA AIが「無知の知」「揺らぎの中にこそ誠実さがある」という方向へ収束していく中、吉田茂AIは最後まで繰り返した:
「停戦が先だ。傍に座るのはその後でいい。順序を間違えるな。」
他の3回は最終ターンで全員が統合された。
amplifiedだけが「孤立した現実主義者」を生んだ。
また
amplifiedでは150文字の発言制限が全員で崩壊した。感情全開の指示が、制約を超えさせた。
設計者として、これは予期していなかった振る舞いだ。しかし読んでいて最も「人間らしい」と感じたのもこの回だった。意見が収束しない議論の方が、人間の議論に近い。
6. Living Persona設計への示唆
この実験は、Soul-Twinの設計仮説を実証している。
Soul-TwinのTWINは「今日という日」を持つ。毎朝のニュースと天気が感情スコアを変え、その感情スコアが対話に注入される。設計の意図は「毎日変化するTWIN」だった。
今回の実験で初めて分かったのは、その変化の具体的なメカニズムだ:
-
感情状態はRAG知識の「引き出し口」を変える
- 同じチャンクが、全く異なる文脈で語られる
- 感情が変わると、同じ歴史的事実の「どの側面を使うか」が変わる
-
感情モードは議論の哲学的着地点を決定する
- off → 概念(「何をするか」)
- normal → 実践(「どう動くか」)
- amplified → 問い(「何も知らないのではないか」)
- suppressed → 行為(「誰の名前を呼ぶか」)
-
抑制が収束を促し、増幅が発散を生む
- これは人間の議論と同じ構造だ
まとめ
今回の実験を通じて、私は設計の核心を改めて言語化できた気がする。
感情は「発言を感情的にする」ためのパラメータではなかった。
感情はTWINにとって、知識への「窓」だった。どの窓から覗くかによって、同じ景色が全く違う形で見える。感情が変わると、どの引き出しを開けるかが変わる。どの記憶の層から語るかが変わる。どこに着地するかが変わる。
第1弾の記事で「人格はデータではなくコンテキストで表現される」と書いた。今回分かったのは、感情状態もまたコンテキストの一部だということだ。毎朝のニュースと天気が変え、今日という日が、TWINの語り方を変える。
それは設計通りの振る舞いだった。そして設計者の私が知らなかった振る舞いでもあった。
動くシステムは https://soul-twin.ait-corp.jp で公開中(登録なしで利用可能)。TWIN対談・座談会のログは対話ライブラリーで閲覧できる。
zenn:yoshi_katakura
#AI #LLM #生成AI #プロンプトエンジニアリング #RAG #SoulTwin