前言¶
在 DSH 裏做陪伴型智能體,常見做法是每開一個新會話就重新灌人設,或者用外部向量庫存片段。對話一長,壓縮後工具調用擠在一起,角色也很難在多個窗口之間保持同一段「最近發生過什麼」的連貫感。若你還希望她在自己的時間線裏活動、寫日記、到點找你,就需要一層不侵入宿主、又能管住記憶歸檔和生活節奏的實現。
下面介紹社區維護的 dsh-whale-world(GitHub:SenuMirai/dsh-whale-world,SkillHub 分類:記憶)。它是「DSH Whale 系」裏負責世界的那一支:跨會話記憶、生活作息、世界控制台;同系列還有 QQ、微信、B 站、抖音等獨立插件,裝在一起纔是一整套,但本倉庫可以單獨使用。插件只用 DSH 開放的擴展接口,不改宿主源碼。
這是什麼¶
dsh-whale-world(npm 包名仍爲 dsh-world)給 DSH 裏的陪伴角色提供一個會記得、會過日子的「家」:記住各窗口裏說過的話,按天寫日記和「我是誰」自述,在控制台裏由你開關人設與生活線。維護者爲 SenuMirai;目錄頁見 SkillHub,源碼見 GitHub。
相對上游 chenkezhen480/dsh-world,本線 README 標明爲 0.6.x 深度改造且已分叉:lib/ 爲可直接運行的 JS;記憶寫入經 lib/memoryHub.js,召回爲四路並行加 RRF(lib/memoryRecall.js),並提供 recall_memory(lib/memoryTools.js)按 id 翻閱原文。歸屬判定要求預設相等且工作目錄在她的房間目錄,才注入世界提示詞、掛工具、寫記憶。package.json 中版本爲 0.6.2;README 另有一處寫明當前版本 0.5.3 並指向 CHANGELOG,升級與限制以倉庫 CHANGELOG 爲準。
核心能力¶
記得:原文與日記,而非默認走向量庫¶
設計上強調把人生命中的信息量留在可讀原文裏,需要時再檢索,而不是默認上向量庫。具體包括:
- 近期記憶:最近若干輪對話原文(默認 200 輪,可在控制台配置),每次開始對話和壓縮後仍擺在模型眼前。
- 日記:重要事件由角色自己一天一篇寫入,作爲長期記憶。
- 我是誰:角色自寫自述,每晚回顧前會保留當時版本,便於追溯改寫。
- 按天歸檔:近期記憶以外的用戶與助手正文按天留存,可由她自行翻閱。
日記與自述由角色執筆,插件不代寫。對話過長需要壓縮時,插件提供去掉工具調用過程、只保留雙方交流的壓縮方式,避免她把「命令過程」當成對人的記憶。
記憶側還有單一寫入者、寫側去重、occurredTime/happenedAt 等字段;召回側文檔稱四路召回加 RRF,並給出改述召回實測 93.8%(見 README,屬倉庫自述數據)。若需按 id 查原文,通過 recall_memory 工具完成。
生活:家、節奏與每日回顧¶
- 家:獨立會話「\<名字>的家」及對應房間(工作目錄)。
- 自訂節奏:她可聲明接下來做什麼、做到幾點;到點再決定繼續或換任務;無計劃則休息到次日早晨。
- 主動找你:可通過 Windows 系統通知或你接入的桌寵等通道把一句話送到你面前。
- 每日回顧:默認每天 23:00 回顧當天聊天與活動,寫日記並更新「我是誰」。
- 每日額度與大事先問:可對家裏每日花費設上限;刪改房間外文件、裝軟件、對外發消息等可約定先問你。
世界控制台¶
入口在 DSH 設置裏的「世界控制台」:
- 開始 / 停止:開始後她才入住;停止後記憶、人設與生活線暫停,家仍保留。
- 人設:分層填寫名字、性格、說話方式等,旁側預覽她讀到的合成結果;全部留空時沿用宿主或當前預設在系統提示詞中的人設,控制台不會自動回填系統人設。
- 概覽與記錄:當前活動、下個鬧鐘、近期記憶輪數、當日花費、活動記錄、日記與壓縮記錄。
- 歸檔範圍:默認
workspace(家所在工作區內普通會話);home僅當前家會話。縮小範圍後舊歸檔文件仍保留;要完整納入新加入會話的歷史,README 建議 重啓 DSH。
微信(配置 wechat: true)與 QQ(配置 qqBridgeDir)可在「接入」卡片裏分別開關,狀態寫入 world.json。微信開關會註冊或撤下 wechat_chats、wechat_send、wechat_delivery 等;QQ 開關只控制插件是否管理外部 qq-bridge,不會單獨停掉已在運行的橋。
與其它 Whale 插件的關係¶
同前綴 dsh-whale- 的倉庫各管一條渠道(QQ、微信、B 站、抖音等),記憶最終匯入本「世界」插件。npm 包 id 沿用舊名(如 dsh-qq-group),README 說明是爲避免改名打斷插件互認。
可選搭配的其它社區插件包括 dsh-see-now(連續屏幕)、dsh-loadout(按需裝卸工具組)、dsh-persona-distill(從聊天記錄蒸餾人設)等,見 README 表格。
本地橋與微信說明(選用時必讀)¶
- 桌寵橋:本地程序可把用戶話送進她家並接收回復;協議見倉庫 README 文末。
- 微信:獨立模塊,非官方 API;存在賬號受限或封禁風險,README 引用公開報道說明治理方向,不承諾安全閾值。圖片、表情包、視頻號等有多條接收與記憶邊界說明,動手前應讀
src/ecosystem/wechat/下文檔。 - QQ:依賴外部 qq-bridge 與 SnowLuma 登錄流程,裝法見倉庫 INSTALL.md;插件啓動會把 DSH 當前地址寫回橋的
config.json(dsh.baseUrl),因 DSH 重啓會換端口。
安裝與啓用¶
需要 DSH 桌面版;世界控制台與生活線依賴桌面宿主。
README 提供兩條路徑:把倉庫交給模型按 INSTALL.md 逐步執行(含 QQ 接入與人手步驟);或自行在倉庫根目錄打包安裝:
npm ci
npm pack
用 DSH 自帶的 pnpm 將生成的 dsh-world-*.tgz 裝進你的 profile。不要用 link: 指向項目目錄,否則會加載項目自帶的一份 Cordis。
裝好後 重啓 DSH,打開「世界控制台」填寫人設,按 開始。package.json 要求 Node >= 22.16.0;與 DSH 的兼容範圍在 dsh.compatibility.dshReleases 中列出(如 0.2.1-rc.2、0.2.1-rc.3 爲 compatible)。
可選:README 還提到可換用「只留對話」的壓縮方式,對應倉庫內腳本 scripts/enable-tool-free-compaction.ps1(細節見 README 完整段落)。
典型用法(從文檔歸納)¶
- 單獨使用:只裝本插件,用
workspace歸檔多會話原文,在家會話裏過生活線與每日回顧。 - 與 QQ:配置
qqBridgeDir,在控制台查看 QQ 卡、綁定入口會話;主人私聊走家會話歸檔,羣聊走橋自帶的qq-chat預設,不進本世界記憶塊(見 README「QQ 的記憶與開關」)。 - 與微信:配置
wechat: true與 Windows 適配器(wechatAdapter),用wechat_chats/wechat_send/wechat_delivery自主收發;普通最終回答不會自動轉發到微信。 - 與抖音插件:存在
lib/douyinBridge.js只讀觀看庫並按歸屬寫入記憶(第一人稱 / 第三人稱與actor標記),需同系列抖音插件數據在場。 - 與同房間預設:只有 cwd 落在她房間目錄且預設匹配時,才注入世界能力,避免同預設的編碼會話被誤注入。
適用場景與注意¶
適合:希望在 DSH 內做長期陪伴、跨窗口一致記憶、可控歸檔範圍,並願意用控制台管理人設與生活線的開發者;已在使用或計劃使用 Whale 系渠道插件、需要統一記憶落點的部署。
注意:
- 插件以 當前 DSH 進程權限 運行,安裝前應自行審閱源碼與許可證(核心爲 MIT;微信原生髮送引擎有單獨非商業許可說明)。
- 微信、QQ 橋均非官方接口,合規與賬號風險自擔;README 對 QQ 橋許可與 SnowLuma 使用條款有明確外鏈。
- 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係;DSH 生態是「一切皆插件」的開放模型,本文事實均來自上述倉庫 README、
package.json與 INSTALL 指引。
結尾¶
dsh-whale-world 把「記得你們說過什麼」和「在自己的時間裏生活」收束到一層插件:控制台開關在你手裏,記憶以原文和日記爲主,並與 Whale 系其它渠道銜接。下一步可從目錄頁瞭解分類與簡介,並在 GitHub 閱讀 INSTALL.md 完成安裝與可選接入。
- 目錄頁:https://www.skillhub.cn/plugins/SenuMirai/dsh-whale-world
- GitHub:https://github.com/SenuMirai/dsh-whale-world