前言¶
DeepSeek Harness(DSH)把智能體能力拆成可組合的插件:模型路由、工具、渠道前端各自獨立。若團隊日常協作在奇虎 360 推推(Tuitui)裏完成,常見做法是在推推外另開終端或 Web 控制台跑 dsh,再把結果貼回 IM,上下文和審批流都割裂。
下面介紹社區插件 @eayonlee/dsh-tuitui-bot(維護者 EayonLee):把推推機器人做成 dsh 的渠道前端,在單聊、羣聊和團隊頻道帖子裏直接與 Harness Agent 對話,消息經中間件鏈歸一化後進入 dsh,回覆以流式文本、交互卡片和文件回傳等形式回到推推。
這是什麼¶
該插件基於 deepseek-harness,傳輸層使用推推官方 SDK @qihoo/tuitui-bot-sdk。數據路徑可概括爲:推推消息 → 歸一化 → 洋蔥式中間件鏈(訪問控制、歷史緩衝、觸發門控、清洗、限流、命令、併發串行等)→ dsh Agent;Agent 的文本、工具調用、審批、問答與交付物再映射爲推推消息、原生交互卡片或原地編輯的流式輸出。
在 SkillHub 社區目錄中分類爲「模型推理」;倉庫採用 MIT 許可證,當前 npm 包版本爲 0.1.9,要求 Node.js >= 20.3.0、dsh >= 0.2.0 且 < 0.3.0(README 徽章標註與 dsh 0.2.1-rc.5 配套使用)。
核心功能¶
以下能力均來自項目 README 的功能說明與配置定義。
三種會話形態:單聊、羣聊、團隊頻道帖子(含回帖串),各自維護獨立會話上下文。
流式與交互:開啓流式時,首條消息取得 msgid 後通過 modifyText 原地刷新,避免刷屏;不可流式時降級爲追加片段。審批與提問可使用推推交互卡片,點擊後 modifyInteractive 更新爲最終狀態。
富媒體與回傳:圖片、文件、語音、視頻可落地到本地媒體目錄供 Agent 讀取;可選視覺工具 tuitui_describe_image(需 vision.enabled)。Agent 可通過 tuitui_send_file 及 present 交付物把文件發回當前會話。
羣聊觸發與智能插話:羣聊默認 mentionPolicy 爲 smart——模型根據最近羣聊上下文判斷是否插話;也可設爲 require(僅 @)或 always(每條都回)。智能判定提示詞、間隔與歷史條數可在 dsh 設置頁編輯。
訪問控制:單聊、羣聊、帖子分別支持 open / allowlist / blocklist / disabled 四檔;黑白名單以域賬號、UID、羣 ID 或頻道 ID 等形式配置,allowlist 且名單爲空時爲 fail-closed。
命令與快捷指令:內置 /new、/compact、/model、/preset、/status、/stop 等,並同步到推推快捷指令面板;另有 /auth 做訪問控制自檢、/bot-ping 測延遲等。
推推原生能力(可選):通過 client.agent 上報模型與工具步驟供客戶端展示;私有化部署可覆蓋 apiBaseUrl / websocketBaseUrl。
安裝與啓用¶
先在推推機器人後臺創建機器人,取得 AppID 與 AppSecret,並準備 DeepSeek API Key。
安裝插件(profile 名 tuitui 爲 README 示例,可按需改名):
# 一鍵安裝腳本(自動建 profile、裝包、提示配置;npm 裝不上會自動回落 GitHub)
sh install.sh
# 從 npm 安裝(推薦)
dsh plugin --profile tuitui add @eayonlee/dsh-tuitui-bot
# 從 GitHub 安裝(npm 不可達時用,倉庫已提交構建產物 lib/,無需本地構建)
dsh plugin --profile tuitui add github:EayonLee/dsh-tuitui-bot
配置憑據並啓動:
export TUITUI_BOT_APPID="你的AppID"
export TUITUI_BOT_SECRET="你的AppSecret"
export DEEPSEEK_API_KEY="你的 DeepSeek Key"
dsh --profile tuitui
也可不先設環境變量:啓動後在 dsh 設置 → 推推機器人 填寫 appId / appSecret,插件會調用 property.info() 校驗並寫入 profile 的 cordis.patch.yml。
高級配置可在同一設置頁可視化編輯,或直接 patch cordis.patch.yml(注意 patch 爲整體替換 config,需寫全要保留的鍵)。團隊頻道默認 access.postMode 爲 disabled,使用前需在訪問控制中顯式開啓。
典型用法¶
經過上面的安裝步驟後,在推推內即可使用:
- 私聊機器人:直接發送消息即可開始對話。
- 羣聊:將機器人拉入羣。默認智能模式下未 @ 時由模型判定是否回覆;若只希望 @ 時響應,將
mentionPolicy設爲require(或與requireMention: true一致的行爲)。 - 團隊頻道:在頻道發帖並 @ 機器人,或回覆機器人所在帖子串。
會話管理可在聊天裏發送斜槓命令,例如 /new 清空上下文、/model 切換模型、/stop 中止當前生成。羣聊歷史條數、閒置回收、單聊/羣聊/帖子併發策略(queue、abort、merge、drop)等均在 README 配置表中說明,可按團隊習慣調整。
適用場景與注意¶
適合誰:已在用 DSH 做代碼與工具型 Agent、且協作主陣地是推推的團隊;需要在 IM 內完成審批卡片、文件互傳、羣聊「該不該接話」等場景時,該插件比外掛控制台更貼合工作流。
運行與安全:插件隨當前 dsh 進程權限運行,可讀寫配置的工作目錄(默認 ~/.dsh-tuitui/workspace)、下載媒體文件並代表機器人發消息。安裝前請閱讀 GitHub 倉庫 源碼與 MIT 許可證;生產環境建議收緊 access.*、按需開啓 sendFile.restrictPaths,並覈對 DEEPSEEK_API_KEY 與推推憑據的保管方式。
SkillHub 上的插件目錄由社區維護,與 DeepSeek / 幻方無官方從屬關係;星標與版本以倉庫與 npm 爲準,使用前自行確認與本地 dsh 版本的兼容性說明(package.json 中 dsh.compatibility 字段)。
結尾¶
dsh-tuitui-bot 把推推 IM 接進 DSH 插件體系:同一套 Agent、工具與 preset,在同事已有的聊天入口裏完成。目錄頁與源碼如下,安裝命令與配置以 README 爲準。