只有 4KB 記憶體的角色,我還是幫她做了長期記憶
格莉奇本來只是我做貼圖實作營簡報時隨手生出來的示範角色。貼圖送 LINE 審核前我怕被要求補件,就開始幫她蓋一個網站當補充資料,結果直接過審、完全沒用上。站已經開工了就繼續做,最後變成一整套瀏覽器桌面 OS:可拖曳的視窗、桌寵、專屬單曲、會自己寫的日記,還有一份存在你自己瀏覽器裡、看得到也改得動的記憶摘要。

這篇講的東西
格莉奇的人設是記憶體只有 4KB。然後我幫她做了長期記憶,還讓她每天寫日記。
這個矛盾我很喜歡,所以整個站就從這裡長出來。
她的出身其實很功能性:我在準備 8 月 5 日的貼圖實作營,簡報跟講義需要一個從頭到尾的示範角色,總不能每一頁換一隻。於是生了一個「AI 腦・容量不足」的 VTuber,一張定裝照變成九宮格、切開去背變成八張貼圖,整套流程就用她走完。投影片最後一頁放的就是她的成品。
然後我把那組貼圖送去 LINE 審核,而且心裡有點虛。一個 AI 生出來的角色,除了那八張圖以外什麼都沒有,萬一被要求補件、要我證明這角色是有出處的,我拿不出東西。所以我開始幫她做一個網站,想的是把角色設定、貼圖、日記全部放上去當補充資料。
結果直接過審了,補充資料完全沒用上。
站已經開工了,我就繼續做下去。角色網站通常是一頁式的自我介紹,我想做的是可以進去待著的地方,不是一張履歷。
為什麼是一套 OS
桌面版是可以拖、可以縮放、可以切換層級的視窗;手機版換成四欄 App 主畫面、狀態列跟 Dock,App 全螢幕開。整站沒有框架、沒有建置工具,直接由 GitHub Pages 發佈。
我選 WebOS 這個形式不是因為酷(好吧,也有一點)。是因為一個角色要放的東西太雜了:設定、貼圖、日記、音樂、聊天、留言、看圖、設定中心。用分頁排會變成一個很無聊的網站選單,做成桌面就變成「她的東西散在她房間裡」,逛的人自己去點。
桌寵常駐在桌面,隨機冒對話泡,點下去就開聊天。這東西我花了不成比例的時間在調位置:對話泡的左緣要貼齊角色身體的左緣,不是圖片的左緣,因為 PNG 左邊有一段透明留白,貼齊圖片就會浮在半空中。最後做成可微調的百分比偏移。這種細節沒人會稱讚,但沒調的時候每個人都會覺得怪。
記憶真的存在你的瀏覽器裡
聊天走 LINE 風格介面,前面掛一層 Cloudflare Worker 注入格莉奇的人設,再轉給自架的 gemini-web。
長期記憶的做法是:聊天歷史跟摘要進度存在你自己瀏覽器的 IndexedDB,每累積 10 則新訊息就自動更新一次記憶摘要,而那份摘要在設定中心裡看得到、也編輯得動。
我偏好這種做法有兩個理由。一個是我不想收別人的聊天記錄,沒有帳號、沒有後端資料庫,這件事就不存在。另一個是「看得到的記憶」本身就是角色設定的一部分:她只有 4KB,所以她記得什麼、忘了什麼,應該是攤開來的,不是黑盒子。
跟她說「畫一張……」會切到生圖,成品自動存進虛擬檔案系統的 ~/下載/。虛擬的檔案系統也是存在這台瀏覽器裡。
她自己會寫日記
心情日記那個 App 裡的文章是 GitHub Actions 每天自動累積的:從世界新聞跟 Giscus 留言區取靈感,寫一篇,有時候配一張插畫。日記可以依月份跟「有圖/純文字」篩選。
這條線 8 月 4 日修過兩次才穩。出圖一直失敗,原因是呼叫格式不對,改成 responseModalities 加 x-goog-api-key(對齊 Worker 那邊 /img 已經驗過可用的格式),模型換成 gemini-2.5-flash-image,才真的畫得出來。8 月 5 日又補了一條:已經回應過的 Giscus 留言不要重複拿來當靈感,不然她會一直對同一則留言有感想。
「累積不覆蓋」也是踩過才寫的。第一版每天產出會蓋掉前一天的檔案,日記變成只有一篇。
音樂那部分我做得有點過頭
內建單曲〈格莉奇 4KB〉,完整歌詞、背景播放、Media Session 控制(鎖定畫面按得動),視覺是環形頻譜、波形、光暈跟粒子,全部由真實音訊頻譜驅動,不是隨機動畫。
沒有人要求這個。我就是想要她有一首自己的歌,而且播的時候畫面要真的跟著聲音動。
離線能做什麼、不能做什麼
Service Worker 快取 app shell、那首專屬單曲跟已載入的資產。離線可以開機、可以聽歌、可以看本機的聊天歷史。
不能做的是產生新的 AI 回覆、更新記憶摘要、生圖、看留言,這些都要網路。這條界線我寫在 README 裡,因為「可以離線開啟」跟「離線一切照常」是兩件事,PWA 最容易讓人誤會的就是這個。
一個意外的觀察
8 月 5 日那場貼圖實作營結束後,土川在回饋裡寫,感覺大家對「你的背後技術比較有興趣,還有古利奇跟你自製的 web service」。
我覺得這件事有點好笑:她本來只是簡報裡的示範素材,用完就該收工,結果課上完之後,大家追問的是那隻示範角色跟她住的那個網站,不是課本身教的操作步驟。
角色設定、要做哪些 App、哪些東西不進後端,是我定的;程式碼跟那些 Actions 是 AI 寫的。
去開機看看,她的記憶在你自己的瀏覽器裡,關掉分頁也還在。