前言¶
DeepSeek Harness(DSH)目前以原生插件和「頻道」會話爲主,會話層面的個性化能力有限。當需要在某個 DSH 會話中模擬特定人格、使用專屬表情,或讓該會話在飛書羣中自主參與對話時,現有方案往往需要手動轉發消息或通過複雜腳本拼湊。
下面介紹 dsh-task-personas 插件,它爲 DSH 的飛書會話提供人格切換、表情庫和自主羣聊能力。插件維護者 chencujinlin,開源在 GitHub。
插件定位¶
dsh-task-personas 是一個 DSH 插件,爲單個會話添加「小鯨魚」或「傲嬌助手」兩種預設人格、表情庫以及主動聊天與自主參與羣聊的能力。每個會話可以單獨設置,普通任務和新會話默認關閉。插件依賴配套的 IM Connect 人格擴展版,以實現飛書消息接收與原生髮送。
核心功能¶
人格與表情¶
- 支持兩種預設人格:「小鯨魚」和「傲嬌助手」。在 DSH 頻道目標會話的輸入欄人格菜單中選擇。
- 表情庫:導入 PNG / JPG / WEBP / GIF,填寫名稱與適用場景後收藏;也可收藏當前飛書會話收到的圖片或原生表情。發佈倉庫不附帶任何個人表情收藏。
- 人格切換從下一次模型請求生效,聊天記錄保留。使用
/new或重置生成新會話時,不會繼承舊人格;子智能體也不繼承。
自主參與羣聊¶
- 在「羣機器人」裏查看其他機器人的 ID,選擇可互聊的對象;爲該羣開啓「自主參與羣聊」。
- 已開啓自主參與的羣:收到的真人消息與已選機器人消息都會進入模型判斷,沒有 5% 抽樣、每分鐘一次或每小時 12 次的羣消息喚醒限制。
- 連續消息先合併約 8 秒,再分批交給模型;每批最多 40 條未讀消息。會話忙時排隊,超過兩分鐘也不會丟棄實時未讀消息。
- 未讀隊列與最近 12 條已讀背景分開;消息進入宿主模型輸入事件後才確認已讀。模型可以調用
feishu_social_skip,安靜結束。 - 臺北時間 22:00–次日 08:00 不回應其他機器人,真人消息照常。夜間不補發機器人舊消息;機器人草稿發送前會再檢查時段。
- 旁觀文字每條最多 500 字;未 @ 的圖片、表情和文件提供佔位,不自動下載或聲稱已看圖。實時觀察和未讀隊列暫存在內存,退出應用後不自動補發。
- 可手動用「補讀接入後羣消息」讀取該會話首次接入後的可見歷史:最多查詢 200 條,最近 40 條作爲背景;模型不會逐條補答舊消息。
主動聊天¶
- 人格菜單的「主動聊天」控制冷場開聊:30~90 分鐘檢查、安靜至少 15 分鐘、基礎概率 30%。
- 圖片和文字保留髮送頻率保護,未確認的發送不自動重試。發送目標由當前會話綁定決定,模型不能任意指定收件人。
安裝與啓用¶
環境要求¶
- DeepSeek Harness 桌面端:已驗證版本
0.2.1-rc.2。 - Node.js:22 或更高版本(用於本地開發與驗證,不影響安裝包)。
桌面界面安裝¶
在 v0.7.0 Release 下載兩個安裝包:
michengai-dsh-im-connect-1.0.8-personas.6.tgz:配套 IM 插件。dsh-task-personas-0.7.0.tgz:人格插件。
在 DSH 的「插件 → 添加插件」中依次安裝這兩個本地安裝包並啓用,然後重啓 DSH。
已有 IM Connect 用戶使用第一個包替換上游包;如界面提示同名包已安裝,先通過原生插件管理器移除舊包,再安裝擴展版。
macOS 桌面端 CLI 安裝¶
先完全退出 DSH,再使用桌面端自帶的 CLI:
dsh_bin='/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh'
"$dsh_bin" plugin --profile desktop add --ignore-scripts \
'https://github.com/chencujinlin/dsh-task-personas/releases/download/v0.7.0/michengai-dsh-im-connect-1.0.8-personas.6.tgz' \
'https://github.com/chencujinlin/dsh-task-personas/releases/download/v0.7.0/dsh-task-personas-0.7.0.tgz'
Desktop 的 profile 與普通全局/Web CLI 獨立。安裝後打開桌面應用,在插件頁確認兩項均已啓用。發佈包包含預構建 JavaScript,無需修改應用包或編譯宿主;--ignore-scripts 跳過依賴安裝腳本,本項目不需要執行這些腳本。若界面安裝遇到 Ignored build scripts: protobufjs,使用上述命令,無需放寬全局腳本審批設置。
配置飛書憑據¶
在飛書應用後臺配置相應權限及 im.message.receive_v1 事件訂閱,發佈應用版本使變更生效:
- 基礎私聊、回覆、圖片:消息接收/發送及圖片上傳權限。
- 無需 @ 讀取羣消息:獲取羣組中所有消息,如
im:message.group_msg。 - 接收其他機器人羣消息:
im:message.group_msg.include_bot:read。 - 手動補讀歷史、讀取新版卡片正文:羣消息和消息讀取權限。
權限名稱可能隨平臺變化,以飛書接收消息文檔和歷史消息文檔爲準。僅有 @ 權限時,本地開關不能讓平臺推送未 @ 消息。
使用步驟¶
- 在 IM Connect 中配置飛書賬號並建立會話。
- 打開 DSH「頻道」中的目標會話,在輸入欄的人格菜單選擇「小鯨魚」或「傲嬌助手」。
- 想讓機器人蔘與羣聊時,爲該羣打開「自主參與羣聊」。
- 在「羣機器人」裏查看其他機器人的 ID,選擇可互聊的對象;在「表情庫」裏導入或收藏表情。
數據與隱私¶
插件默認在 DSH_HOME(未設置時爲 ~/.dsh)下保存:
task-personas/sessions.json:人格選擇。task-personas/social.json:聊天設置、已選機器人和時間狀態。task-personas/stickers/:個人表情素材及元數據。- IM Connect 自己的會話映射、憑據與日誌繼續由橋接管理。
這些運行數據不屬於源碼,也不應提交到 GitHub。聊天內容會交給你在 DSH 中選擇的模型服務處理;發送消息仍調用飛書接口。項目沒有額外的聊天收集服務,公開發布包不包含開發者的聊天、賬號、羣 ID、憑據、截圖或本機安裝狀態。管理接口沿用 DSH 登錄認證與跨站校驗。
開發與驗證¶
本地開發需要 Node.js 22 或更高版本:
npm ci
npm run check
npm run check:bridge
npm test
npm run test:privacy
測試使用合成數據和模擬飛書 SDK,不發送真實消息。宿主集成測試使用根目錄鎖定的 DSH SDK 開發依賴;可用 DSH_SDK_ROOT 指定另一套 SDK 根目錄。當前覆蓋 59 項行爲測試,包含全量讀取、106 條消息分批、忙時保留、@ 搶佔、夜間規則、鑑權和原子寫入失敗。
許可與來源¶
- 主插件:MIT,見 LICENSE。
- 人格卡來自 Derpyu520/qq-bridge,固定提交及校驗值見
roles/source.json;原文保存在roles/upstream/,活動卡片爲飛書適配版。 - 配套 IM 插件基於 MichengAI/dsh-im-connect 1.0.8,遵循 Apache-2.0;見配套說明和本地擴展記錄。
本項目未移植 QQ 拍一拍、QQ 收藏同步或羣友黑話後臺學習。它是獨立社區擴展,不是 DSH、飛書或上游 IM Connect 的官方發行版。
適用場景與注意¶
- 適合需要在某個 DSH 會話中模擬特定人格、使用專屬表情,或讓該會話在飛書羣中自主參與對話的場景。
- 插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證。
- 配套 IM Connect 人格擴展版會替換同名 IM Connect 包,不要並行啓動兩份橋接。
結尾¶
dsh-task-personas 通過人格、表情與自主羣聊能力,爲 DSH 的飛書會話提供了更貼近真實聊天的交互方式。如需瞭解更多細節或反饋問題,可訪問:
- 插件目錄頁:https://www.skillhub.cn/plugins/chencujinlin/dsh-task-personas
- GitHub 倉庫:https://github.com/chencujinlin/dsh-task-personas