dsh-openilink-channel:通過 OpeniLink Hub 讓 DSH Agent 收發微信

前言

DeepSeek Harness(DSH)把 Agent 會話、工具與模型路由收進同一套 Cordis 插件體系。若要把對話接到微信,常見做法是自建網關或對接各家 IM SDK,運維和協議都要單獨維護。OpeniLink Hub 已經提供微信 Bot 與 Hub Bot API;本插件把 Hub 的 WebSocket 事件與 DSH 會話對齊,讓 Agent 在微信裏收消息、回消息,而不必在 DSH 裏再實現一套微信協議棧。

下面介紹插件 dsh-openilink-channel(倉庫 gitMFQ/dsh-oih)的定位、能力與安裝配置方式。事實以倉庫 README 與 package.json 爲準;社區目錄頁見 SkillHub。

這是什麼

dsh-openilink-channel 是 DSH 的客戶端類通道插件,維護者爲 gitMFQ。它把 OpeniLink Hub 的微信 Bot 接入 DeepSeek Harness,協議參考 openclaw-channel-openilink(OpenClaw 同款通道,宿主 SDK 不同)。

數據路徑可以概括爲:

微信用戶 ⇄ OpeniLink Hub ⇄ [dsh-openilink-channel] ⇄ dsh Agent 會話

插件在 DSH 進程內運行,權限與當前 Harness 進程一致;安裝前建議閱讀源碼與 MIT 許可證,確認 Hub 憑據與 Agent 能力是否符合你的環境。

核心功能

消息收發與會話

  • 收消息:Hub 經 WebSocket 推送 message.* 事件,插件把正文(含媒體元信息)交給對應 peer 的 Agent 會話。
  • 發消息:Agent 的 assistant/message 由插件調用 Hub Bot API 發回微信。
  • 圖片:帶 app token 從 Hub 媒體代理下載原圖,作爲圖片附件交給視覺模型;失敗時退回文本鏈接。
  • 羣聊:正文前帶 [暱稱 (id)] 發送者標籤,回覆發回羣 id。
  • 會話:按 bot + 私聊/羣 + peer 確定性派生會話 id,重啓後自動 resume。

與 IM Connect 的頻道約定

會話 id 採用 @michengai/dsh-im-connect 的頻道約定,形如:

im:weixin_openilink_<bot 摘要>:<dm|group>[:<13 位時間戳>]:<peer>

若已安裝 IM Connect,OpeniLink 會話會出現在側欄 「頻道 → 微信」 分組,而不是混在「任務」裏。投遞仍只走本插件;IM Connect 沒有 weixin_openilink_* 渠道適配器,不會重複發消息。新建會話需重載 IM Connect 插件或重啓 DSH 後纔會出現在頻道列表(IM Connect 僅在啓動時重建頻道索引)。未安裝 IM Connect 時,這些 id 只是普通會話 id,不影響收發。

注意:會話進入 IM Connect 頻道索引後,其 bindingForSession 會命中這些會話。對 approval/request 會返回 rejected;對 user-questions/request 會拋「當前聊天已斷開,無法在原聊天提問」。若需要 ask_user 或逐步審批,可改用獨立頁籤方案,或在 IM Connect 側將會話置爲 detached(會同時移出頻道列表)。使用 danger-full-access 且 approval: never 時,審批相關影響可忽略。

Agent 工具與微信內命令

插件向 Agent 註冊:

工具 作用
openilink_send_text 主動向指定微信用戶/羣發文本
openilink_send_media 按 URL 發圖片/文件/視頻(Hub 自行下載)
openilink_status 查看連接狀態、活躍會話、最近錯誤

微信側可用 /new、/reset 開新會話;/model 查看或切換模型;羣聊裏 @Bot 或按 Hub 應用配置觸發,命令識別會自動剝掉羣聊前的發送者標籤。

回覆可按配置分段推送:思考過程、工具調用與結果、正文(詳見 README 中 showReasoning / showTools)。

安裝與啓用

推薦從 GitHub 安裝(Web profile):

dsh plugin --profile web add dsh-openilink-channel@github:gitMFQ/dsh-oih

或在 Harness Web GUI 的「設置 → 插件」裏安裝,包名填 dsh-openilink-channel@github:gitMFQ/dsh-oih。

指定版本或提交:

dsh plugin --profile web add dsh-openilink-channel@github:gitMFQ/dsh-oih#v0.1.0
dsh plugin --profile web add dsh-openilink-channel@github:gitMFQ/dsh-oih#<commit>

本地開發可在克隆倉庫後於倉庫根目錄執行 dsh plugin --profile web add .(package.json 在根目錄)。安裝後插件即激活,配置行 id 爲 im-openilink。

配置

取得憑據

  1. 登錄 OpeniLink Hub。
  2. 進入 Bot 詳情頁 → 應用市場 → 安裝 OpenClaw(或任意聲明瞭 message:read + message:write 的應用)。
  3. 在安裝詳情頁複製 Hub URL 與 App Token。

填寫憑據

方式 A(推薦):Web GUI → 設置 → OpeniLink 微信,填寫 Hub 地址與 App Token 後保存。保存前會先探測 /bot/v1/info,成功後寫入 profile 的 cordis.patch.yml 並熱重載插件。

方式 B:環境變量

export OPENILINK_HUB_URL="https://hub.openilink.com"
export OPENILINK_APP_TOKEN="app_你的token"

方式 C:編輯 profile 的 cordis.patch.yml:

- id: im-openilink
  config:
    hubUrl: https://hub.openilink.com
    appToken: app_你的token

常用配置項包括 hubUrl、appToken、agentPreset、provider / model、textChunkLimit(默認 4000)、sessionIdleMinutes(默認 30)、access.mode / access.allow、media.enabled / media.maxMB、showReasoning、showTools 等;完整表格見倉庫 README。

典型用法

配置完成後,在微信裏直接給 Bot 發消息即可。設置頁「OpeniLink 微信」可查看連接狀態、Bot 名稱、活躍會話與最近錯誤,並調整模型與「發送思考過程」「發送工具使用」開關。

實現上插件經 /bot/v1/ws?token=... 連接 Hub,30s ping 心跳,斷線指數退避重連;同一 peer 串行處理消息;閒置會話按 sessionIdleMinutes 回收。

適用場景與注意

適合已在 OpeniLink Hub 上配置微信 Bot、希望用 DSH Agent(工具、模型路由、Cordis 生態)承接微信對話的場景。你需要自行維護 Hub 與 App Token,並理解 IM Connect 與審批、ask_user 的交互限制。

DSH 社區插件目錄在 SkillHub 等獨立站點維護,與 DeepSeek / 幻方無官方從屬關係;安裝第三方插件前請覈對源碼與許可證。當前包版本爲 0.1.0(見 package.json),許可證 MIT。

結尾

dsh-openilink-channel 把 OpeniLink Hub 微信通道接到 DSH Agent 會話,覆蓋私聊與羣聊、媒體與模型切換,並可與 IM Connect 的微信頻道分組對齊。目錄頁:https://www.skillhub.cn/plugins/gitMFQ/dsh-oih;源碼與文檔:https://github.com/gitMFQ/dsh-oih。

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

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

小夜