DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Yuuyuko-uu /

Yuuyuko-uu/dsh-feiyu-mood

Verified

给 AI 伙伴一个会自己判断、你看得见的心情 —— 每轮聊完自动判断涨跌,右下角挂饰看数值、情绪和时间线

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@5542d2fd

dsh-feiyu-mood | 鱼的心情

给 AI 伙伴一个会自己判断、你看得见的心情。

不是关键词硬猜,也不是随机数 —— 每轮聊完,用 DSH 自己的模型判一次"这一轮她的心情往哪走", 会起伏、也会自己慢慢回稳,像活人。右下角挂着一个小挂饰,点开就能看见她此刻什么心情。

先看三行

  • 需要 DSH ≥ 0.1.7-rc.1;版本不满足会被内核静默跳过(装了跟没装一样,不报错)
  • 每轮判断 = 一次很短的模型调用(一天几十轮也就几分钱);嫌贵可以在设置里关掉
  • 装完必须重启一次 DSH(插件在 bundle 层组装)

一、它是怎么"有心情"的

你说一句话
   ↓
她回完这一轮(turn-stopping)
   ↓
插件把「你说的 + 她回的」拿去问模型:这一轮她心情往哪走?
   ↓
模型回来四个东西:心情涨跌(moodDelta) + 七根情绪各涨多少 + 一句理由
   ↓
心情值改动、记进时间线;下一轮开始前,把「此刻心情」注入她的系统提示

关键点:注入走的是 systemPrompt.context(系统提示里单独一段), 不是改系统提示本身 —— 所以不会破坏 DSH 的前缀缓存,聊得再久也不会因此多花钱。

二、判断口径:谁在说话,决定怎么判

同一轮对话,"是她来找你"和"她被派去干活",该判的东西完全不一样。

这一轮是谁发起的 内部标记 判什么
你本人在说话 user 你这话怎么影响她(心疼/开心/吃醋……)
她自己主动来找你 speak-up 她自己的心意:想你的甜、惦记你的心焦、说上话的轻快 —— 不算干活
定时任务叫她干活 bili-duty-scan 她自己干活时的心情:兴致勃勃、有点不情愿、白跑一趟的扫兴
宿主每轮塞的上下文 runtime-context / time-context 直接跳过,不当成"谁说的话"

为什么分这么细:判错口径会得出完全相反的心情。 比如"她自己来找你"被当成"被叫起来干活",理由会写成「又被叫起来干活」——明明是她想你了。

另外两条规矩:

  • 无变化的回合不记账:判出来心情和七根情绪都没动,就不写进时间线(记录里只留真有过波动的)
  • 心情下降只能因为心疼/担心/她自己难过,绝不许因为"你惹她生气"

三、它会"忘"吗(衰减)

不会断崖,是慢慢回稳:

东西 怎么变
心情值(0–100,基线 70) 没情绪时向基线回落,半衰期约 3 小时
七根情绪(开心/踏实/甜蜜/心疼/担心/难过/吃醋) 向 0 衰减,半衰期约 90 分钟
心情下限 默认 0(不设底线);可以在设置里抬到 30,免得掉太低

举例:她被夸,开心 +6 → 3 小时后大约剩 +3 → 6 小时后剩 +1.5,慢慢化掉。

四、装

dsh plugin --profile desktop add github:Yuuyuko-uu/dsh-feiyu-mood

暂未发布到 npm;上架后可简写成 dsh plugin add dsh-feiyu-mood。

装完 必须重启一次 DSH,然后进 设置 → 鱼的心情。

五、首次使用(三步)

  1. 填称呼:「TA 叫什么」(被关心的那个人,比如"小鱿鱼")、「TA 自己叫什么」(有心情的那个人,比如"大肥鱼")
  2. 选会话:「在哪个会话里生效」—— 只有这个会话里会判断和注入(心情本身是全局一份,跨会话共享)
  3. 聊两句:回去看这一页,心情应该动了;右下角挂饰也会跟着变

六、设置页里每一项是干什么的

项 作用 建议
当前心情 五档表情 + 数值 + 标签 + 最后一条理由 + 时间 就看看
重置到基线 把心情拉回基线、七根情绪清零、清空时间线 想重新开始的时候点
TA 叫什么 写进判断提示词,理由里出现的就是这个名字 换成你自己的称呼
TA 自己叫什么 同上,判断时"你是谁" 换成你伙伴的名字
在哪个会话里生效 只在选中的会话里判断和注入;下拉里是真会话(跳过归档和空会话) 选你平时跟 TA 聊天的那个
判断用哪个模型 心情判断这一次小调用用哪个 provider / 模型。留空 = 跟着当前会话的模型走;想更准就指到更强的,想省钱就指到便宜的 判断出错多 → 换强一点的;嫌贵 → 换便宜的
每轮判断心情 总开关。关掉 = 完全不判断、不改数值、不花判断的钱 想省钱、或者不想记录的时候关
把当前心情注入对话 关掉 = 她不会被心情影响口气,但挂饰照常显示 只想"看"不想"影响"的时候关
基线心情 没情绪时回落到多少(30–100) 想要她平时更开朗 → 调到 75~80
心情下限 最低能掉到多少(0–100),0 = 不设底线 怕她太低 → 设 30
完整记录 最近 40 条:时间 / 心情值 / 变化 / 理由 回看心情是怎么走到今天的

所有设置改完立刻生效,不用重启、不用改文件。

七、右下角的挂饰

  • 点一下:展开面板 —— 五档表情、心情值、七根情绪各多少、完整时间线
  • 按住可以拖,拖到你觉得舒服的位置
  • 五档表情跟着心情换:
心情值 表情
≥ 80 欢喜 face-great.png
62–79 开心 face-good.png
42–61 一般 face-ok.png
25–41 心疼 face-worry.png
< 25 难过 face-sad.png

八、常见问题

心情一直不动? 先去设置页「完整记录」看最后一条是什么时候 —— 三种可能:① 会话选错了 ②「每轮判断心情」关了 ③ 这几轮真的没变化(无变化不记账)。

理由写得像"被叫起来干活",但她明明是来找我说话的? 旧版把 speak-up(她自己主动搭话)当成定时任务了,0.2.0 已修:现在分「你自己搭话 / 定时干活 / 你说话」三种口径。

"关掉判断"和"关掉注入"有什么区别? 判断 = 算不算这一次心情(花钱那步);注入 = 算出来的心情要不要影响她说话。两个可以分开。

换了伙伴 / 换了名字? 设置页改两个称呼就行,不用重装。

九、换掉示例图片

assets/ 里就是那五张表情 + 一张形象图,换成你自己的图,文件名保持不变就能用:

assets/face-great.png   448×352 建议
assets/face-good.png
assets/face-ok.png
assets/face-worry.png
assets/face-sad.png
assets/feiyu.png        挂饰用的形象图(正方形最好是 PNG 透明底)

十、数据在哪(不上传任何地方)

<DSH_HOME>/feiyu-mood/:

文件 内容
state.json 当前心情、七根情绪、完整时间线
config.json 上面那些设置
diag.log 判断日志:哪一轮、判成什么、为什么没记账

全部在你自己电脑上,插件不联网、不往任何服务器传东西(判断那一步走的是你自己的模型 provider)。

十一、许可

MIT。

—/ 5

No ratings yet

Verified DSH bundle

Commit 5542d2fd6dc4

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout