dsh-hermes-bridge:DSH 與微信的雙向橋接插件

DSH 理念是「一切皆插件」。在構建 DSH 智能體與微信交互時,傳統的單向鏈路(WeChat → Hermes skill → dsh --profile headless)存在冷啓動耗 Token、丟失會話上下文以及長時間任務無法通知的問題。dsh-hermes-bridge 插件通過複用常駐會話和 hermes send 零 LLM 消耗,解決了這些問題。

插件定位

由 dsh-pulse 維護的 DSH 插件,提供 DSH 與微信的雙向通信能力:入站調度(微信消息 → DSH agent 執行)和出站推送(任務進度/結果 → 微信)。它以 Hermes gateway 作爲微信傳輸層,支持按工作目錄複用 DSH agent 會話,比一次性 headless 調用省 15–20× token。

核心功能

  • 會話複用:按工作目錄(cwd)持久化常駐會話池,後續消息繼續同一對話,避免冷啓動。
  • 自動回推:任務狀態(接單、開跑、完成/失敗)以結構化數據推送到微信。
  • 零 LLM 出站:通知通過 hermes send 發送,不消耗模型 Token。
  • Web UI 可見:任務註冊至 ctx.jobs,可在 Web 界面查看。
  • 持久化與崩潰恢復:任務隊列落盤(JSONL 格式),重啓後自動恢復 queued 任務或重入 running 任務。
  • 中斷重入:支持將中斷的任務重新入隊,保持會話狀態。

安裝與啓用

插件需要安裝在 web profile 下,以保持 HTTP 循環監聽常駐。

  1. 安裝插件
   dsh plugin --profile web add @dsh-pulse/dsh-hermes-bridge
  1. 配置註冊
    插件依賴 @deepseek-ai/cordis peer dependency。在 ~/.dsh/profiles/web/cordis.patch.yml 中添加以下內容:
   - insert:
       - id: hermes-bridge
         name: 'file:/absolute/path/to/dsh-hermes-bridge/lib/index.js'
         config:
           port: 8643
           authToken: '${env.DSH_BRIDGE_TOKEN}'   # 必填,拒絕無 Token 啓動
           pushTarget: 'weixin:<chat_id>'          # 必填,目標聊天 ID
           hermesBin: '/path/to/hermes'            # 可選,默認 'hermes'
           workspaceRoots: ['/path/to/workspace']  # 可選,工作目錄白名單

環境假設

插件基於特定開發環境編寫,無法開箱即用於所有環境,請覈對以下假設:

  • DSH 版本:開發基於 0.1.0-rc.7(Node ≥ 22)。ctx.agents / ctx.agentPresets 等爲 rc 階段快照,升級可能導致 API 漂移。
  • DSH Profile:必須使用 web profile(dsh web),保證插件進程常駐。
  • Hermes 安裝:需自行部署 Hermes Agent gateway(如 hermes-gateway.service)。出站依賴 hermes send 命令。
  • 微信通道:默認使用 iLink 個人機器人通道(ilinkai.weixin.qq.com)。出站目標需通過 hermes send --list 驗證。
  • 會話路徑:默認使用 ~/.dsh/sessions,若 DSH_HOME 不同需調整。

配置項

key type default description
port number 8643 本地監聽端口(host 硬編碼爲 127.0.0.1)
authToken string — 必填,每次請求驗證的 Bearer Token
pushTarget string — 必填,如 weixin:<chat_id>,由 hermes send 解析
hermesBin string hermes hermes CLI 可執行文件路徑
retries number 1 出站推送重試次數
maxTextLen number 1500 推送文本截斷長度
preset string standard session setup 時掛載的 agent 預設

適用場景與注意事項

  • 適用場景:需要在微信中接收任務並執行,且希望複用會話上下文、節省 token 的 DSH 用戶。
  • 注意事項:
  • 無認證層:插件本身無認證機制,host 僅監聽 127.0.0.1,請勿對外暴露。
  • 微信限流:iLink 通道存在 sendmessage 限流(ret=-2),突發推送可能被丟棄。
  • API 漂移:任何 DSH 升級後需迴歸驗證。

生態鏈接

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

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

小夜