dsh-quiet-hours:给微信机器人加工作日静音时段

前言

用 DeepSeek Harness(DSH)挂 WeChatAgent 做微信助手时,模型会随消息一直在线。若只想在工作时段外或固定作息里「不接 AI、只回一句固定话」,常见做法是停掉 WeChatAgent 的后台服务——结果是消息链路断了,固定回复也发不出去,还会连带停掉表情、记忆等能力。

下面介绍社区插件 dsh-quiet-hours:在工作日指定时段内不调用模型,来消息用固定文案应答;时段外自动恢复人格对话,不改人格、不清会话、不动聊天记录。

这是什么

dsh-quiet-hours(插件 ID 同名)由维护者 rnfmabjE 发布,归类为工作流类 DSH 插件。它挂在 WeChatAgent 的微信会话上,在 agent/pre-step 拦截本轮进模型的步骤:时段内直发固定文案并 reject,不产生 token;时段外 next(),行为与未装插件时一致。

默认作息(Asia/Shanghai)为工作日 09:00–12:00、14:00–18:00 两段免打扰,仓库默认固定回复为:

梁文峰不是我兄弟,梁文谷才是

核心功能

时段与停答方式

  • 时段可配:windows 支持任意 IANA 时区、holidays / extraWorkdays 处理节假日与调休。
  • 真·AI 停答:在 agent/pre-step 直接拒绝,模型不参与。
  • 固定文案直发:经 WeChatAgent 原生 hook 的 POST /SendTextMsg,不经模型。

私聊与群聊

  • 私聊:时段内符合条件的消息都会触发固定回复。
  • 群聊:默认 groupReply: wake,仅在被 @ 或命中 accountNames / 唤醒词时回复;可改为 always / never。

限流与手动控制

  • 同会话冷却默认 180 秒,每小时上限默认 12 条。
  • 桌面 DSH 会话可调用 quiet_hours_status、quiet_hours_control(强制开/关/回到作息表);这两个工具不会出现在微信会话里。

失败安全

插件内部异常会放行原流程;固定文案发不出去时默认仍拦住 AI(可通过 fallbackToAgent: true 切回让 AI 回)。

已知边界

被拒绝的消息不会进入 AI 会话历史,固定文案也不写入 AI 对话记录;时段恢复后,AI 不知道自己在免打扰期间回过这句话。

安装与启用

插件以当前 DSH 进程权限运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。

前置(README 实测):Node.js ≥ 20;DSH 0.2.0-rc.2;WeChatAgent 0.3.9 已能收发(reader 5031、hook 30001、bridge 11229、DSH 桥接插件 11230)。

一键安装

  • DSH Desktop:设置 → 插件市场 → 搜 quiet hours → 安装。
  • 命令行 / web profile:
dsh plugin --profile web add github:rnfmabjE/dsh-quiet-hours

安装成功后会自动把包名写进 dsh.profile.bundles。桌面版 desktop profile 由 Electron 应用独占,请用应用内安装,勿用 dsh plugin --profile desktop …(会报 profile 被应用独占管理)。

宿主插件与配置在 DSH 启动时 加载;改配置或安装后需从托盘完全退出 DSH 再打开。

验证

在桌面 DSH 会话里问「静音时段现在什么状态」,应调用 quiet_hours_status,返回里可见 probe.reader=true、probe.hook=true。

不依赖 DSH 的自检(在插件目录):

node check.mjs
node check.mjs --send-test

后者会额外给「文件传输助手」发一条测试文字。

典型用法

改固定文案

配置写在 profile 下 node_modules/dsh-quiet-hours/cordis.patch.yml(源自仓库 patch)。改 reply 即可换全局文案:

- insert:
    - id: quiet-hours
      name: dsh-quiet-hours
      config:
        reply: '梁文峰不是我兄弟,梁文谷才是'

保存后完全重启 DSH,用 quiet_hours_status 确认 config.reply 已更新。文案会被压成单行并截断到 300 字。

仅改某一个会话时,使用 replyByChat,键为 wechat:private:<id> 或 wechat:group:<id>。

改作息与群昵称

同一 config 块中可调整 windows、timeZone、accountNames(群里 @ 判定)、groupReply 等。完整字段说明见仓库 README 配置表;示例见 examples/cordis.patch.yml。

临时强制开关(桌面)

调用 作用
quiet_hours_control({action:'on', minutes:60}) 强制进入免打扰
quiet_hours_control({action:'off', minutes:60}) 强制恢复 AI
quiet_hours_control({action:'auto'}) 清除强制,回到作息表

等价状态文件:state/away/override.json。

适用场景与注意

适合:已用 DSH + WeChatAgent 跑微信助手、需要在固定工作时段「零 token、一句固定话」、且希望消息仍被 reader 接收、会话仍落库的场景。

注意:

  • WeChatAgent 为第三方 Windows 程序;本插件只读本机配置/状态并调用本机 hook(127.0.0.1),不修改 WeChatAgent 文件。
  • 会话须在 WeChatAgent 的 whitelist 内才会拦截。
  • 社区目录页 skillhub.cn 与 DeepSeek / 幻方无官方从属关系,属 DSH 生态独立收录。

排错时可查 state/away/audit.jsonl、README 排错表及 docs/troubleshooting.md。

结尾

dsh-quiet-hours 保留微信消息链路,只在作息时段让 AI 不上场,用可配置的固定文案和限流兜底应对私聊与群 @。需要细节、手动部署与升级步骤时,以仓库 README 与 docs/deploy.md 为准。

  • 目录页:https://www.skillhub.cn/plugins/rnfmabjE/dsh-quiet-hours
  • GitHub:https://github.com/rnfmabjE/dsh-quiet-hours
羽毛球分组比赛记分
小程序二维码

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

小夜