前言¶
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。
配置¶
取得憑據¶
- 登錄 OpeniLink Hub。
- 進入 Bot 詳情頁 → 應用市場 → 安裝 OpenClaw(或任意聲明瞭
message:read+message:write的應用)。 - 在安裝詳情頁複製 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。