dsh-love:把日常聊天蒸餾成可更新的角色卡與跨會話感情模塊

前言

在 DeepSeek Harness(DSH)裏跑 QQ 仿真或長期桌面會話時,常見問題是:人格寫在靜態 Markdown 裏,換會話、換模型實例後,說話習慣和關鍵記憶不會自動累積;情緒狀態也很難跨會話延續。手工改角色卡成本高,還容易和橋接側的人格卡預算打架。

下面介紹社區插件 dsh-love(維護者 LIU118117,分類:記憶)。它在本機記錄聊天樣本,由 AI 在桌面會話裏調用蒸餾工具,把一天對話合併進可版本化的角色卡,並單獨維護跨會話的感情模塊;壓縮後的內容通過系統提示詞小節注入每次會話裝配,可與 SnowLuma 等 QQ 橋接配合使用。

這是什麼

dsh-love 是 DSH(Cordis)的 Host-only bundle:把每天的聊天過程蒸餾成可更新的角色卡與跨會話感情模塊,持續訓練角色卡,重點是保留說話習慣、保住關鍵記憶點。

插件以當前 DSH 進程權限讀寫本機數據;安裝前請自行查看源碼與許可證。

核心功能

自動記錄

裝好後,AI 的 QQ 發言、讀到的對話上下文會自動寫入 logs/YYYY-MM-DD.jsonl。README 說明:不記錄 token 等敏感字段,量有上限,只存本機;捕獲時會剔除 token / password / secret 等字段,單份日誌超限會剪頭保尾。

每日蒸餾(訓練)

在桌面會話裏調用 love_distill,把當天聊天提煉爲說話習慣(帶權重)、口頭禪、關鍵記憶點等,合併進角色卡:自動去重、限量、備份舊版、可回滾。蒸餾只做本機文件讀寫,不調用模型 API;具體提煉由調用 love_distill 的 AI 完成。

每個會話生效

壓縮版角色卡與感情模塊註冊爲全局系統提示詞小節,所有會話(含 QQ 仿真會話)每次裝配都會帶上,下一個 AI 能繼承上一個 AI 的習慣表達。

獨立感情模塊

情緒狀態(正負/強度/起因)、情緒表達規則、關係熱度單獨存放在 emotion.json,跨會話持久,按半衰期衰減回基線;QQ 聊天裏可用 love_emotion 更新。

訓練結果同步共享人格卡

蒸餾後可自動把生成節同步進共享人格卡文件(標記替換、留 .dsh-love.bak 備份),依賴該文件的系統提示詞(如 README 提到的 douyin 人格卡路徑)可讀到新習慣。是否同步由配置 autoSync 控制。

數據目錄

默認 <DSH_HOME>/dsh-love/(Windows 爲 C:\Users\<你>\.dsh\dsh-love\)。可通過 cordis.patch.yml 的 dataDir 覆蓋。

文件 內容
card.json 角色卡:說話習慣、口頭禪、語氣、黑名單表達、關鍵記憶、按人印象、訓練版本
emotion.json 感情模塊:基線、當前情緒、衰減參數、表達規則、事件史、關係熱度
logs/YYYY-MM-DD.jsonl 每天聊天日誌(自動捕獲 + love_log 補記),默認保留 30 天
training/backups/card-v<N>.json 每次蒸餾前的舊卡備份(love_card rollback 回滾用)
role-card.md 渲染出的完整角色卡(可人工查看或複製)

工具一覽

工具 用途
love_status 查看訓練版本、今日樣本統計、當前情緒
love_log 補記一段重要對話到今天的日誌
love_distill 每日訓練:把一天聊天蒸餾進角色卡、更新感情模塊、同步共享人格卡
love_emotion 讀/更新感情模塊(情緒、事件、關係熱度、表達規則、基線)
love_card 直接讀/改角色卡節,或回滾到歷史版本
love_export 把整卡與感情模塊導出爲 Markdown / JSON

安裝與啓用

本插件是 Host-only bundle,不需要構建、沒有依賴。在 DSH 裏使用官方 README 中的方式:

plugin_manager  install_bundle  <本倉庫絕對路徑>

也可把倉庫目錄作爲 install_bundle 的 target。

DSH 社區插件目錄在 SkillHub 等獨立站點維護,與 DeepSeek / 幻方無官方從屬關係;安裝命令以倉庫 README 爲準,不要憑插件名拼接未文檔化的 CLI。

配置

在 cordis.patch.yml 的 config 中可調整(以下爲 README 記載的鍵與默認值):

鍵 默認 說明
dataDir '' 數據目錄,空則 <DSH_HOME>/dsh-love
captureSends true 自動記錄 AI 的 QQ 發言
captureReads true 自動記錄讀到的對話上下文
autoSync true 蒸餾後同步共享人格卡
syncTargets [] 同步目標文件列表;空則自動找 <DSH_HOME>/douyin-browser/memory/persona/role-card.md
sectionOrder 300 系統提示詞小節順序(0 與 500 之間爲人格前綴之後)
maxInjectedChars 2200 注入每個會話的最大字符數
logKeepDays 30 聊天日誌保留天數

典型用法:每日訓練循環

README 給出的工作流可按下面步驟復現。

  1. 白天:QQ 聊天自動落日誌;AI 情緒波動時在合適會話裏調用 love_emotion。
  2. 每天結束(桌面會話):調用 love_distill,帶上當天提煉出的字段,例如:
    - speechHabits(說話習慣,重要度 1~5)與過時習慣的 dropHabits
    - catchphrases、tone、banned
    - keyMemories(關鍵記憶點,重要度 1~5)與 dropMemories
    - people(對羣友/羣組的印象、關係熱度)、emotion(當天情緒總結)
  3. 插件自動處理:統計當天樣本(平均句長、表情頻率、高頻詞)→ 合併去重限量 → 備份舊卡 → 版本 +1 → 重渲染 role-card.md → 按配置同步共享人格卡。
  4. 下一會話:系統提示詞自動帶上新卡(說話習慣、關鍵記憶、當前情緒)。

需要快速查看狀態時,先調 love_status;重要對話漏記時用 love_log 補進當日 jsonl。

與 QQ 橋接(SnowLuma)配合

QQ 仿真會話(如 qq-chat-v2 等預設)是普通 DSH 會話,本插件的系統提示詞小節會自動進入每個 QQ 會話——角色卡與感情模塊隨每次裝配生效,不佔橋接每消息 6000 字符的人格卡預算。

要在 QQ 會話內更新感情模塊,橋接守衛需放行三個只讀寫本插件數據的工具。在 qq-tool-restrict 的 SAFE_EXACT 裏增加:

const SAFE_EXACT = new Set([
  'ask_user_question',
  'todo_write',
  'love_status', 'love_emotion', 'love_log', // dsh-love
])

並建議在守衛裏把訓練類工具限制在桌面會話:

try { ctx.tools.restrict({ deny: ['love_distill', 'love_card', 'love_export'] }) } catch {}

適用場景與注意

適合誰:需要長期 QQ/桌面多會話、希望說話習慣與關鍵記憶可迭代、且情緒與關係熱度要跨會話保持的 DSH 用戶;已與 douyin-browser 等人格卡文件聯動時,autoSync 可減少雙份維護。

務必注意:

  • 聊天日誌僅寫本機 <DSH_HOME>/dsh-love/,README 聲明不上傳外部;仍建議在敏感環境審查捕獲邏輯與日誌內容。
  • 插件以當前 dsh 進程權限運行;安裝前檢查源碼與 MIT 許可證。
  • love_distill 等訓練工具宜只在可信的桌面會話開放,避免在受限 QQ 會話中誤改角色卡或導出全量數據。

結尾

dsh-love 把「記日誌 → 桌面蒸餾 → 版本化角色卡 + 感情模塊 → 全局注入」串成閉環,適合把 DSH 裏的角色從靜態文檔改成可回滾、可限量的本機記憶層。進一步瞭解可打開目錄頁與 GitHub 倉庫:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜