前言¶
用 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