dsh-qq:把 QQ(NapCat / OneBot11)接到 DeepSeek Harness

前言

在 DeepSeek Harness(DSH)裏做智能體,常見做法是瀏覽器或桌面會話裏對話。若你希望同一套 Harness 在手機上用 QQ 私聊也能收發——文字、圖片、表情、語音,並且回覆只回到發起那一側(QQ 來的回 QQ,桌面來的留在桌面),就需要一條從 QQ 生態到 DSH 的橋,而不是再搭一套 IM 機器人框架或消息隊列。

dsh-qq 由維護者 wyinthe 發佈,在 SkillHub 社區目錄中歸類爲客戶端插件。它只做橋接:通過 NapCat 的 OneBot11 WebSocket 把私聊進出接到指定 DSH 會話。本文介紹其定位、能力與安裝用法;事實以倉庫 README 與 package.json 爲準。

這是什麼

一句話:它是橋,不是機器人。

數據路徑可以理解爲:

QQ 客戶端 ──> NapCat(WSL) ──OneBot11 WS──> dsh-qq ──> DSH 會話
                                              │
                            回話按來源分流 ◀───┘
                     (QQ 發起的纔回 QQ;桌面發起的留在桌面)

倉庫爲純 ESM、零依賴的單文件實現(index.js),當前版本 0.2.1,許可證 MIT,要求 Node.js >= 20,對 DSH 的 peer 依賴爲 @deepseek-ai/dsh >= 0.2.0。維護者自述在單機單人自用場景下已驗證文字、圖片、表情、語音(收)通路;發語音條尚未實現。

DSH 生態理念是「一切皆插件」;SkillHub 目錄頁 與 GitHub 倉庫爲社區資源,與 DeepSeek / 幻方無官方從屬關係,不宜當作官方應用商店條目理解。

核心功能

下面按「有什麼 / 沒有什麼」說明,避免預期錯位。

私聊與接入

  • 支持 OneBot11 / NapCat 下的私聊雙向文字。
  • 一個號只接白名單內用戶的私聊:owners 不填則誰都不接。
  • 會話綁定:可接到指定會話,或首次使用時自建。
  • 回話跟着來源走:僅 QQ 發起的那一輪纔回 QQ,避免桌面說一句、手機跟着震。

媒體與標記

方向 能力
收圖 落盤後把路徑交給 AI,由模型側 read_image 打開;插件不做識別
收表情 / 商城表情包 記成文本標記
發圖 / 發表情 / 發表情包 通過輸出標記(見下文「典型用法」)
收語音 需自備轉寫腳本(earScript),DSH 側看到轉寫與語氣維度文本
發語音條 未做;文檔指向 ffmpeg + silk-wasm 外掛方案

明確不做(README 表格)

  • 羣聊投遞:groupMessages 默認關閉,僅記日誌。
  • 自帶 ASR、表情圖庫、記憶與上下文壓縮管理。

設計上的第三條原則:能力靠標記不靠魔法——要發圖就寫 [[img:路徑]],不猜測用戶意圖。

安裝與啓用

安裝前請自行閱讀 GitHub 源碼 與許可證;插件在當前 dsh 進程權限下運行,白名單與 NapCat token 等配置涉及賬號安全,不宜在未審代碼的情況下直接用於生產賬號。

1、準備 NapCat

在 NapCat 中開啓 WebSocket 服務端(細節見倉庫 docs/配置.md),記下端口與 token。

2、安裝插件

官方 README 給出的命令爲(使用 Git 倉庫直裝,--profile web):

dsh plugin --profile web add https://github.com/wyinthe/dsh-qq

3、配置四類信息

地址、token、白名單(owners)、工作目錄等,可參考帶註釋樣例 examples/cordis.patch.yml,並配合 cordis.patch.yml 掛載聲明使用。

4、重啓 DSH 並驗證

重啓後,在 QQ 上向該號發一句私聊;預期爲 QQ 側收到回覆,且桌面會話不會重複收到同一條迴流。

典型用法

QQ 進來的內容在 DSH 里長什麼樣

你發 DSH 看到
文字 原文
語音 [語音] 轉寫文本 + [語氣] 等(需配 earScript)
圖片 [用戶發了圖片,已存到本機,可以直接用 read_image 打開:<路徑>]
表情 [QQ表情 id=178]
表情包 [表情包「名字」emoji_id=… package_id=…]

AI 輸出如何發到 QQ

寫入內容 發出結果
[[img:D:/pics/a.png]] 圖片(自動轉 base64://,適配 NapCat 在 WSL 下無法直接讀 Windows 盤符的情況)
[[face:178]] QQ 表情
[[mface:emoji_id/package_id/名字]] 商城表情包
純文字 文字(超過 maxChars 自動切段)

收發標記、行爲細節與已知限制見倉庫 docs/用法.md;連接、白名單、語音轉寫約定見 docs/配置.md;按症狀排查見 docs/排錯.md。

適用場景與注意

適合誰

  • 已在用 DSH,且願意自建 NapCat(常見 WSL 部署)與 OneBot11 WS 的開發者。
  • 需要單人私聊、來源分流,並願意用顯式標記控制發圖發情的場景。
  • 接受語音轉寫、發語音條需自行擴展(腳本或 ffmpeg 方案),而非插件內置。

使用注意

  • 默認不接羣聊;多人羣、多賬號需在上層擴展,README 寫明當前優先私聊是因爲可獨立跑通。
  • 圖片理解依賴模型與 read_image,不是插件內置能力。
  • 社區目錄顯示該倉庫 GitHub 1 stars(截至目錄收錄信息);版本與能力以 CHANGELOG 與 README「狀態」一節爲準。

結尾

dsh-qq 把 QQ 私聊通過 NapCat / OneBot11 接到 DeepSeek Harness:白名單、會話綁定、按來源迴流,並用 [[img:]] / [[face:]] 等標記約束出站能力。若你要在 DSH 上接 QQ 而非另起一套機器人框架,可從 README 的 60 秒步驟與 examples/cordis.patch.yml 動手驗證。

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

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

小夜