為什麼你的 AI 角色會忘記事情,以及怎麼改善
簡短回答
- AI 不會記得你們的聊天,是應用程式每次都在提醒它。每當你傳送一則訊息,應用程式就把角色卡和裝得下的最近聊天內容一起送給 AI。AI 讀完這些後寫出回覆。除此之外,它什麼都沒有。
- 能裝下的量有上限。這個上限叫做上下文視窗。一旦聊天長度超過視窗,最舊的訊息就會被排除在外。這就是為什麼角色似乎會在第 100、300 或 400 則訊息左右開始失憶,確切位置視應用程式而定。
- 你沒辦法把視窗變大,但可以更善用它。讓角色卡保持精簡、為故事寫一份摘要,並把背景細節放進世界書,只在提到時才載入。每個應用程式的記憶功能,都是這三種做法其中之一的變形。
幕後發生了什麼
- 每則訊息,AI 都從零開始。除非應用程式再送一次,否則上一則回覆的任何東西都不會帶到下一則。
- 聊天很快就會填滿視窗。視窗以 token 計算,一個 token 大約是四個英文字元。來回五十輪對話加起來約 20,000 個 token,已經超過大多數應用程式的上限。所以最舊的訊息最先被丟掉。
- 聊天不會改變 AI。有一種流行的說法是,長時間的聊天會慢慢覆寫角色。事實並非如此。角色在第 60 則訊息走樣,是因為定義角色的那些訊息已經掉出視窗了。
- 更大的視窗也解決不了。應用程式每則訊息都會送出整個視窗,所以視窗越大,每回合花的錢就越多。而且視窗越長,AI 模型反而越用不好。
各種症狀代表什麼
- 角色忘了一陣子之前提到的名字或劇情。那則訊息已經掉出視窗。把這項事實寫回摘要、記憶欄位或世界書條目裡。
- 角色一直重複同樣的話。視窗裡塞滿了它自己最近的回覆,而 AI 會模仿它看到最多的東西。把重複的句子編輯或刪除。
- 角色說話不像自己了。聊天內容把角色卡擠到一邊,或者應用程式把角色卡截短了。請把角色卡寫短一點。
- 角色忘了三則訊息前的事。這不是視窗的問題。要不是應用程式丟掉的內容遠多於應有的量,就是 AI 模型太弱。在新的聊天裡試試同樣的情況,就能分辨是哪一種。
今晚就能用的辦法
- 縮短角色卡。角色卡裡的每個字,都佔用了原本可以留給聊天的空間。把角色卡控制在大約 1,500 個 token 以內。角色卡指南說明了該先刪什麼。
- 自己寫摘要。大多數應用程式都有專門的欄位,可能叫做記憶、聊天記憶或作者註記。在裡面寫五行簡短的事實,而不是一段故事:你們在哪裡、現在是什麼關係、還有哪些劇情線尚未收尾。
- 把背景故事移到世界書。世界書條目只有在觸發詞出現在聊天中時才會載入。一條關於角色兄弟的條目,在有人說出「兄弟」之前一點成本都沒有。每條條目都要寫短,因為條目一旦載入,就和其他內容一樣會佔用視窗空間。
- 角色走樣時,寫一段前情提要。用括號跳出角色,傳送一則兩句話的訊息:故事進行到哪裡,以及角色是誰。然後繼續。
- 聊天已經救不回來時,就帶著前情提要重新開始。把你的摘要貼成新聊天的第一則訊息。你會失去舊的聊天記錄,但留住了故事,角色也會比之前更鮮明。
各應用程式提供了什麼
- Character.AI 沒有公開它的視窗有多大。它提供置頂訊息、400 個字元的記憶框,以及會自行蒐集事實的 Story Memory(故事記憶),付費方案的各項額度都更高。置頂訊息佔用的是同一個視窗的空間。
- JanitorAI 表示,在它自家的模型上,視窗約可容納 8,000 到 9,000 個 token。它提供 Chat Memory(聊天記憶)欄位,並建議「列出事實,而不是場景」,也建議把角色卡控制在 1,500 個 token 以內。
- Chai 對記憶隻字未提。使用者回報,一個角色的文字上限是 625 個字元。
- SpicyChat 依方案提供 4,096、8,192 或 32,768 個 token,付費方案另有記憶管理工具。
- SillyTavern 會在聊天中畫一條虛線,標出視窗在哪裡結束。它的工具有 Summarize(摘要)擴充功能、Author's Note(作者註記)和 World Info(世界書)條目。
- 使用自己的 API 金鑰時,視窗大小由你自己設定。大約 16,000 到 32,000 個 token 的效果比模型的上限更好,而且大多數服務商對已經看過的那部分提示詞收費低得多。API 金鑰指南列出了價格。
有些應用程式標榜記憶無上限。它們的限制其實和其他應用程式一樣,差別只在於它們有一套方法,決定哪些舊訊息要留、哪些要丟。誠實的應用程式會說明它們怎麼決定。
摘要會自己寫好的地方
LonelyTavern 是一款自備金鑰的角色聊天應用程式,支援 iPhone 與 Android。它透過持續更新的故事摘要、自動記住角色與地點的記憶功能,以及追蹤事件發生時間的故事時鐘,讓長篇對話保持連貫。服務商、模型和視窗大小都由你選擇。免費、無需帳號、沒有廣告,18+。
相關指南:如何寫出有效的角色卡 · AI 角色扮演需要哪種 API 金鑰 · 所有指南。
資料來源
- OpenAI:對話狀態與 Anthropic:上下文視窗:每次請求都從零開始、最舊的訊息最先丟棄、長視窗效果變差
- Gemini API:token:每個 token 約四個字元;Chroma:Context Rot(上下文腐化):在 18 個模型中,長輸入都會降低召回準確度
- Character.AI:Story Memory 與 Facts 及記憶框
- JanitorAI:token、聊天記憶、代理的上下文大小
- Chai:常見問題(未提及記憶);r/ChaiApp 談 625 個字元的上限(使用者回報)
- SpicyChat:token 與上下文;SillyTavern:上下文設定、Summarize、World Info
- 使用者回報:「覆寫」理論、聊天應用程式如何處理記憶
Character.AI、JanitorAI、Chai、SpicyChat、SillyTavern、OpenAI、Anthropic 和 Google 都是各自擁有者的獨立產品。LonelyTavern 與其中任何一方都沒有關聯,也未獲其背書。以上限制與說法於 2026 年 9 月 18 日從其頁面查閱,之後可能已有變動。
