mianyoubiaoqing/MistyMoon-DSH ↗★ 0
@mistymoon/dsh
Long-term companion plugin suite for DeepSeek Harness
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:mianyoubiaoqing/MistyMoon-DSH说明文档
阅读完整 README ↗MistyMoon for DeepSeek Harness
MistyMoon 是一套以角色扮演(Roleplay,简称 RP)和长期陪伴为核心的 DeepSeek Harness 外置插件。项目保留 MistyMoon 的人格、关系、长期记忆与陪伴体验,同时复用 DSH 的 Agent Runtime、会话、工具、权限和 Web 插件体系,不修改 DSH 源码,也不重复实现 Agent Loop。
当前公开版本为
0.0.1-rc2,仍处于候选发布阶段。请先在本地测试环境中使用,并保留私有数据备份。
产品定位
MistyMoon 不是单纯的聊天 UI 或通用记忆数据库,而是 DSH 上的 RP 产品层:
- 以稳定人格、持续关系和跨会话记忆维持角色连续性。
- 允许主人在本机编辑、审核和发布自己的私有人格,不把真实人格上传到公开仓库。
- 将角色行为与通用 Agent Runtime 分离;DSH 负责推理、会话、工具和权限,MistyMoon 负责 RP 语义与陪伴体验。
- 支持未来接入 QQ/NapCat、桌面形象、手机端和主动陪伴,但这些入口共享同一人格、记忆和身份治理规则。
当前能力
私有人格与 RP
- 首次启动时,从中性模板创建一份用户私有的人格文件。
- 人格文件支持身份、关系、熟人和陌生人差异、表达规则、参考对话与回复长度预算。
- 设置页将编辑保存为不参与对话的草稿,可预览模型可见人格;只有明确点击发布后才会从下一次请求开始生效,并可回滚到旧活动版本。
- 安装或升级插件不会覆盖用户已经修改的人格。
- 真实人格只保存在用户的 DSH Home,不会进入本仓库或 npm 包。
- RP 与 DSH Agent 预设和协作模式相互独立。
minimal、标准、Plan、权限和工具配置均保持原样;人格作为带来源的会话消息在真实用户请求前投影,不覆盖 DSH 系统提示词。长任务的后续工具步骤会重复一条精简语气提醒,降低上下文增长造成的最终回复人格漂移。 - 每个会话可使用
/rp off、/rp companion或/rp immersive选择展示等级;默认companion,Coding 场景不会把代码、命令、计划、诊断或技术决策角色化。
长期记忆
- 识别“请记住……”等明确请求,并写入私有的追加式 JSONL 档案。
- 按 DSH 消息 ID 去重,避免同一条消息被重复记忆。
- 召回内容以带来源的 DSH 消息写入会话,因此实际发送给模型的上下文可以从会话日志重建。
- 支持列出、纠正和遗忘记忆;旧值保留在审计历史中,但不会继续参与召回。
- 支持候选记忆的提议、查看、批准和拒绝。候选内容只有经过主人批准后才会成为正式长期记忆。
- 设置页提供候选记忆审核区域;待审核和已拒绝的候选不会进入模型上下文。
本机设置页
- 入口:设置 → 插件 → MistyMoon。
- 可编辑人格、关系规则、参考对话、回复预算和单次记忆召回上限。
- 可导入 Character Card V1/V2/V3 JSON、PNG/APNG 和 CHARX,在字段映射与人格差异预览后保存为未发布草稿。
- 角色卡的系统提示词和场景映射默认关闭;Creator Notes、问候、世界书、扩展和未知字段不会自动进入人格或模型上下文。
- 可在页面中批准或拒绝候选记忆。
- Host API 只允许本机回环来源访问,避免私有人格和记忆通过普通远程页面暴露。
旧版数据迁移
- 可只读预览旧 MistyMoon SQLite 数据库。
- 仅迁移状态为
confirmed的长期记忆。 - 不迁移旧人格、会话、事件、候选记忆、已遗忘记录、图索引、向量索引或凭据。
- 重复执行迁移具有幂等性,不会重复导入同一条来源记录。
架构原则
MistyMoon 通过 DSH 原生插件扩展点实现功能:
DeepSeek Harness
├─ Agent、会话、工具、权限与 Web Runtime
└─ MistyMoon RP 插件套件
├─ foundation 私有人格生命周期与会话级 RP 投影
├─ memory 长期记忆、候选审核与召回
├─ settings-ui 本机设置和候选记忆审核页面
└─ installer 开发预览安装器
记忆插件只维护一个进程级档案实例。Agent 工具、召回流程与设置页共同使用该实例,避免多个进程内视图同时写入同一份 JSONL 文件。DSH 会话保存原始对话和模型可见投影,MistyMoon 记忆档案只保存经过选择的跨会话事实。