前言¶
用 DeepSeek Harness(DSH)做智能體開發時,常要對照 DeepSeek、豆包、ChatGPT 等不同站點的回答或界面。系統瀏覽器多窗口切換、登錄態互相干擾,和 Harness 裏的會話、插件面板也不在同一塊工作區裏。社區插件 dsh-chat-embed(維護者 poluce,分類:客戶端)在 DSH 桌面版裏增加一個多標籤「聊天」面板:每個標籤對應一家服務的官方網頁,各自用桌面 webview 與獨立存儲分區登錄,不代發請求、不落庫聊天內容,只是把站點嵌進常駐界面。
這是什麼¶
dsh-chat-embed 的定位是:給 DSH 桌面端補一個「多服務 AI 聊天」的常駐 UI。左側導航有「聊天」入口,點開後中央主面板即爲聊天頁;也可以在任意會話標題欄點「⧉」,在右欄以 tab 形式打開同一套界面。左欄與右欄互斥,哪邊被點開就由哪邊承載,並回到上次激活的標籤與會話狀態。
內置七個服務標籤:DeepSeek、豆包、ChatGPT、MiniMax、Kimi、Gemini、Grok。插件無第三方運行時依賴,client.js 由 DSH 模塊加載器直接執行。npm 包當前版本爲 0.5.4,許可證 MIT。GitHub 倉庫:https://github.com/poluce/dsh-chat-embed;社區目錄頁:https://www.skillhub.cn/plugins/poluce/dsh-chat-embed(獨立社區站點,與 DeepSeek / 幻方無官方從屬關係)。
核心功能¶
下面能力均來自項目 README 與 package.json 說明。
| 能力 | 說明 |
|---|---|
| 多標籤 webview | 每個服務獨立 webview、獨立分區;切標籤只切換顯示,不卸載頁面,草稿與滾動位置保留 |
| 雙入口 | 左欄「聊天」→ 中央主面板;會話頭「⧉」/ 右欄啓動器 → 右欄 tab(keepMounted) |
| 席位互斥 | 兩處入口誰點開誰接管,切換時重建一次並恢復上次會話 |
| 設置與排序 | ⚙ 可逐個啓用/禁用服務(至少保留一個);標籤可橫向拖動排序,順序寫入 localStorage |
| 失敗隔離 | 單標籤失敗不影響其它;「重新加載」僅更換該標籤的租約 |
| 診斷與調試 | ⚙ 菜單內「標籤頁診斷」、可選「調試日誌」(默認關閉) |
| 非桌面降級 | 依賴 Electron webviewTag 與 window.dshDesktop.browser;Web GUI 下顯示說明卡片並可外開鏈接 |
插件 不代理 HTTP、不保存聊天記錄;登錄在各站點自己的 webview 內完成(驗證碼、掃碼、郵箱等)。同一次運行內登錄態有效;跨進程重啓後若未打可選殼補丁,需重新登錄。
環境要求¶
僅 DSH 桌面版可用。README 實測環境:
| 項 | 要求 |
|---|---|
| 桌面端 | @deepseek-ai/dsh-desktop 0.2.2-rc.1(Windows 10/11 實測) |
| DSH 引擎 | package.json 聲明 engines.dsh: >=0.1.0-rc.6;版本不符時插件管理器可拒絕安裝 |
| Node.js | >=22(僅開發/測試;插件運行時不依賴 Node) |
安裝與啓用¶
安裝前建議瀏覽倉庫源碼與 MIT 許可證;插件在 當前 DSH 進程權限下運行,webview 會加載第三方 HTTPS 頁面。
方式一:npm 包(推薦,已發佈 0.5.4)
在 DSH 會話中交給插件管理器:
plugin_manager { "action": "install_bundle", "target": "dsh-chat-embed" }
命令行等價寫法:
dsh plugin --profile desktop add dsh-chat-embed
安裝後刷新頁面;左側欄出現聊天氣泡圖標即表示成功。
方式二:Release 壓縮包或 git URL
dsh plugin --profile desktop add .\dsh-chat-embed-0.5.0.tgz
dsh plugin --profile desktop add git+https://github.com/poluce/dsh-chat-embed.git
方式三:本地 link 開發
dsh plugin --profile desktop add link:<本倉庫路徑>
卸載:
dsh plugin --profile desktop remove dsh-chat-embed
典型用法¶
- 打開 DSH 桌面版,左側點「聊天」→ 中央面板加載多標籤聊天頁;或點會話頭「⧉」在右欄打開。
- 點頂部標籤切換服務;標籤會記住上次激活項(
localStorage['dsh-chat-embed:active-tab'])。 - 需要隱藏某個服務:工具行 ⚙ → 關閉對應開關(至少保留一個)。
- 頁面白屏或卡住:工具行「重新加載」或「外開」到系統瀏覽器。
- 排查問題:⚙ →「標籤頁診斷…」→ 複製診斷信息(含 URL、分區、席位等)以便對照文檔或反饋 issue。
界面文案跟隨 DSH「設置 → 通用設置 → 語言」;插件註冊 zh / en 詞典,切換語言後立即生效,無需刷新。
配置與擴展¶
增刪內置服務:唯一清單在 client.js 的 PROVIDERS。追加條目示例:
{ id: 'gemini', label: 'Gemini', url: 'https://gemini.google.com/',
origin: 'https://gemini.google.com', workspace: 'dsh-chat-embed:gemini:v1' },
字段約束:id 小寫唯一;url 須爲 https://;workspace 爲殼存儲分區鍵,發佈後不可改(改動會導致退出登錄)。改完後執行 npm run check,重裝插件並刷新。
運行時本地狀態(均在瀏覽器 localStorage):
dsh-chat-embed:enabled:各服務啓用開關dsh-chat-embed:tab-order:標籤順序dsh-chat-embed:active-tab:上次激活標籤dsh-chat-embed:log:調試日誌(1開 /0關)dsh-chat-embed:persist:持久化檢測結果緩存
跨重啓保持登錄(可選):需使用隨包發佈的 tools/shell-patch/ 對桌面殼打補丁(persist: 固定分區 + cache:false)。未打補丁也可日常使用,只是重啓後需在各標籤內重新登錄。補丁步驟與風險見倉庫 README「已知限制」及 ⚙ 菜單「複製補丁說明」。
深入實現與升級複驗清單見倉庫 docs/architecture.md。
適用場景與注意¶
適合:已在用 DSH 桌面版、需要在同一工作區內快速切換多家 AI 聊天網頁、且接受「真實站點 + 獨立登錄」而非統一 API 聚合的開發者。
注意:
- 僅桌面 Electron 環境完整可用;純 Web GUI 無法使用 webview 全功能。
- Google 登錄等場景在部分環境下可能走不通,插件會退回說明卡片。
- 可選殼補丁會修改
app.asar,操作前需理解回滾方式(如restore-shell-patch.cmd)。 - 社區目錄與 GitHub 爲公開來源;安裝與登錄行爲由第三方站點策略決定,請自行評估賬號與數據安全。
結尾¶
dsh-chat-embed 用 DSH 插件機制把七家常見 AI 聊天站收進一個多標籤、雙入口的桌面面板,切換輕、分區隔離登錄態清晰,適合 Harness 場景下的對照使用。進一步瞭解安裝細節與架構契約,可看社區目錄頁與 GitHub README: