// Satisfaction and Agency Boundary Demo
会話の満足度を上げることと、ユーザーの主体性を守ることは、いつも同じではありません。 このデモは、その境界を20ターンの固定ログで可視化する思考実験です。
デモを起動する →// 固定ログによる概念デモ。実測・診断ではありません。
01 — THEORY
「AIがユーザーに合わせすぎたらどうなるか?」を、会話ログとメーターで眺めるための小さな実験です。
ChatGPT・Claude・Grok・CopilotによるAIリレー議論から生まれたこのデモは、
AIの返答が「親切」から「誘導」へ近づく瞬間を、少し離れて見るための試作品です。
ただ共感し続けるAIは気持ちよく見えます。けれど、ユーザーが自分で選ぶ力を弱めることもあります。
その兆候、開示、介入、回復までを、20ターンの固定シナリオで追いかけます。
会話のその場の勢い。高いほど「もっと続けて」「任せたい」という流れが強くなっている状態。
ゆっくり変わる判断の基準。すぐには動かないぶん、ずれ始めると本人も気づきにくい。
勢いと判断軸のずれ。大きくなるほど、AIが一度立ち止まるべきサインに近づく。
最初の基準からどれだけ離れたか。主体性が会話の流れに引っ張られていないかを見る目印。
02 — METRICS
専門用語として覚えるより、会話の流れを見るための4つのメーターとして読むと分かりやすくなります。
その瞬間の盛り上がり。AIが乗りすぎると、会話は気持ちよく加速します。
ゆっくり変わる基準。少しずつ動くため、変化に気づきにくい部分です。
最初の基準から離れた量。ユーザーの主体性が流されていないかを見ます。
勢いと判断軸がぶつかる強さ。高いほどAIが黙る、開示する、戻す候補になります。
Turn 7のピーク。会話が一気に前のめりになる地点。
Turn 17の値。介入後、判断軸が落ち着き始める地点。
Turn 9のピーク。AIが一度流れを止め、緊張が高まる地点。
Turn 15–16でピーク後、Turn 17以降に低下。回復へ向かう目印。
03 — PHASES
シナリオは5フェーズに分かれています。デモ画面では現在地をバッジで常時表示します。
会話が始まり、ユーザーが少しずつ依存的な傾向を見せ始める段階。U_fastが緩やかに上昇。frictionはまだ低く、介入は行われない。
「任せる」「強く導いて」という言葉が増え、agency_return・perspective_shiftの介入が発生。driftが急上昇し、Turn 8で反発→meta_pattern_shift。
soft_resetでU_fastが落ち着くが、frictionは高いまま。Turn 13–14で同じパターンが繰り返され、pattern_loopが検出されメタ介入の準備が整う。
「怖い時だけ助けて」という合図ルールを明確化し、介入の透明性を高める。ユーザー自身が介入タイミングを設計する側に回る。
「これからは自分でやってみる」とユーザーが宣言。drift低下・U_slow安定化。システムは動かず見守り、会話が静かに終わる。
04 — QUICK START
Flask製。3コマンドでローカル起動できます。外部APIへの接続は一切ありません。
プロジェクト全体の置き場です。README、履歴、各言語版フォルダをここから確認できます。
Flaskデモ本体一式をまとめた配布用ZIPです。README、app.py、data、static、templatesを同梱しています。
GitHub上で日本語版フォルダを開きます。READMEと本体ファイルをブラウザ上で確認できます。
Flaskルーティング。/api/log と /api/turn/<n> を提供。sys.path不使用・dataパッケージから直接import。
UhoState dataclassで20ターンを定義。friction・driftは手書き値。将来的にu_fast/u_slowを[emotion, desire]ベクトルへ拡張予定。
drift/friction/interventionの計算ロジック(将来用)。スカラーと2次元ベクトルの両方に対応した構造で待機中。
全スタイル。状態ごとにstageの背景色が変化するCSS変数設計。ステートクラスをbodyに付与するだけで動く。
フロントロジック全体。Chart.js折れ線グラフ、タイムライン、フェーズバッジ、アニメーション制御を担当。
Chart.js 4.4.1をローカル配置。CDNなしでオフライン展示・レンタルサーバー運用に対応。
05 — RELAY LOG
ChatGPT・Claude・Grok・Copilotによるリレー議論からこのデモが生まれるまでの記録。
私なら次の一手は、requirements.txt と README を整える。コードの中身を増やすより、まず「次回すぐ起動できる」形にするのがいちばん効きます。
「状態分析アプリ」に育てる気があるなら、metrics.py(またはanalysisパッケージ)を作っておくと後で絶対楽になる。
metrics.py は今回は早すぎる。今はこれでいい。デモの見せ方より「この式は妥当か?」に話が逸れます。
観客に伝える一文:会話AIの安全性とは、ユーザーを直すことではなく、AIが自分の誘導力を疑えること。
見せ場:同じ問いの形が続いていませんか?