前言¶
DeepSeek Harness(dsh)把智能體能力封裝成可插拔的 Cordis 插件,但多數示例仍圍繞終端或 Web 界面。如果你希望同事、用戶直接在 QQ 裏與 Agent 對話,需要自己處理 QQ Bot API、WebSocket 長連接、消息入站出站,以及每個私聊/羣聊的會話隔離。
下面介紹 @tencent-connect/dsh-qqbot:由 tencent-connect 維護的 dsh 客戶端插件,把 QQ 私聊與羣聊接入 dsh 的 agent loop,憑據可通過掃碼綁定,也支持環境變量或配置文件傳入。
這是什麼¶
@tencent-connect/dsh-qqbot 是面向 deepseek-harness 的 QQ Bot IM 通道插件。消息路徑如下:
QQ 用戶 → QQ WebSocket → dsh-im-qqbot → ctx.agents → dsh agent loop → LLM
↑ │
└── session/event ──────────┘
(assistant reply → QQ sendMarkdown)
插件遵循 dsh「Plugins, not loop changes」原則:純 Cordis 插件,通過 inject = ['agents'] 聲明依賴,不直接改動 agent loop。當前版本 0.4.0,許可證 MIT,要求 Node.js >= 18。GitHub 倉庫約 74 stars。
核心功能¶
消息與會話¶
- 私聊與羣聊均可觸發 Agent;羣聊默認需 @bot(
requireMention,默認true)。 - 每個 QQ 私聊用戶或羣聊對應獨立 Agent,會話 key 爲
qqbot:${appId}:${scope}:${peerId},經 SHA-256 派生 SessionId,進程重啓後可恢復。 - 閒置超時(默認 30 分鐘)自動 dispose Agent,避免內存泄漏。
- 回覆以 Markdown 格式發送,支持代碼塊/表格感知的文本切分(單條上限默認 4500 字符)。
模型與預設¶
- 默認 LLM 提供商
deepseek-official,模型deepseek-chat;可通過配置或/model命令切換。 - 支持掛載
agent-presets預設(工具集、prompt 等),/preset查看或切換,新會話生效。 - 私聊、羣聊可分別設置額外 system prompt(
directPrompt、groupPrompt)。
內置斜槓命令¶
| 命令 | 說明 |
|---|---|
/new(別名 /reset /clear) |
開始新會話 |
/compact |
壓縮會話歷史 |
/model |
查看或切換模型 |
/preset |
查看或切換 agent preset |
/stop |
中止當前生成 |
/bot-ping |
連通性測試 |
/bot-version |
查看版本信息 |
/bot-status |
查看當前會話狀態 |
/bot-help |
查看所有指令 |
問答互動¶
支持 dsh 的 ask_user_question:單選生成內聯按鈕(點一個其餘變灰),多選回覆編號,逐題推進;單題超時默認 5 分鐘(askTimeoutMs)。
安裝與啓用¶
方式一:npm 安裝(推薦)¶
先把插件裝進獨立 profile,再啓動 dsh:
# 安裝到 profile
npx @deepseek-ai/dsh plugin --profile qqbot add @tencent-connect/dsh-qqbot
# 啓動
npx @deepseek-ai/dsh --profile qqbot
首次啓動時,若憑據未配置,插件會進入掃碼引導:終端輸出二維碼,用手機 QQ 掃碼綁定,憑據自動保存到 profile,後續啓動無需再次掃碼。建議插件版本在 0.4.0 以上,支持點擊鏈接在瀏覽器打開二維碼,避免部分終端渲染錯位。
方式二:本地路徑安裝¶
適合需要改源碼的場景:
cd /path/to/dsh-qqbot
pnpm install && pnpm build
npx @deepseek-ai/dsh plugin --profile qqbot add /path/to/dsh-qqbot
export QQBOT_APPID="你的AppID" QQBOT_SECRET="你的AppSecret"
npx @deepseek-ai/dsh --profile qqbot
方式三:–patch 開發模式¶
export QQBOT_APPID="你的AppID" QQBOT_SECRET="你的AppSecret"
npx @deepseek-ai/dsh web --patch /path/to/dsh-qqbot/cordis.dev.yml
配置項¶
| 配置 | 類型 | 默認值 | 說明 |
|---|---|---|---|
appId |
string | 必填 | QQ Bot AppID,或通過 QQBOT_APPID 環境變量 |
appSecret |
string | 必填 | QQ Bot AppSecret,或通過 QQBOT_SECRET 環境變量 |
provider |
string | deepseek-official |
LLM 提供商名稱 |
model |
string | deepseek-chat |
模型名稱 |
preset |
string | - | Agent preset id |
cwd |
string | process.cwd() |
Agent 工作目錄 |
requireMention |
boolean | true |
羣聊是否需 @bot 才觸發 |
groupPrompt |
string | - | 羣聊額外 system prompt |
directPrompt |
string | - | 私聊額外 system prompt |
textChunkLimit |
number | 4500 |
單條消息最大字符數 |
sessionIdleTimeout |
number | 1800000 |
會話閒置超時(ms),默認 30 分鐘 |
askTimeoutMs |
number | 300000 |
待答問題超時(ms),默認 5 分鐘 |
debug |
boolean | false |
調試模式 |
AppID 與 AppSecret 需在 QQ 開放平臺 創建 Bot 後獲取,插件對接 QQ Bot API v2。
典型用法¶
- 按方式一安裝並啓動,完成掃碼綁定。
- 在 QQ 私聊或羣裏 @bot 發送問題,Agent 以 Markdown 回覆。
- 長對話用
/compact壓縮歷史;切換模型用/model;重置上下文用/new。 - 本地開發時,
pnpm dev監聽構建,配合--patch調試:
pnpm install
pnpm build
export QQBOT_APPID="xxx" QQBOT_SECRET="xxx"
npx @deepseek-ai/dsh web --patch /path/to/dsh-qqbot/cordis.dev.yml
適用場景與注意¶
適合誰
- 已在 dsh 上跑 Agent,希望把同一套能力暴露到 QQ 的團隊或個人。
- 需要羣聊 @觸發、私聊直連、per-peer 模型偏好等 IM 場景特化的部署。
使用前注意
- 插件以當前 dsh 進程的權限運行,Agent 能訪問的工作目錄、工具、網絡範圍與 dsh 實例一致。安裝前請閱讀 源碼 與 MIT 許可證,確認符合你的安全策略。
- 羣聊默認需 @bot,避免羣內每條消息都觸發 LLM 調用。
- 社區目錄 SkillHub 是獨立站點,與 DeepSeek / 幻方無官方從屬關係;插件信息以 GitHub 倉庫爲準。
結尾¶
@tencent-connect/dsh-qqbot 把 QQ WebSocket 消息流接到 dsh 的 agent loop,掃碼或環境變量完成憑據配置,私聊與羣聊各自維護獨立會話。若你正在 dsh 生態裏找 QQ 接入方案,可以從 npm 安裝命令起步,按需調整模型、preset 與羣聊 prompt。
- 目錄頁:https://www.skillhub.cn/plugins/tencent-connect/dsh-qqbot
- GitHub:https://github.com/tencent-connect/dsh-qqbot