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
羽毛球分组比赛记分
小程序二维码

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

小夜