这是什么,以及怎么装
当前版本 0.2.1(2026-10-24 首个公开版本)。需要
@linxin666/dsh-pet。
给只是想试试的人(不涉及技术)
它叫什么:项目名是 dsh-pet-cuteness plugin;npm 包名不能带空格,所以包名写作 dsh-pet-cuteness-plugin
(2026-10-24 由 dsh-ai-waifu → dsh-pet-cuteness → dsh-pet-cuteness-plugin 两步改名,旧名字还留在磁盘文件名和旧路由别名里);
插件市场/插件列表里显示 大肥鱼的后台(dsh-pet-cuteness plugin);设置页里那一页也叫 大肥鱼的后台;
这个目录叫 AI娘化插件(历史目录名)。几个名字指的是同一个东西。
它是谁的插件:是 @linxin666/dsh-pet(右下角那只鲸鱼娘)的附属插件,不单独运行——
单独装虽然能跑,但没有人可以出镜,效果不好。所以 package.json 里把 dsh-pet 声明成了可选 peerDependency。
这是什么:DSH(一个 AI 对话客户端)的插件,给右下角那只鲸鱼娘配上「人」: 让模型按角色口吻说话、用中文思考、在挂件头顶冒一两句心里话,并且每晚替你写一篇日记。
装好之后会多出这些:
| 在哪 | 是什么 |
|---|---|
| 输入框左边 | 三颗胶囊:语气 / 中文思考 / 台词,当前会话各自开关 |
| 挂件头顶 | 台词气泡:从模型的思考过程里摘人话,跟着挂件走 |
| 设置 → 大肥鱼的后台 | 日记设置、挂件状态、亲密度、小鱼干,都在这页 |
| 设置 → 插件 → 本插件详情 | 一份同样的设置(老入口,两处改的是同一份) |
| 日记本文件夹 | 每晚一篇 <日期>.md,标题与结尾都带日期 |
第一次用建议这么走:打开「设置 → 大肥鱼的后台」→ 选一个日记本文件夹 → 在输入框左边点亮「语气」→ 同一句话再问一遍。她换口吻回答,就是生效了。
几个默认值,先说清楚免得你以为坏了:
- 语气默认关:人设段每个 model step 都要重算、占约 2 KB token,不想让所有人默认多花钱。
- 中文思考默认关,同样是为了省 token。
- 台词默认开,它零成本(只读模型自己的思考,不额外请求)。
- 亲密度 / 小鱼干默认收起:不点开就一个请求都不发。
它需要 dsh-pet 吗:需要(就是右下角那只鲸鱼娘,@linxin666/dsh-pet)。
没有它插件也能装、设置页也能开,但没人可以出镜、没有气泡可挂。已在 package.json 里
声明成可选 peerDependency,装的时候一起带上就行。
出问题先看这两个:
http://127.0.0.1:<端口>/api/dsh-pet-cuteness-plugin/debug —— 看 stage 是不是 ready、
attached 里有没有当前会话、scheduler 有没有在跳(日记定时器的体检数据)。
页面刷新过没有:插件更新后浏览器里跑的可能是旧 bundle,硬刷新一次(⌘⇧R)。
日记这件事,四个最常被问到的
一、桌面/日记本文件夹里那个 AI娘日记记录.md 是日记吗?
不是。它是「账本」:存你的设置、今天聊了多少段多少条、最近写过哪几篇、哪次没写成。
真正的日记是同一个文件夹里按日期单独存的 Markdown 文件(2026-10-24.md 这种),
标题和结尾都写着日期。账本是给程序看的,手改它只会让她认不出来,所以别拿它当日记评价。
二、写日记需要装记忆插件之类的吗?
不需要。日记直接读 DSH 自己的会话日志——就是 ~/.dsh/sessions/<工作区>/<会话id>/session.v4.jsonl.zstd
这些文件,用的是 Node 自带的 zstd,不引第三方依赖,也不依赖任何记忆插件。
所以你装/不装记忆类插件,跟能不能写日记无关。
三、把会话归档了,还能写进日记吗? 能。DSH 的「归档」只是往工作区配置里记一份会话 ID 名单,用来在侧边栏里把它藏起来; 会话文件本身还在磁盘上原封不动。日记扫的是磁盘上的文件,不查那份名单,所以归档过的会话照样进日记。
四、晚上聊到很晚,算哪一天的日记? 每天 21:00 切日:21:00 之前算当天,21:00 之后算第二天。所以 22:30 的对话会写进明天的日记, 而 21:00 定时触发的那一篇,写的是刚刚结束的那一天(也就是你当天 21:00 之前的全部内容)。
顺带一句执笔模型:日记由你选的那条 DeepSeek 模型写;默认「自动」= 用你登录的 DeepSeek 账号那条 API。 换成非 DeepSeek 的模型会直接被打回,不会悄悄换你账号里的别的东西去跑。
给要动手装的人
零、先跑一遍自检(30 秒)
cd "<仓库根>/AI娘化插件/probe" # 把 <仓库根> 换成你本机这个工程的实际位置
npm run verify
退出码应该是 0。红的话先修,别往下装——带着红灯装的插件,出问题时你分不清是环境还是代码。
一、装(三步,按顺序)
在 DSH 里打开插件管理器(设置 → 插件),选「从本地目录安装 bundle」。
target 填这个绝对路径(不是相对路径):
<仓库根>/AI娘化插件/probe也就是
probe/目录在你本机的绝对路径(形如/Users/你的用户名/…/AI娘化插件/probe)。 不要用相对路径,也不要照抄文档里别人的用户名。装完会返回一个
application对象和warnings数组。 以这个返回值判断是否生效,不要以日志判断。
不要去手改 profile 的
package.json或cordis.patch.yml,也不要在 profile 目录里跑 pnpm。 官方唯一推荐路径就是install_bundle。
二、验(三件事,缺一件就是没通)
1. 行挂上了
在会话里让宿主跑 cordis_inspect_list(免审批),应该看到一行
id: ai-waifu、name: dsh-pet-cuteness-plugin。
如果报 patch: entry ai-waifu not found,说明 cordis.patch.yml 里的 id 与已有行对不上;
注意这一版的 id 仍叫 ai-waifu(历史名,改了会让已装用户的行失效),只有 name 是包名。
2. 人设段落生效了
新建一个会话,问它:「你现在是谁?用一句话说,别解释。」
- 通:会自称蓝色大肥鱼 / 深度求索娘,语气软而直。
- 不通:还是标准的助手腔 → 说明
agent/created里注册段落失败。 看宿主日志里有没有[dsh-pet-cuteness-plugin]开头的 warn。会有两种:systemPrompt 服务不可用→ 服务名变了,去查宿主版本读不到 DEPLOYMENT_PERSONA_PREFIX 的顺序→SECTION_ORDERS变了
3. 台词气泡出来了
右下角那只鲸鱼娘头顶应该冒出一句短话(她真的在想东西的时候才有,静止时不会有)。
- 通:气泡贴着挂件走,拖动挂件它也跟;没有台词时挂件头顶不该留一个空壳。
- 不通:先看
/debug的lines段。pushed不涨 = 摘句全被过滤;card涨得比pushed快 = 卡片垫句在抢麦(cardRatio能直接看出来)。
三、已知的坑(真踩过的)
| 现象 | 原因 | 怎么办 |
|---|---|---|
| 整个页面白掉 | 组件渲染时抛错,把 overlay 那条 entry 搞挂 | 渲染路径上不许出现 可能为 undefined.x,全部兜底 |
| 模型名读不到 | 读的是 agent.options.model(创建时的默认值,换模型后过期) |
读 modelSelection.next.model 投影 |
| 人设段落没生效 | getSectionOrder('DEPLOYMENT_PERSONA_PREFIX') 在这版宿主上返回 undefined |
这是刻意的:读不到就不注册,绝不猜数字(详见设计方案 §3.3) |
| 改了 client.js 没效果 | client.js 是构建产物 | 改 src/*.mjs,然后 npm run build |
| 装了之后人格卡读取失败 | 素材没同步进 probe/data | npm run sync-data |
四、边界(明确不做的事)
- 不改 dsh-pet:挂件是别人的包,我们只在它允许的位置出现(设置页并排、气泡自己画)。
- 不代装/代挂 dsh-pet:只在
peerDependencies里声明 + 运行期探测,没装就提示,不偷偷改你的插件配置。 - 不碰系统提示词里的时间/随机数/会话 id:会打穿前缀缓存(实测命中率掉到 0.2%)。
- 不往
document.body追加节点、不用 iframe、不 require 任何@deepseek-ai/dsh-client-*包。 - 亲密度/小鱼干只在你说要改的时候写:写前备份
pet.json.bak,写完回读核对,对不上就还原。
五、改代码的流程
cd probe
# 改逻辑 → 改 src/ 下的 .mjs(不要改 client.js)
vim src/voice-lines.mjs # 台词摘句规则
# 改素材 → 改上游真源,再同步
vim ../data/personas/personas.base.zh.json
python3 ../tools/merge.py
npm run sync-data
# 重建 + 全量检查
npm run build
npm run verify
npm run verify = 素材同步检查 + 构建产物检查 + 全部测试。
提交前必须绿。
No comments yet. Be the first to write one.