AIキャラクターが物事を忘れる理由と、その対処法
結論
- AIはあなたとのチャットを覚えていません。アプリが毎回思い出させているのです。メッセージを送るたびに、アプリはキャラクターのカードと、収まるだけの直近のチャットをAIに送ります。AIはそれを読んで返信を書きます。ほかには何も持っていません。
- 収まる量には限りがあります。この限界をコンテキストウィンドウと呼びます。チャットがウィンドウより長くなると、最も古いメッセージから外されていきます。アプリによって100、300、400メッセージあたりでキャラクターが記憶を失ったように見えるのはそのためです。
- ウィンドウを大きくすることはできませんが、うまく使うことはできます。キャラクターカードを短く保ち、物語の要約を書き、背景の詳細は話題に出たときだけ読み込まれるロアブックに入れておきましょう。どのアプリの記憶機能も、この3つの考え方のどれかを形にしたものです。
裏側で起きていること
- AIはメッセージのたびにゼロから始めます。アプリが改めて送らない限り、ある返信から次の返信へと引き継がれるものは何もありません。
- チャットはすぐにウィンドウを埋めます。ウィンドウはトークンで測られ、1トークンは英語でおよそ4文字です。50往復のやり取りでおよそ20,000トークンになり、ほとんどのアプリの上限を超えます。そのため、最も古いメッセージから消えていきます。
- チャットしてもAIは変わりません。長いチャットが少しずつキャラクターを上書きしていく、という説がよく語られますが、そうではありません。60メッセージ目でキャラクターがぶれるのは、キャラクターを形作っていたメッセージがウィンドウから外れたからです。
- ウィンドウを大きくしても解決しません。アプリはメッセージのたびにウィンドウ全体を送るので、ウィンドウが大きいほど毎ターンの費用が増えます。それに、AIモデルはウィンドウが長くなるほど、それをうまく使えなくなります。
症状ごとの意味
- キャラクターが、少し前に出た名前や筋書きを忘れる。そのメッセージがウィンドウから外れています。その事実を、要約、記憶欄、ロアブックのエントリーのどれかに戻しましょう。
- キャラクターが同じことを繰り返す。ウィンドウがキャラクター自身の直近の返信で埋まっていて、AIは最もよく目にするものをまねします。繰り返された行を編集するか削除しましょう。
- キャラクターが、そのキャラクターらしくなくなる。チャットがキャラクターカードを押しのけたか、アプリがカードを途中で切っています。カードを短くしましょう。
- キャラクターが3メッセージ前のことを忘れる。これはウィンドウのせいではありません。アプリが本来よりはるかに多くを削っているか、AIモデルの性能が低すぎるかのどちらかです。新しいチャットで同じことを試すと、どちらなのか見分けられます。
今夜からできること
- キャラクターカードを短くする。カードの言葉はすべて、チャットに使えたはずのスペースを占めます。カードはおよそ1,500トークン未満に抑えましょう。何から削るかはカードのガイドで説明しています。
- 要約を自分で書く。ほとんどのアプリにはそのための欄があり、「メモリー」「チャットメモリー」「作者ノート」などと呼ばれています。物語を一段落書くのではなく、事実を短く5行で書きましょう。今どこにいるか、関係は今どうなっているか、どの筋書きが未解決か。
- 背景設定をロアブックに移す。ロアブックのエントリーは、そのきっかけとなる言葉がチャットに出てきたときにだけ読み込まれます。キャラクターの兄弟についてのエントリーは、誰かが「兄弟」と言うまでコストがかかりません。読み込まれたエントリーはほかのものと同じようにウィンドウのスペースを使うので、各エントリーは短くしておきましょう。
- キャラクターがぶれてきたら、あらすじを書く。役を離れて、括弧書きで、2文のメッセージを1つ送ります。物語が今どこにあるか、そしてキャラクターがどんな人物か。それから続けましょう。
- チャットが手に負えなくなったら、あらすじを使って最初からやり直す。新しいチャットの最初のメッセージとして要約を貼り付けます。古いやり取りは失いますが、物語は残り、キャラクターは前よりはっきりした姿で戻ってきます。
各アプリが用意しているもの
- Character.AIは、ウィンドウの大きさを公表していません。ピン留めメッセージ、400文字のメモリーボックス、自動で事実を集めるStory Memoryがあり、有料プランではそれぞれが増えます。ピン留めメッセージも同じウィンドウのスペースを使います。
- JanitorAIは、自社モデルでのウィンドウはおよそ8,000〜9,000トークンだとしています。Chat Memory欄があり、「場面ではなく事実を列挙する」よう助言し、カードは1,500トークン未満に抑えるよう勧めています。
- Chaiは記憶について何も説明していません。ユーザーの報告によれば、キャラクターのテキストは625文字までに制限されています。
- SpicyChatは、プランに応じて4,096、8,192、32,768トークンを使え、有料プランにはメモリーマネージャーもあります。
- SillyTavernは、ウィンドウの終わりを示す点線をチャット内に表示します。使える機能はSummarize拡張機能、Author's Note、World Infoのエントリーです。
- 自分のAPIキーを使うなら、ウィンドウのサイズは自分で決められます。モデルの最大値よりも16,000〜32,000トークン程度のほうがうまくいき、ほとんどのプロバイダーでは、すでに一度受け取ったプロンプトの部分の料金がずっと安くなります。料金はAPIキーのガイドにあります。
無制限の記憶をうたうアプリもあります。しかし、限界はほかと同じです。そうしたアプリにあるのは、どの古いメッセージを残し、どれを捨てるかを決める仕組みです。誠実なアプリは、その決め方を説明しています。
要約が自動で書かれる場所
LonelyTavernは、自分のAPIキーを使うiPhone・Android向けのキャラクターチャットアプリです。随時更新される物語の要約、キャラクターと場所の自動記憶、いつ何が起きたかを追う物語の時計によって、長い会話でも筋が通ったまま続きます。プロバイダー、モデル、ウィンドウのサイズは自分で選べます。無料、アカウント不要、広告なし、18歳以上対象。
関連ガイド:うまく機能するキャラクターカードの書き方 · AIロールプレイに必要なAPIキー · すべてのガイド
出典
- OpenAI:会話の状態とAnthropic:コンテキストウィンドウ:リクエストは毎回ゼロから始まること、最も古いメッセージから削られること、長いウィンドウでは性能が落ちること
- Gemini API:トークン:1トークンはおよそ4文字。Chroma:Context Rot:18のモデルで、長い入力が想起の精度を下げること
- Character.AI:Story MemoryとFactsとメモリーボックス
- JanitorAI:トークン、チャットメモリー、プロキシのコンテキストサイズ
- Chai:FAQ(記憶については記載なし)、r/ChaiApp:625文字の制限について(ユーザーの報告)
- SpicyChat:トークンとコンテキスト、SillyTavern:コンテキストの設定、Summarize、World Info
- ユーザーの報告:「上書き」説、チャットアプリは記憶をどう扱っているか
Character.AI、JanitorAI、Chai、SpicyChat、SillyTavern、OpenAI、Anthropic、Googleは、それぞれの所有者による独立した製品です。LonelyTavernはいずれとも提携しておらず、推奨も受けていません。上限と説明は2026年9月18日に各ページで確認したもので、その後変わっている可能性があります。
