dsh-anima:DSH 助手人格与带待审缓冲区的长期记忆

前言

在 DSH 里跑智能体,常见两类配置会越用越乱:一是「助手是谁、怎么称呼你、用什么语气回话」散落在各次对话或手写提示里;二是「长期记忆」有的插件静默写入,写错了一条很难发现,有的只设条数上限,几十条长文照样挤爆上下文。社区里已有 persona / 记忆类插件,但往往彼此字段、工具名耦合,或与 dsh-soul 等同层重名导致注册失败。

下面介绍维护者 Melody-cx 发布的 dsh-anima(分类:记忆)。它是一个独立插件:字段集自持,不依赖其它插件、不读取别家配置;管助手身份与回复风格、工作区两级覆盖,以及「候选 → 待审 → 用户裁决才生效」的三段式长期记忆,并支持从其它 AI 一键导入历史画像。当前版本 1.0.0(MIT),GitHub 星标 1。

这是什么

dsh-anima 是 DSH 的助手人格与外挂记忆层:装上即可用。核心对象不是业务代码,而是「你自己(助手)是谁」——agentName / agentRole、对用户的称呼与背景、回复风格与自定义指令;再加带待审缓冲区的长期记忆,以及输入框光轨、快捷开关、工具确认门槛等界面能力。

与 dsh-soul 在能力划分上有交集且若干行为刻意对齐,但不依赖它:标识全部错开(例如工具名为 set_assistant_persona 而非 set_persona,避免 dsh-tools 同层重名注册失败被静默吞掉)。可与 dsh-soul 同时安装。

  • 目录页:https://www.skillhub.cn/plugins/Melody-cx/dsh-anima
  • 仓库:https://github.com/Melody-cx/dsh-anima

核心功能

助手身份与工作区覆盖

十二个相关字段均为自由文本,存的就是注入提示词的原话;设置页提供「一键填入 + 示例」。

能力 配置要点
AI 名字与角色 agentName、agentRole
用户侧画像 addressUserAs、userOccupation、userBio
回复风格 style、replyLength、language、customInstructions 等
两级覆盖 全局默认 + 按工作区只覆盖声明字段,其余继承全局

工作区覆盖默认写在 <工作区>/.dsh-anima/override.json(目录名可用 workspaceFileDir 改),随目录走、可 git;该目录会自动写入 .gitignore(内容 *),减少私人设定被推到远程的风险。

人设支持 6 条内置预设 + 自建,也可把当前配置存成预设。变更可走设置页、/anima 命令,或模型调用 set_assistant_persona;所有写入经 StateStore.updateConfig 收口,并有人设变更审计日志(上限 200 条,长值截断为 200 字并附「共 N 字」)。requireToolConfirmation 默认关闭;开启后模型改人设只提交提议、不直接写配置。

三段式长期记忆

与「对话里记了就立刻进提示词」不同,本插件刻意不做静默自动写入:

对话中通过 remember 工具投递
        ↓
   待审缓冲区(不生效)
        ↓  每晚自动整理:去重 / 淘汰 / 与已采纳项比对(纯本地,不调模型)
        ↓
   通知用户「有 N 条待你裁决」
        ↓
   设置页逐个「采纳 / 丢弃 / 删除」
        ↓
   已采纳 → 注入提示词

记忆分 global(处处生效)与 workspace(仅在 cwd 归一化后完全相等时注入,不做子目录继承)。注入受双约束:memory.maxInjected(条数,默认 40)与 memory.maxInjectedChars(字符,默认 4000),先到者生效。设置页「注入情况」对每条已采纳记忆给出原因码(如 included、over-budget、dropped-by-budget、other-workspace 等),便于排查为何进 / 不进上下文。

待审区用本地 bigram Jaccard 做相似聚类与冲突提示,只提示、不自动合并。命中凭据形态的内容在进入缓冲区前即拒收(11 类正则,界面会说明命中规则名)。

界面与其它能力

  • 输入框光轨:trailEnabled、trailColor、trailSpeed、trailWidth
  • 输入框快捷开关、工具确认门槛(与生态内同类语义对齐)
  • 一键导入外部 AI 的记忆:复制整理画像提示词 → 粘贴结果 → 机械切分(Markdown 标题 / 列表 / 空行)→ 逐条选层级或丢弃 → 仍进入待审缓冲区,需用户裁决后才生效

安装与启用

插件尚未发布到 npm,推荐从 GitHub 安装并 pin 版本:

dsh plugin add github:Melody-cx/dsh-anima#v1.0.0

也可在 profile 的 package.json 中声明依赖并把 dsh-anima 加入 dsh.profile.bundles,然后执行 pnpm install。重启 DSH 后宿主侧改动才生效。

运行前提(摘自 package.json):

  • Node:^22.19.0 || >=24.0.0
  • DSH:>=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0-0
  • 存储栈需在 profile 组合:@deepseek-ai/dsh-storage + @deepseek-ai/dsh-storage-json(配 root)+ @deepseek-ai/dsh-storage-domain(backend: json)。缺失时插件会提示「存储不可用」,不会无声失败。

典型用法

设置页「灵台」

设置页新增一栏「灵台」(settings.section id = anima-settings,order 51)。按卡片配置助手身份、回复风格、工作区覆盖、光轨、工具确认与长期记忆(memory.enabled、autoCapture、nightlyTriage、nightlyHour、maxPending 等)。

命令行速览

使用 /anima 系列命令查看或调整人设;/anima show 会带一行「最近变更」(格式为 [MM-DD HH:mm] <来源>:<字段名>,不带具体值,避免私人内容被复制到对话里)。

模型侧工具

  • set_assistant_persona:改人设(受 requireToolConfirmation 约束)
  • remember:把候选记忆投递到待审缓冲区,而非直接生效

导入其它 AI 的记忆

在记忆卡展开「导入外部 AI 的记忆」:先复制内置提示词到常用 AI 整理画像,再将输出粘贴回 DSH;解析后预览每条,可改 global / workspace 或丢弃,确认后进入待审流程,与手动添加路径一致。

适用场景与注意

适合谁:希望在 DSH 里统一助手称呼、语气与工作区差异,又希望长期记忆必须经过自己点头才进提示词的用户;需要从 ChatGPT 等迁移画像、但愿意在待审区逐条裁决的人。

注意:

  1. 插件以当前 DSH 进程的权限读写配置与记忆,安装前请查看仓库源码与 MIT 许可证,确认符合你的安全策略。
  2. 凭据拦截靠正则机械匹配,可能有误判;被拦下时按界面提示调整文本后重试。
  3. 与 dsh-soul 等同装时依赖标识错开,但若其它第三方插件仍注册同名工具,仍可能触发宿主层的注册冲突,需自行排查 warn。
  4. SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系;版本以仓库标签为准,未 pin 时 main 变动会在下次安装时进入 profile。

结尾

dsh-anima 把「助手是谁」和「什么值得长期记住」拆开处理:前者支持全局与工作区两级覆盖与人设审计;后者用待审缓冲区把生效权留给用户,并用条数 + 字符双预算和可解释的注入原因降低上下文被悄悄撑爆的风险。若要试用或跟进 issue,可访问 SkillHub 目录页 与 GitHub 仓库。

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

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

Xiaoye