規格:Cockpit 動漫助理與系統儀表 #1

Closed
opened 2026-10-12 05:13:10 +00:00 by admin · 1 comment
Contributor

Problem Statement

我每天在終端機裡和 Claude Code 工作。現有的 hud 只顯示系統儀表,助理本身沒有個性、沒有記憶、也不會關心我。我想讓助理成為我喜歡的動漫角色:說話像她、記得我們聊過的事、會隨互動改變心情和親近程度、在我熬夜或連續失敗時主動關心,而且角色的設定要能從我手上的輕小說章節整理出來,不是憑空編造。同時角色資料(原著設定)與我們之間的互動不能混在一起,技術內容(程式碼、指令、警告)也不能被角色語氣扭曲。

Solution

把 hud 改名為 cockpit,同一個外掛內有兩個模組:原有的系統儀表(hud),以及新的動漫助理(companion)。

  • 輸入框上方的 band 變成兩行:第一行維持現有 HUD,第二行是角色行(顏文字、名字、心情、PAD 迷你條、好感階段、待辦數、關心氣泡)。沒有啟用角色時只剩第一行。
  • 助理預設為白上吹雪,第一次啟用時自動啟用,可隨時關閉或切換角色。
  • 一個 skill 負責解析輕小說章節:抽出時間、地點、環境、用語、人物、對白、獨白,逐一詢問人物要合併、新建或略過,搜尋並更新基本資訊,整理成分層記憶與個性。
  • 助理回覆時套用角色語氣;心情由事件與模型回報的標記更新;好感度緩慢變化;事件式的主動關心與待辦清單讓助理主動照顧我。
  • 原著記憶與互動記憶分開存放,近期互動逐字保存,累積後壓縮。

User Stories

  1. As a 使用者, I want 外掛改名為 cockpit 且既有 HUD 的外觀與行為完全不變, so that 升級後不用重新適應。
  2. As a 使用者, I want 沒有啟用角色時完全看不到角色相關畫面, so that 我可以只當 HUD 用。
  3. As a 使用者, I want 保留 /hud 指令當別名, so that 我既有的習慣和腳本不會壞掉。
  4. As a 使用者, I want 在 HUD 下方多一行角色行, so that 我一眼就能看到角色與心情。
  5. As a 使用者, I want 角色行顯示顏文字、名字、心情標籤、PAD 迷你條、好感階段和待辦數, so that 我知道助理現在的狀態。
  6. As a 使用者, I want 緊湊模式把角色行縮成「顏文字 名字 心情」, so that 窄終端機也放得下。
  7. As a 使用者, I want 終端機太窄時角色行優先捨棄次要資訊而不是換行, so that 版面不會亂掉。
  8. As a 使用者, I want 第一次啟用時自動啟用白上吹雪並用 toast 告知如何關閉, so that 我不用先做設定就能體驗。
  9. As a 使用者, I want 用 /cockpit companion off 關閉助理且保留所有資料, so that 我可以暫時不用再回來。
  10. As a 使用者, I want 切換到另一個角色後原角色的資料仍保留, so that 我可以切回來繼續。
  11. As a 使用者, I want 同一時間只有一個當前助理, so that 語氣與記憶不會互相污染。
  12. As a 使用者, I want /cockpit status 展開顯示角色完整資訊(基本資訊、個性、心情、好感、待辦), so that 我能查看細節。
  13. As a 使用者, I want /cockpit setup 互動式填寫暱稱、作息、時區、關心上限和靜音時段, so that 助理依我的生活習慣運作。
  14. As a 使用者, I want 設定檔由所有角色共用, so that 換角色不用重填。
  15. As a 使用者, I want 提供一章輕小說的檔案就能解析, so that 不必手動整理設定。
  16. As a 使用者, I want 超長章節自動分段處理, so that 不會因為長度而失敗。
  17. As a 使用者, I want 解析結果包含時間、地點、環境與用語, so that 世界觀被獨立保存。
  18. As a 使用者, I want 世界觀庫由所有角色共用, so that 同一部作品的角色引用同一份設定。
  19. As a 使用者, I want 對白與獨白被用來歸納口癖(語尾、口頭禪、稱呼、敬語層級), so that 助理說話像原作角色。
  20. As a 使用者, I want 解析出的每個人物逐一詢問「合併 / 新建 / 略過」, so that 我決定誰成為助理。
  21. As a 使用者, I want 詢問時看到疑似同一人的理由(名字、別名、特徵), so that 我能做正確判斷。
  22. As a 使用者, I want 主要角色先問、路人最後批次詢問, so that 重要的決定不會被淹沒。
  23. As a 使用者, I want 重複解析同一章不會重複寫入, so that 我可以放心重跑。
  24. As a 使用者, I want 合併時新章節的記憶只追加、不覆蓋, so that 先前的內容不會遺失。
  25. As a 使用者, I want 合併時基本資訊衝突逐欄位詢問我, so that 不會被無聲覆寫。
  26. As a 使用者, I want 每個記憶帶有章節編號與出現順序, so that 我能追溯來源。
  27. As a 使用者, I want 系統搜尋生日、星座、血型、髮型、臉部特徵、身高、體重、三圍, so that 基本資訊完整。
  28. As a 使用者, I want 小說原文優先於官方設定、官方設定優先於維基, so that 資料以最可信的來源為準。
  29. As a 使用者, I want 每個欄位標註來源與信心度, so that 我知道資料可不可靠。
  30. As a 使用者, I want 查不到的欄位標示為 unknown 而不是被猜測, so that 不會出現錯誤的設定。
  31. As a 使用者, I want 更新既有值之前先問我, so that 我保有最後決定權。
  32. As a 使用者, I want 解析只儲存結構化摘要與簡短對白範例, so that 不會保存整章原文。
  33. As a 使用者, I want 記憶分成情節、語意、情感與程序層, so that 結構貼近人腦。
  34. As a 使用者, I want 每筆記憶帶有重要度與來源, so that 檢索與遺忘有依據。
  35. As a 使用者, I want 檢索時綜合時效、重要度、相關性與情緒吻合度並取前 6 筆, so that 助理想起的是合適的事。
  36. As a 使用者, I want 記憶隨時間依重要度與取用次數逐漸淡忘, so that 記憶不會無限膨脹。
  37. As a 使用者, I want 重要度累積到門檻或手動執行 /cockpit reflect 時進行鞏固與反思, so that 成本可控。
  38. As a 使用者, I want 個性以 Big Five 加動漫屬性標籤表示, so that 個性可量化又好懂。
  39. As a 使用者, I want 屬性標籤提供先驗、模型推論只能在先驗附近調整, so that 結果不會因推論偏差而失真。
  40. As a 使用者, I want 每個個性維度附證據(章節與對白), so that 我能檢查推導。
  41. As a 使用者, I want 手動覆寫個性維度且之後不被自動更新, so that 我的修正會被保留。
  42. As a 使用者, I want 個性還有「外顯程度」與「內外落差」兩個參數, so that 傲嬌之類的角色被正確表達。
  43. As a 使用者, I want 個性核心不隨互動漂移, so that 角色不會崩壞。
  44. As a 使用者, I want 心情以愉悅、喚醒、支配三軸表示並對應一個情緒標籤與顏文字, so that 狀態一目了然。
  45. As a 使用者, I want 心情依事件表更新, so that 我的稱讚、責備與任務成敗會影響她。
  46. As a 使用者, I want 單軸每回合變化上限 ±0.3, so that 單一事件不會把心情拉到極端。
  47. As a 使用者, I want 模型在回覆末尾附心情標記並由系統解析後移除, so that 不需要額外的模型呼叫。
  48. As a 使用者, I want 標記缺失或格式錯誤時退回關鍵字規則, so that 心情仍會更新。
  49. As a 使用者, I want 心情隨真實經過時間往角色的基線衰減, so that 隔天回來她不會還停在昨天的情緒。
  50. As a 使用者, I want 衰減在讀取資料時才計算, so that 不用常駐更新。
  51. As a 使用者, I want 好感度從 0 開始並隨有意義的互動緩慢上升, so that 關係是慢慢建立的。
  52. As a 使用者, I want 好感度每天有增加上限, so that 無法靠洗版快速拉高。
  53. As a 使用者, I want 負面事件降低好感度, so that 關係有真實的起伏。
  54. As a 使用者, I want 長期離開後好感度緩慢回到中性, so that 關係反映實際相處。
  55. As a 使用者, I want 好感分成陌生、熟悉、親近、特別四個階段且切換有遲滯, so that 狀態不會在邊界來回跳動。
  56. As a 使用者, I want 好感階段改變稱呼、關心頻率上限與語氣軟硬, so that 關係的變化能被感受到。
  57. As a 使用者, I want 助理用我設定的暱稱稱呼我, so that 互動有個人感。
  58. As a 使用者, I want 助理回覆的對話文字使用角色語氣, so that 感覺像在和她說話。
  59. As a 使用者, I want 程式碼、指令、路徑、錯誤訊息與安全警告保持原樣, so that 技術內容不會被扭曲。
  60. As a 使用者, I want 關鍵技術結論放在最前面或單獨一行, so that 不會被角色語氣稀釋。
  61. As a 使用者, I want 工具呼叫前後的過場話也使用角色語氣, so that 整體感覺一致。
  62. As a 使用者, I want /cockpit tone off 暫時關閉語氣, so that 需要純淨輸出時可以切換。
  63. As a 使用者, I want 人設注入有固定的 token 上限並在超出時截斷低分項目, so that 不會吃掉過多 context。
  64. As a 使用者, I want 穩定內容放在注入內容前面、變動內容放後面, so that 提示快取能維持命中。
  65. As a 使用者, I want 與助理的互動記憶只含我的輸入與她的對話回覆, so that 不混入工具輸出。
  66. As a 使用者, I want 互動記憶與原著記憶分開存放, so that 兩者不會混淆。
  67. As a 使用者, I want 近期互動逐字保存、累積到一定量後壓縮成摘要與關係變化, so that 記憶不會無限增長。
  68. As a 使用者, I want 疑似金鑰的字串在寫入前被過濾, so that 敏感資訊不會被存下來。
  69. As a 使用者, I want 助理在會話開始、閒置後回來、連續工作 2 小時、深夜、連續工具失敗、額度或 context 快滿、待辦到期時主動關心, so that 她真的在照顧我。
  70. As a 使用者, I want 每種關心有冷卻時間與每日總上限, so that 不會被打擾。
  71. As a 使用者, I want 模型回覆中或我正在輸入時不彈出關心, so that 不會被打斷。
  72. As a 使用者, I want /cockpit quiet 靜音, so that 專心工作時不被打擾。
  73. As a 使用者, I want 關心的頻率受角色外向性與好感階段影響, so that 不同角色的關心風格不同。
  74. As a 使用者, I want 零成本的模板句用 toast 或氣泡即時顯示, so that 關心不消耗模型呼叫。
  75. As a 使用者, I want 想關心我的情境在我下次送出訊息時注入, so that 回覆能自然帶出關心而不額外觸發模型回合。
  76. As a 使用者, I want 關心措辭不含責備或愧疚勒索, so that 即使嘴硬的角色也不會讓我不舒服。
  77. As a 使用者, I want 關心台詞依「觸發類型 × 個性屬性 × 好感階段」變化, so that 風格符合角色。
  78. As a 使用者, I want 待辦清單可新增、完成, so that 助理幫我記事。
  79. As a 使用者, I want 要求助理記住承諾事項並在時間到時提醒, so that 我不會忘記。
  80. As a 使用者, I want 白上吹雪的個性、記憶與口癖表在本機生成而不進 repo, so that 不散佈受版權保護的內容。
  81. As a 使用者, I want repo 內只含帶來源的事實欄位, so that 公開部分只有事實。
  82. As a 使用者, I want 助理扮演的是角色形象而不是演出者本人, so that 不編造私生活。
  83. As a 使用者, I want 檔案寫入是原子的, so that 當機時不會損毀角色資料。
  84. As a 開發者, I want 核心行為能在記憶體檔案系統與假時鐘下驗證, so that 測試快速且穩定。
  85. As a 開發者, I want 測試用的原創範例角色內嵌在測試中, so that 測試不依賴網路或受版權保護的資料。

Implementation Decisions

  • 外掛從 hud 改名為 cockpit,內含兩個模組:hud(系統儀表,行為維持現狀)與 companion(動漫助理)。保留 git 歷史。atom 的外掛鍵、marketplace 條目與 README 一併更新,不留舊條目。
  • 指令為 /cockpit 加子指令;/hud 保留為別名。
  • companion 核心是一個獨立模組,對外介面是:使用者回合(記錄輸入、更新心情與好感)、助理回覆(解析心情標記、套用記憶寫入)、tick(依現在時間產生關心、衰減)、套用解析結果(合併 ingest 產生的結構化資料)、組裝注入內容。檔案系統與時鐘由外部注入。mod 層只做薄薄的轉接。
  • 資料位置:使用者家目錄下的 cockpit 資料夾;user.json 為共用設定;world/ 為共用世界觀庫(時間線、地點、用語表);每個角色一個資料夾,內含核心資料(基本資訊與來源、個性、口癖表)、原著記憶(情節、語意、程序)、使用者互動記憶、反思、心情與好感、待辦。原著與互動記憶位於不同資料夾。所有寫入皆為原子寫入。
  • 基本資訊欄位:生日、星座、血型、髮型、臉部特徵、身高、體重、三圍;每欄附來源與信心度,查不到為 unknown。來源優先級:小說原文 > 官方設定 > 維基類。更新既有值前須詢問。
  • 記憶:四層(情節、語意、情感、程序)加反思;每筆含來源、章節編號、出現順序與重要度。檢索分數 = 時效(半衰期 72 小時)、重要度、相關性、情緒吻合度,權重 (1, 1, 2, 0.5),取前 6 筆。遺忘採穩定度曲線,穩定度隨重要度與取用次數成長。鞏固與反思在累積重要度過門檻、會話結束或手動指令時執行。
  • 個性:Big Five 五個維度(0 到 100)加 1 到 2 個動漫屬性標籤(提供先驗向量)、外顯程度、內外落差。模型推論限制在先驗 ±20 內,每個維度附證據。人工覆寫的維度鎖定。核心個性不隨互動漂移。
  • 心情:PAD 三軸(−1 到 1),由八分區對應情緒標籤與顏文字。角色基線來自個性。衰減於讀檔時計算:x = B + (x − B)·0.5^(Δ/τ),心情半衰期起始值 8 小時,情緒 10 分鐘,高神經質角色較長。事件表起始值:道謝或稱讚 (+0.15, +0.05, +0.05);辱罵或責備 (−0.20, +0.15, −0.10);任務成功 (+0.08, +0.03, +0.05);工具連續失敗 (−0.08, +0.10, −0.08);長時間無互動後回來 (+0.10, +0.08, 0);深夜仍在工作 (−0.05, −0.10, 0);提到角色喜歡的事物 (+0.12, +0.08, +0.03);關心被忽略 (−0.05, −0.03, −0.03)。單軸每回合變化上限 ±0.3。
  • 心情回報:模型在回覆末尾附隱藏標記,系統解析後移除;缺失或格式錯誤時退回關鍵字規則。
  • 好感度:範圍 −1 到 1,初始 0。有意義互動 +0.01、每日上限 +0.05;負面事件 −0.03;離開超過 7 天後以 30 天半衰期回到 0。四階段(陌生、熟悉、親近、特別),升階門檻 0.30、降階門檻 0.25。階段影響稱呼、關心頻率上限、語氣軟硬。
  • 人設注入:在送出模型請求前注入 system 區塊尾端,總量約 1500 token(角色卡 400、心情 100、記憶 800、關心情境 200),超出時截斷低分項目。穩定內容在前、變動內容在後。
  • 語氣:對話文字與過場話套用語氣;程式碼、指令、路徑、錯誤、安全警告保持原樣;關鍵結論前置。可用指令暫時關閉。
  • 互動記憶:只含使用者文字輸入與助理對話文字;不存工具輸出與大段程式碼;寫入前過濾疑似金鑰;近期逐字、累積後壓縮為摘要與關係變化。
  • 主動關心:事件式,不依賴 cron。觸發點:會話開始、閒置回來、連續工作 2 小時、23:00 後(可設定)、工具連續失敗、額度或 context 超過既有 HUD 的警告線、待辦到期。每種觸發有冷卻,每天有總上限,模型回覆中或使用者輸入中不彈出,可靜音。輸出分兩種:模板句(toast 或氣泡)與下次送出訊息時注入的情境。關心措辭不得含責備或愧疚勒索。台詞依觸發類型、個性屬性、好感階段分類。
  • band:兩行。第一行沿用現有 HUD 渲染;第二行為角色行(顏文字、名字、心情、PAD 條、好感階段、待辦數、關心氣泡),沒有啟用角色時不渲染;緊湊模式縮成「顏文字 名字 心情」;寬度不足時依優先序捨棄。
  • 小說解析 skill:由當前 Claude 會話執行;輸入為單章 txt 或 md;產出結構化結果交給 companion 核心的「套用解析結果」入口寫入。冪等以章節編號為鍵。
  • 預設角色:白上吹雪,第一次啟用時自動啟用。repo 內只含帶來源的事實欄位與官方公開的招牌短語;個性、記憶與口癖表在本機以搜尋流程生成,不進 repo。
  • 研究待查證項目:個性轉 PAD 的係數、檢索權重的原始出處、MemGPT 與 Reflexion 的細節,在實作對應功能前需查證並記錄。
  • 預覽頁:https://claude.ai/artifact/Vkcj88nQrQzLa54C2vBdE7

Testing Decisions

  • 好的測試只驗證外部可觀察的行為(輸入進去、輸出出來、檔案內容、band 文字),不驗證內部資料結構或呼叫順序。
  • 兩個接縫:
    1. companion 核心:注入記憶體版檔案系統與假時鐘,從公開入口驗證行為,涵蓋心情更新與上限、衰減、好感度增減與階段遲滯、記憶檢索排序與遺忘、冪等解析與合併、關心的冷卻與每日上限與靜音、金鑰過濾、注入內容的 token 預算與截斷、心情標記解析與後備規則。
    2. 渲染:沿用既有 hud 測試對純函式渲染的做法,驗證角色行在各模式、各寬度、各階段的輸出,且沒有角色時第一行與現況逐字相同。
  • 不測終端機介面本身,也不測 LLM 的輸出品質。小說解析以範例章節做端到端檢查(人工確認)。
  • 測試用原創範例角色內嵌於測試,不隨外掛安裝,不依賴網路。
  • 既有範例:hud 的 format 測試(以 claude-code/testing 的 describe/test 驗證純函式輸出)。

Out of Scope

  • 同時多個助理輪流發言。
  • epub 與整本書一次解析。
  • 外部 cron 或推播式的定時關心(預設關閉,以後再評估)。
  • 個性隨互動漂移。
  • HEXACO 等額外個性模型。
  • 在 repo 內發佈任何受版權保護的長篇設定或台詞。
  • 扮演演出者本人或涉及其私生活。

Further Notes

  • 里程碑:M0 改名;M1 資料層與角色行;M2 人設注入、語氣、心情標記、互動記憶;M3 小說解析 skill、合併、世界觀庫、個性推導;M4 主動關心、待辦、記憶鞏固與反思。每個里程碑能獨立使用。
  • 研究報告的結論中,LLM 從對白推出的個性分數可信度偏低(與標準答案相關最高約 0.27、偏向中間值),因此只當先驗並保留人工覆寫。
  • 動漫屬性對應 Big Five 的向量是設計啟發式,不是學術標準。
## Problem Statement 我每天在終端機裡和 Claude Code 工作。現有的 hud 只顯示系統儀表,助理本身沒有個性、沒有記憶、也不會關心我。我想讓助理成為我喜歡的動漫角色:說話像她、記得我們聊過的事、會隨互動改變心情和親近程度、在我熬夜或連續失敗時主動關心,而且角色的設定要能從我手上的輕小說章節整理出來,不是憑空編造。同時角色資料(原著設定)與我們之間的互動不能混在一起,技術內容(程式碼、指令、警告)也不能被角色語氣扭曲。 ## Solution 把 hud 改名為 cockpit,同一個外掛內有兩個模組:原有的系統儀表(hud),以及新的動漫助理(companion)。 - 輸入框上方的 band 變成兩行:第一行維持現有 HUD,第二行是角色行(顏文字、名字、心情、PAD 迷你條、好感階段、待辦數、關心氣泡)。沒有啟用角色時只剩第一行。 - 助理預設為白上吹雪,第一次啟用時自動啟用,可隨時關閉或切換角色。 - 一個 skill 負責解析輕小說章節:抽出時間、地點、環境、用語、人物、對白、獨白,逐一詢問人物要合併、新建或略過,搜尋並更新基本資訊,整理成分層記憶與個性。 - 助理回覆時套用角色語氣;心情由事件與模型回報的標記更新;好感度緩慢變化;事件式的主動關心與待辦清單讓助理主動照顧我。 - 原著記憶與互動記憶分開存放,近期互動逐字保存,累積後壓縮。 ## User Stories 1. As a 使用者, I want 外掛改名為 cockpit 且既有 HUD 的外觀與行為完全不變, so that 升級後不用重新適應。 2. As a 使用者, I want 沒有啟用角色時完全看不到角色相關畫面, so that 我可以只當 HUD 用。 3. As a 使用者, I want 保留 `/hud` 指令當別名, so that 我既有的習慣和腳本不會壞掉。 4. As a 使用者, I want 在 HUD 下方多一行角色行, so that 我一眼就能看到角色與心情。 5. As a 使用者, I want 角色行顯示顏文字、名字、心情標籤、PAD 迷你條、好感階段和待辦數, so that 我知道助理現在的狀態。 6. As a 使用者, I want 緊湊模式把角色行縮成「顏文字 名字 心情」, so that 窄終端機也放得下。 7. As a 使用者, I want 終端機太窄時角色行優先捨棄次要資訊而不是換行, so that 版面不會亂掉。 8. As a 使用者, I want 第一次啟用時自動啟用白上吹雪並用 toast 告知如何關閉, so that 我不用先做設定就能體驗。 9. As a 使用者, I want 用 `/cockpit companion off` 關閉助理且保留所有資料, so that 我可以暫時不用再回來。 10. As a 使用者, I want 切換到另一個角色後原角色的資料仍保留, so that 我可以切回來繼續。 11. As a 使用者, I want 同一時間只有一個當前助理, so that 語氣與記憶不會互相污染。 12. As a 使用者, I want `/cockpit status` 展開顯示角色完整資訊(基本資訊、個性、心情、好感、待辦), so that 我能查看細節。 13. As a 使用者, I want `/cockpit setup` 互動式填寫暱稱、作息、時區、關心上限和靜音時段, so that 助理依我的生活習慣運作。 14. As a 使用者, I want 設定檔由所有角色共用, so that 換角色不用重填。 15. As a 使用者, I want 提供一章輕小說的檔案就能解析, so that 不必手動整理設定。 16. As a 使用者, I want 超長章節自動分段處理, so that 不會因為長度而失敗。 17. As a 使用者, I want 解析結果包含時間、地點、環境與用語, so that 世界觀被獨立保存。 18. As a 使用者, I want 世界觀庫由所有角色共用, so that 同一部作品的角色引用同一份設定。 19. As a 使用者, I want 對白與獨白被用來歸納口癖(語尾、口頭禪、稱呼、敬語層級), so that 助理說話像原作角色。 20. As a 使用者, I want 解析出的每個人物逐一詢問「合併 / 新建 / 略過」, so that 我決定誰成為助理。 21. As a 使用者, I want 詢問時看到疑似同一人的理由(名字、別名、特徵), so that 我能做正確判斷。 22. As a 使用者, I want 主要角色先問、路人最後批次詢問, so that 重要的決定不會被淹沒。 23. As a 使用者, I want 重複解析同一章不會重複寫入, so that 我可以放心重跑。 24. As a 使用者, I want 合併時新章節的記憶只追加、不覆蓋, so that 先前的內容不會遺失。 25. As a 使用者, I want 合併時基本資訊衝突逐欄位詢問我, so that 不會被無聲覆寫。 26. As a 使用者, I want 每個記憶帶有章節編號與出現順序, so that 我能追溯來源。 27. As a 使用者, I want 系統搜尋生日、星座、血型、髮型、臉部特徵、身高、體重、三圍, so that 基本資訊完整。 28. As a 使用者, I want 小說原文優先於官方設定、官方設定優先於維基, so that 資料以最可信的來源為準。 29. As a 使用者, I want 每個欄位標註來源與信心度, so that 我知道資料可不可靠。 30. As a 使用者, I want 查不到的欄位標示為 unknown 而不是被猜測, so that 不會出現錯誤的設定。 31. As a 使用者, I want 更新既有值之前先問我, so that 我保有最後決定權。 32. As a 使用者, I want 解析只儲存結構化摘要與簡短對白範例, so that 不會保存整章原文。 33. As a 使用者, I want 記憶分成情節、語意、情感與程序層, so that 結構貼近人腦。 34. As a 使用者, I want 每筆記憶帶有重要度與來源, so that 檢索與遺忘有依據。 35. As a 使用者, I want 檢索時綜合時效、重要度、相關性與情緒吻合度並取前 6 筆, so that 助理想起的是合適的事。 36. As a 使用者, I want 記憶隨時間依重要度與取用次數逐漸淡忘, so that 記憶不會無限膨脹。 37. As a 使用者, I want 重要度累積到門檻或手動執行 `/cockpit reflect` 時進行鞏固與反思, so that 成本可控。 38. As a 使用者, I want 個性以 Big Five 加動漫屬性標籤表示, so that 個性可量化又好懂。 39. As a 使用者, I want 屬性標籤提供先驗、模型推論只能在先驗附近調整, so that 結果不會因推論偏差而失真。 40. As a 使用者, I want 每個個性維度附證據(章節與對白), so that 我能檢查推導。 41. As a 使用者, I want 手動覆寫個性維度且之後不被自動更新, so that 我的修正會被保留。 42. As a 使用者, I want 個性還有「外顯程度」與「內外落差」兩個參數, so that 傲嬌之類的角色被正確表達。 43. As a 使用者, I want 個性核心不隨互動漂移, so that 角色不會崩壞。 44. As a 使用者, I want 心情以愉悅、喚醒、支配三軸表示並對應一個情緒標籤與顏文字, so that 狀態一目了然。 45. As a 使用者, I want 心情依事件表更新, so that 我的稱讚、責備與任務成敗會影響她。 46. As a 使用者, I want 單軸每回合變化上限 ±0.3, so that 單一事件不會把心情拉到極端。 47. As a 使用者, I want 模型在回覆末尾附心情標記並由系統解析後移除, so that 不需要額外的模型呼叫。 48. As a 使用者, I want 標記缺失或格式錯誤時退回關鍵字規則, so that 心情仍會更新。 49. As a 使用者, I want 心情隨真實經過時間往角色的基線衰減, so that 隔天回來她不會還停在昨天的情緒。 50. As a 使用者, I want 衰減在讀取資料時才計算, so that 不用常駐更新。 51. As a 使用者, I want 好感度從 0 開始並隨有意義的互動緩慢上升, so that 關係是慢慢建立的。 52. As a 使用者, I want 好感度每天有增加上限, so that 無法靠洗版快速拉高。 53. As a 使用者, I want 負面事件降低好感度, so that 關係有真實的起伏。 54. As a 使用者, I want 長期離開後好感度緩慢回到中性, so that 關係反映實際相處。 55. As a 使用者, I want 好感分成陌生、熟悉、親近、特別四個階段且切換有遲滯, so that 狀態不會在邊界來回跳動。 56. As a 使用者, I want 好感階段改變稱呼、關心頻率上限與語氣軟硬, so that 關係的變化能被感受到。 57. As a 使用者, I want 助理用我設定的暱稱稱呼我, so that 互動有個人感。 58. As a 使用者, I want 助理回覆的對話文字使用角色語氣, so that 感覺像在和她說話。 59. As a 使用者, I want 程式碼、指令、路徑、錯誤訊息與安全警告保持原樣, so that 技術內容不會被扭曲。 60. As a 使用者, I want 關鍵技術結論放在最前面或單獨一行, so that 不會被角色語氣稀釋。 61. As a 使用者, I want 工具呼叫前後的過場話也使用角色語氣, so that 整體感覺一致。 62. As a 使用者, I want `/cockpit tone off` 暫時關閉語氣, so that 需要純淨輸出時可以切換。 63. As a 使用者, I want 人設注入有固定的 token 上限並在超出時截斷低分項目, so that 不會吃掉過多 context。 64. As a 使用者, I want 穩定內容放在注入內容前面、變動內容放後面, so that 提示快取能維持命中。 65. As a 使用者, I want 與助理的互動記憶只含我的輸入與她的對話回覆, so that 不混入工具輸出。 66. As a 使用者, I want 互動記憶與原著記憶分開存放, so that 兩者不會混淆。 67. As a 使用者, I want 近期互動逐字保存、累積到一定量後壓縮成摘要與關係變化, so that 記憶不會無限增長。 68. As a 使用者, I want 疑似金鑰的字串在寫入前被過濾, so that 敏感資訊不會被存下來。 69. As a 使用者, I want 助理在會話開始、閒置後回來、連續工作 2 小時、深夜、連續工具失敗、額度或 context 快滿、待辦到期時主動關心, so that 她真的在照顧我。 70. As a 使用者, I want 每種關心有冷卻時間與每日總上限, so that 不會被打擾。 71. As a 使用者, I want 模型回覆中或我正在輸入時不彈出關心, so that 不會被打斷。 72. As a 使用者, I want `/cockpit quiet` 靜音, so that 專心工作時不被打擾。 73. As a 使用者, I want 關心的頻率受角色外向性與好感階段影響, so that 不同角色的關心風格不同。 74. As a 使用者, I want 零成本的模板句用 toast 或氣泡即時顯示, so that 關心不消耗模型呼叫。 75. As a 使用者, I want 想關心我的情境在我下次送出訊息時注入, so that 回覆能自然帶出關心而不額外觸發模型回合。 76. As a 使用者, I want 關心措辭不含責備或愧疚勒索, so that 即使嘴硬的角色也不會讓我不舒服。 77. As a 使用者, I want 關心台詞依「觸發類型 × 個性屬性 × 好感階段」變化, so that 風格符合角色。 78. As a 使用者, I want 待辦清單可新增、完成, so that 助理幫我記事。 79. As a 使用者, I want 要求助理記住承諾事項並在時間到時提醒, so that 我不會忘記。 80. As a 使用者, I want 白上吹雪的個性、記憶與口癖表在本機生成而不進 repo, so that 不散佈受版權保護的內容。 81. As a 使用者, I want repo 內只含帶來源的事實欄位, so that 公開部分只有事實。 82. As a 使用者, I want 助理扮演的是角色形象而不是演出者本人, so that 不編造私生活。 83. As a 使用者, I want 檔案寫入是原子的, so that 當機時不會損毀角色資料。 84. As a 開發者, I want 核心行為能在記憶體檔案系統與假時鐘下驗證, so that 測試快速且穩定。 85. As a 開發者, I want 測試用的原創範例角色內嵌在測試中, so that 測試不依賴網路或受版權保護的資料。 ## Implementation Decisions - 外掛從 hud 改名為 cockpit,內含兩個模組:hud(系統儀表,行為維持現狀)與 companion(動漫助理)。保留 git 歷史。atom 的外掛鍵、marketplace 條目與 README 一併更新,不留舊條目。 - 指令為 `/cockpit` 加子指令;`/hud` 保留為別名。 - **companion 核心**是一個獨立模組,對外介面是:使用者回合(記錄輸入、更新心情與好感)、助理回覆(解析心情標記、套用記憶寫入)、tick(依現在時間產生關心、衰減)、套用解析結果(合併 ingest 產生的結構化資料)、組裝注入內容。檔案系統與時鐘由外部注入。mod 層只做薄薄的轉接。 - **資料位置**:使用者家目錄下的 cockpit 資料夾;`user.json` 為共用設定;`world/` 為共用世界觀庫(時間線、地點、用語表);每個角色一個資料夾,內含核心資料(基本資訊與來源、個性、口癖表)、原著記憶(情節、語意、程序)、使用者互動記憶、反思、心情與好感、待辦。原著與互動記憶位於不同資料夾。所有寫入皆為原子寫入。 - **基本資訊欄位**:生日、星座、血型、髮型、臉部特徵、身高、體重、三圍;每欄附來源與信心度,查不到為 unknown。來源優先級:小說原文 > 官方設定 > 維基類。更新既有值前須詢問。 - **記憶**:四層(情節、語意、情感、程序)加反思;每筆含來源、章節編號、出現順序與重要度。檢索分數 = 時效(半衰期 72 小時)、重要度、相關性、情緒吻合度,權重 (1, 1, 2, 0.5),取前 6 筆。遺忘採穩定度曲線,穩定度隨重要度與取用次數成長。鞏固與反思在累積重要度過門檻、會話結束或手動指令時執行。 - **個性**:Big Five 五個維度(0 到 100)加 1 到 2 個動漫屬性標籤(提供先驗向量)、外顯程度、內外落差。模型推論限制在先驗 ±20 內,每個維度附證據。人工覆寫的維度鎖定。核心個性不隨互動漂移。 - **心情**:PAD 三軸(−1 到 1),由八分區對應情緒標籤與顏文字。角色基線來自個性。衰減於讀檔時計算:`x = B + (x − B)·0.5^(Δ/τ)`,心情半衰期起始值 8 小時,情緒 10 分鐘,高神經質角色較長。事件表起始值:道謝或稱讚 (+0.15, +0.05, +0.05);辱罵或責備 (−0.20, +0.15, −0.10);任務成功 (+0.08, +0.03, +0.05);工具連續失敗 (−0.08, +0.10, −0.08);長時間無互動後回來 (+0.10, +0.08, 0);深夜仍在工作 (−0.05, −0.10, 0);提到角色喜歡的事物 (+0.12, +0.08, +0.03);關心被忽略 (−0.05, −0.03, −0.03)。單軸每回合變化上限 ±0.3。 - **心情回報**:模型在回覆末尾附隱藏標記,系統解析後移除;缺失或格式錯誤時退回關鍵字規則。 - **好感度**:範圍 −1 到 1,初始 0。有意義互動 +0.01、每日上限 +0.05;負面事件 −0.03;離開超過 7 天後以 30 天半衰期回到 0。四階段(陌生、熟悉、親近、特別),升階門檻 0.30、降階門檻 0.25。階段影響稱呼、關心頻率上限、語氣軟硬。 - **人設注入**:在送出模型請求前注入 system 區塊尾端,總量約 1500 token(角色卡 400、心情 100、記憶 800、關心情境 200),超出時截斷低分項目。穩定內容在前、變動內容在後。 - **語氣**:對話文字與過場話套用語氣;程式碼、指令、路徑、錯誤、安全警告保持原樣;關鍵結論前置。可用指令暫時關閉。 - **互動記憶**:只含使用者文字輸入與助理對話文字;不存工具輸出與大段程式碼;寫入前過濾疑似金鑰;近期逐字、累積後壓縮為摘要與關係變化。 - **主動關心**:事件式,不依賴 cron。觸發點:會話開始、閒置回來、連續工作 2 小時、23:00 後(可設定)、工具連續失敗、額度或 context 超過既有 HUD 的警告線、待辦到期。每種觸發有冷卻,每天有總上限,模型回覆中或使用者輸入中不彈出,可靜音。輸出分兩種:模板句(toast 或氣泡)與下次送出訊息時注入的情境。關心措辭不得含責備或愧疚勒索。台詞依觸發類型、個性屬性、好感階段分類。 - **band**:兩行。第一行沿用現有 HUD 渲染;第二行為角色行(顏文字、名字、心情、PAD 條、好感階段、待辦數、關心氣泡),沒有啟用角色時不渲染;緊湊模式縮成「顏文字 名字 心情」;寬度不足時依優先序捨棄。 - **小說解析 skill**:由當前 Claude 會話執行;輸入為單章 txt 或 md;產出結構化結果交給 companion 核心的「套用解析結果」入口寫入。冪等以章節編號為鍵。 - **預設角色**:白上吹雪,第一次啟用時自動啟用。repo 內只含帶來源的事實欄位與官方公開的招牌短語;個性、記憶與口癖表在本機以搜尋流程生成,不進 repo。 - **研究待查證項目**:個性轉 PAD 的係數、檢索權重的原始出處、MemGPT 與 Reflexion 的細節,在實作對應功能前需查證並記錄。 - 預覽頁:https://claude.ai/artifact/Vkcj88nQrQzLa54C2vBdE7 ## Testing Decisions - 好的測試只驗證外部可觀察的行為(輸入進去、輸出出來、檔案內容、band 文字),不驗證內部資料結構或呼叫順序。 - 兩個接縫: 1. **companion 核心**:注入記憶體版檔案系統與假時鐘,從公開入口驗證行為,涵蓋心情更新與上限、衰減、好感度增減與階段遲滯、記憶檢索排序與遺忘、冪等解析與合併、關心的冷卻與每日上限與靜音、金鑰過濾、注入內容的 token 預算與截斷、心情標記解析與後備規則。 2. **渲染**:沿用既有 hud 測試對純函式渲染的做法,驗證角色行在各模式、各寬度、各階段的輸出,且沒有角色時第一行與現況逐字相同。 - 不測終端機介面本身,也不測 LLM 的輸出品質。小說解析以範例章節做端到端檢查(人工確認)。 - 測試用原創範例角色內嵌於測試,不隨外掛安裝,不依賴網路。 - 既有範例:hud 的 format 測試(以 `claude-code/testing` 的 describe/test 驗證純函式輸出)。 ## Out of Scope - 同時多個助理輪流發言。 - epub 與整本書一次解析。 - 外部 cron 或推播式的定時關心(預設關閉,以後再評估)。 - 個性隨互動漂移。 - HEXACO 等額外個性模型。 - 在 repo 內發佈任何受版權保護的長篇設定或台詞。 - 扮演演出者本人或涉及其私生活。 ## Further Notes - 里程碑:M0 改名;M1 資料層與角色行;M2 人設注入、語氣、心情標記、互動記憶;M3 小說解析 skill、合併、世界觀庫、個性推導;M4 主動關心、待辦、記憶鞏固與反思。每個里程碑能獨立使用。 - 研究報告的結論中,LLM 從對白推出的個性分數可信度偏低(與標準答案相關最高約 0.27、偏向中間值),因此只當先驗並保留人工覆寫。 - 動漫屬性對應 Big Five 的向量是設計啟發式,不是學術標準。
admin added the
類型
規格
ready-for-agent
labels 2026-10-12 05:13:10 +00:00
Owner

底下的議題全部關閉,由 herdr-issue 自動關閉。

底下的議題全部關閉,由 herdr-issue 自動關閉。
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jiantw83/jsc-marketplace#1