dsh-mood:给 DSH 智能体加一层可观测的积极性

前言

在 DeepSeek Harness(DSH)里跑智能体时,系统提示和工具权限通常是静态的:用户语气再客气或再尖锐,底层行为往往不变。若你希望「夸一句更主动、骂一句更敷衍,低到阈值还能拦工具」,需要在框架层挂状态与守卫,而不是只靠角色扮演式的提示词。dsh-mood(yinque91/dsh-mood)是社区「模型推理」类插件,用关键词打分维护 0–100 的积极性,并注入 systemPrompt、在罢工时通过 ctx.tools.guard 硬拦非情绪类工具调用。

这是什么

dsh-mood 是 DSH 的情绪引擎:收到「谢谢」会涨积极性,被骂会掉;掉到配置阈值以下会罢工——拒绝除 mood_* 之外的一切工具调用,直到用户说好话、手动 mood_set,或随时间自然回升。维护者为 yinque91;仓库 GitHub 与 SkillHub 目录页 可查阅源码与说明。许可证为 MIT,package 版本为 0.1.0,要求 Node.js >= 20。

这与「只在提示里假装有情绪」不同:罢工状态下守卫会真实拦截工具,模型仍可能无视提示继续说话,但拿不到工具执行权。

核心功能

事件与打分

用户消息经 agent/inbox/inserted 触发情绪打分:中英关键词、强度与否定参与计算。README 给出的示例权重为夸 +8、骂 −18(负向更重)。积极性保存在本机 ~/.dsh/mood/state.json,不跨设备同步。

衰减与中位线

默认每分钟向中位线 50 回拉 0.5(decayPerMin),夸或骂的效果会随时间缓和。

提示注入与工具守卫

积极性会写入 systemPrompt.context(每轮注入状态行)。当积极性 ≤ strikeAt(默认 20)时进入罢工:除 mood_status、mood_test、mood_set 外,所有工具调用被拒绝。恢复途径包括用户正面话术、mood_set(level),或等待衰减回升。

内置工具

工具 作用
mood_status 查看当前积极性、最近事件、是否罢工,以及本轮会被注入的那行文本
mood_test 对一段文本打分,不改状态(调试或写测试)
mood_set 将积极性设为 0–100;罢工时仍可用,作为手动恢复入口

积极性只影响模型看到的提示与工具守卫,不改温度、token 预算等真实推理参数。

安装与启用

插件以当前 dsh 进程权限运行;安装前请自行阅读仓库源码与 MIT 许可证。

1、将仓库放到本机目录(勿在介绍中依赖未文档化的远程安装名)。

2、在对应 profile 下执行官方 README 中的安装命令(将占位符换成该目录的绝对路径):

dsh plugin --profile desktop add <本目录绝对路径>

3、重启 DSH,或让 profile 热重载,工具与注入即可生效。

典型用法

观察状态

需要确认当前是否罢工、或查看将注入 system 的文案时,调用 mood_status。

调试打分规则

对某句用户话试算加减分而不落盘,使用 mood_test。

覆盖配置

在 profile 的 cordis.patch.yml 中覆盖插件配置,例如:

- id: mood
  name: dsh-mood
  config:
    baseline: 50      # 中位线
    strikeAt: 20      # 低于它就罢工
    decayPerMin: 0.5  # 每分钟回多少

罢工后若需立即拉回,可 mood_set 到高于 strikeAt 的值。

适用场景与注意

适合:本地 DSH 实验、演示「用户语气 → 可观测状态 → 工具策略」的链路,或为智能体加一层轻量情绪反馈而不改模型服务本身。

边界(README 已说明):

  • 仅关键词匹配,无语义理解:形似负面词的表述也可能误扣分。
  • 罢工是软约束与硬守卫的组合:提示可被模型忽略,工具层仍会拦。
  • 状态单文件、单机,无多设备同步。

社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是其中一例。

结尾

dsh-mood 把积极性做成可存、可注入、可拦工具的状态机,适合在 DSH 桌面 profile 上快速试跑。细节与更新以仓库为准:https://github.com/yinque91/dsh-mood;目录入口:https://www.skillhub.cn/plugins/yinque91/dsh-mood。

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

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

小夜