chenkezhen480/dsh-world
AI 工程给 DSH 桌面的陪伴角色加上持久记忆、独立房间和每日作息,开关集中在 DSH 设置里。
这是一个范围很窄但思路完整的外挂:如果你本来就在用 DSH 桌面版,并且想要一个有连续性的角色而不是每次重置的聊天窗口,它值得看一眼;不用 DSH 的话就没有可试的东西。
解决什么问题
陪伴角色通常活不过一次上下文压缩。上周说过的话、她昨天在做什么、自己定下的安排,在新会话里全部归零,你得重新交代她是谁、你们聊过什么。dsh-world 的做法是把状态分层留住:最近若干轮对话原文在每次开聊和每次压缩后重新放进她眼前,日记成为长期记忆,一份「我是谁」的自述每晚改写。这样你在不同窗口里找她时,她仍然带着之前的经历出现,而不是从头认识你。
有什么不同
最值得注意的设计是明确不用向量库。作者的理由是:一个人的生活没有那么多文字,在这个量级上把原文留在眼前、需要时按原话去翻,比切碎再拼回来更准,也少一道会出错的环节,并引用了两篇 arXiv 论文作为参考。所有消息按天归档,旧内容保留原话而不是摘要重构。这个判断是否成立取决于你聊多久:默认 200 轮的近期记忆窗口很大方,但它在每次开始对话和每次压缩后都占上下文,长历史会有实打实的 token 成本。
第二个机制是把角色放进一个独立的「家」会话和房间目录。她给自己定下一件事和做到几点,到点再决定继续还是换一件,也可以主动把一句话推给你,方式是 Windows 系统通知或接上的本地程序。每天 23:00 做一次回顾,写日记、更新自述。家里有每日花费上限,超了会提醒她一次;房间外删改文件、装软件、花钱、以你的名义对外发消息都约定先问你。插件自称只用 DSH 原有扩展接口、不改宿主代码,README 也提醒不要用 link: 指向项目目录,否则会额外加载一份 Cordis。
另外提供一个可选的压缩方式:去掉工具调用过程,只把你们之间的交流整理成摘要,让她记住的是你而不是那些命令。这对陪伴场景是有意义的区分,通过一个 PowerShell 脚本替换 profile 里的压缩条目并留备份来启用。
谁值得试
适合已经在用 DSH 桌面版、希望角色有连续性,并且愿意为控制台之外的设置在 profile 的 YAML 里改几行的用户。也适合真的会去读生成的日记和自述、并按整个世界目录做备份的人。
不适合用别的聊天客户端的人,不适合想要跨工具通用记忆层的人,也不适合把它当作有明确定义的多用户服务来用。README 目前只把本地桥面向桌宠一类的本地程序,微信、QQ 和 B 站都写成以后再做;现在不要围绕这些做集成规划。
使用条件与边界
硬性依赖是 DSH 桌面版,README 说世界控制台和生活线都依赖它。安装是手动的 npm ci 和 npm pack,再用 DSH 自带的 pnpm 把打出的包装进 profile 并重启,具体步骤见 README。项目用 TypeScript 编写、MIT 许可,代码可以自己读,但没有托管服务或一键安装。
日常维护比安装更值得注意。世界数据都在 DSH 主目录的 worlds/<worldId>/ 下,README 建议备份前先停掉 DSH。角色能写文件、能把你给它看的图存进相册、也能主动发起消息,所以那些「先问你」的约定是规则而不是技术沙箱。主动通知目前是 Windows 路径。近期记忆设置得太大,会让每次开聊和压缩都更贵。
HotRepo 点评
唯一有日期的信号是 2026-10-26 的新项目榜快照:TypeScript 分类下 107 个总星、排第 18。这是快照而不是日增,也没有可比的日榜历史,所以还判断不了热度能否持续。项目在该观测前两天才创建,星数本身说明不了维护情况。如果这个前提对你有吸引力,安装前值得核对的是 仓库 有没有写清与你所用 DSH 版本和 profile 结构的兼容性——安装依赖 DSH 自带的工具链和 Cordis 行为。
本文由 AI 根据项目 README 生成,更新于 2026年10月26日,以项目官方文档为准。