前言¶
在 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