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