AI VTuber 的記憶與自主性設計

這篇記錄的是我做AI VTuber專案時,把「怎麼設計得像活的」拆解出來的兩個核心機制:長期記憶怎麼存、自主行動怎麼來。適合已經在動手做LLM驅動虛擬主播雛型、對prompt、RAG、embedding有基本概念的人讀。讀完能判斷自己的專案該先做哪一層記憶、主動迴圈怎麼加、玩遊戲這件事現在該不該碰,而不是一開始就想著做出能自主玩任何遊戲的AI VTuber。

對應的專案是010-AI-VTuber,背景可以先看AI-VTuber 是什麼-白話入門。我對這個設計的原則很簡單:誠實面對LLM的能力邊界,先用最省成本的做法把「像活的」的感覺做出來,不要一開始就衝著玩遊戲去。

現在的雛形只有短期記憶,程式一關就忘光

目前的雛形版本只靠context window(上下文視窗)裡最後8輪對話撐場面,代表AI VTuber完全不記得昨天發生的事,也不記得誰是常客。長期記憶得另外設計,由淺到深大致分四層:

做法怎麼運作成本/難度適合情境
事實清單把重要事實寫成檔案(例如「觀眾A是常客」「上次玩薩爾達」),開場時整包塞進system prompt零成本、最穩起步就用這個
滾動摘要對話太長時,讓LLM把內容壓成摘要存檔,下次對話再注入低成本控制token用量、跨天記憶
向量庫語意檢索(RAG)每條記憶轉成embedding存進Chroma、FAISS這類向量資料庫,需要時語意檢索最相關的幾條再注入中;embedding可以用本地模型免費跑,GTX 1660就能負擔記憶量大、多個角色要共享同一套世界觀
知識圖譜記錄實體與實體之間的關係高多數個人專案用不到

何時寫入記憶,比怎麼存更關鍵

每句對話都存下來會爆量,而且大多是雜訊。業界的標準做法叫「反思」:每場直播結束後,讓LLM回顧整場內容,自己萃取出幾條值得長期記住的重點再存檔,而不是逐句無腦記錄。

這套「記憶流加重要性評分加反思」的架構,出自史丹佛2023年的論文《Generative Agents: Interactive Simulacra of Human Behavior》(俗稱AI小鎮),是這個領域公認的範本藍圖。該記的內容大致分三類:角色自己的設定與經歷,用來維持人格一致;觀眾互動紀錄,誰是常客、聊過什麼,這部分要留意隱私;事件記憶,玩過哪些遊戲、發生過什麼趣事。

務實路線:先用零成本的檔案法,記憶量大了才上向量庫

對「一個角色每天直播」這種規模,事實清單加滾動摘要已經足夠而且穩定,純檔案零成本,先做這一層就好。等到記憶量真的大到塞不進system prompt,或是要做一群角色共享世界觀,再上向量庫,embedding走本地免費模型(例如bge-small)就好,不需要額外的API費用。

AI VTuber看起來有自我,其實是工程堆出來的錯覺

先講清楚,免得期待落空:LLM沒有真正的意識或主觀體驗。像以自主感聞名的AI VTuber Neuro-sama那樣,看起來「有自我、會主動」,本質是工程編排出來的效果,由三樣東西堆出來:主動迴圈、人格一致性、長期記憶。這三樣做好,觀眾就會覺得「她像活的」,但底層仍然只是程式運作。

自主行為的本質,是多加一個定時戳LLM的迴圈

現在的雛形是被動的,等使用者打字才會回應。要做出自主的感覺,做法是加一個主動迴圈:沒人講話的時候,定時去問LLM現在想說什麼、想做什麼,讓它自己開話題、吐槽、回應彈幕。這是CP值最高、相對好做的一步,只需要一個排程器加上幾個可選動作。

flowchart LR
  A[定時排程器觸發] --> B{目前有沒有人在聊天}
  B -->|沒有| C[主動找話題或吐槽]
  B -->|有| D[被動回覆訊息]
  C --> E[發到聊天室]
  D --> E

玩遊戲是完全不同量級的工程,別一開始就衝這個

讓AI VTuber自己玩遊戲得拆成三步,每一步都有坑:看畫面(感知)要截圖丟給能理解圖片的視覺語言模型(VLM,例如Qwen-VL或GPT-4o);決策是讓LLM依畫面內容決定下一步動作;操作則是模擬鍵盤或手把輸入去執行。VLM又貴又慢,GTX 1660本地跑大型VLM很吃力,多半得走API,成本與延遲都會上升。

務實路線:先做主動迴圈,玩遊戲放最後

在GTX 1660加低預算的條件下,別一開始就追「自主玩任意遊戲」,那會吃掉全部時間與預算。比較合理的順序是:先做主動迴圈,讓AI在冷場時自己找話題、回聊天室,這是最像活的、也最該先做的一步;接著做可程式化的簡單互動,像文字遊戲、猜數字、觀眾問答、讀彈幕做反應;再來是看畫面吐槽,定時截圖丟給VLM API做評論,比實際操作遊戲便宜也可行;真正的自主操作遊戲放到最後,或者挑一款有現成API的遊戲做展示就好。

24小時自主發言的代價是內容風險,得靠護欄擋下來

自主又24小時在線的AI VTuber,有說錯話、被觀眾釣魚帶風向的風險。上YouTube之前要加內容過濾與護欄,包含敏感詞處理、拒答政策、人設邊界。主動迴圈的頻率也不能設太高,否則token成本和碎念感都會失控。

相關筆記