前言¶
DeepSeek Harness 是一個本地運行的智能體開發與調試工具。在使用過程中,開發者常需要在 Harness 的原生工作區、會話列表,與 DeepSeek Chat 的網頁版大模型之間來回切換。頻繁手動跳轉會打斷工作流。
下面介紹 mryouyouHK/youyou-deepseek-chat-switch。這是一個 DSH 插件,在 Harness 左側側邊欄新增模式切換,可在「HARNESS」與「Chat」之間快速切換,同時支持從 Harness 會話直接向 DeepSeek Chat 發送內容。
是什麼¶
該插件由 mryouyouHK 維護,歸類爲客戶端插件。GitHub 倉庫地址爲 https://github.com/mryouyouHK/youyou-deepseek-chat-switch。插件名稱爲 youyou-deepseek-chat-switch,版本 1.0.0,MIT 許可證。
核心價值是在 Harness 界面內集成 DeepSeek Chat 的訪問入口,減少瀏覽器標籤頁的切換,保持上下文連續性。
會話目錄模式:HARNESS / Chat¶
左側會話目錄(原生會話列表)頂部新增一組模式切換 Tab,固定在會話列表上方。
| Tab | 內容 |
|---|---|
| HARNESS(默認) | 當前 app 原生會話內容(Workspace / 會話樹) |
| Chat | 本插件 deepseek-chat-switch:history 裏記錄的 DeepSeek Chat 瀏覽歷史:今天 / 昨天 / 更早分組 |
- 切到 Chat 時原生列表只是被隱藏(
display:none),組件不卸載,切回 HARNESS 會立即恢復滾動位置與展開狀態。 - 點擊 DeepSeek Chat 圖標打開插件時,會話目錄會自動切到 Chat(寫入
deepseek-chat-switch:directory-mode)。 - Chat 列表頭部右側有「新建」與「更多」兩個圖標按鈕。新建在插件面板打開 DeepSeek Chat 的新對話;更多展開菜單,包含「清空歷史」(無歷史時禁用)。
- 每行標題前顯示來源圖標:DeepSeek / 元寶 / 豆包 用各自官方 logo;其他站點則用頁面標題的第一個字做成字母徽標。
- 頭部篩選按鈕可按模型過濾:全部 / DeepSeek / 元寶 / 豆包 / 文心一言 / 其他。選擇保存在
deepseek-chat-switch:chat-filter。 - 只顯示真實對話:三個支持站點都必須帶對話 id 纔會顯示。DeepSeek 需
/a/chat/s/<id>(或chat_id/session_id參數);豆包需/chat/<id>;元寶需/chat/<id>(/chat/naQivTmsDa是默認空會話入口);文心一言的 URL 不含會話 id,因此不過濾。 - 標題超寬時單行省略號截斷。鼠標懸浮該行時按約 30px/s 的節奏橫向滾動到標題末尾,滾動過程中用左右漸變遮罩淡出。
- 懸浮任一行在右側顯示「更多」與「置頂」兩個圖標按鈕。置頂按鈕在鼠標停留約 500ms 後在按鈕下方右對齊彈出浮層。
- 更多菜單與行懸浮「更多」都複用 Harness 原生會話行「更多」浮層的樣式。
- 菜單包含置頂 / 取消置頂、重命名、複製對話鏈接、移除記錄。重命名使用行內輸入框,保存到
deepseek-chat-switch:history-titles。 - 從 Chat 列表點擊標題打開頁面時,只同步選中態,不刷新該條目的記錄時間與排序。
- 當前頁面選中態 / 懸停態:主面板裏 DeepSeek 頁面正在顯示的地址會同步到側欄列表,對應條目帶
aria-current="true"。 - 側欄收起時整組 Tab 隱藏。選擇寫入
deepseek-chat-switch:directory-mode,默認harness。
新會話頁模式:HARNESS / Chat¶
點擊左側「新會話」後,Hero 標題「探索未至之境」下方新增一組模式切換 Tab,默認 HARNESS。
切到 Chat 後只保留輸入框,隱藏工作區選擇、代理模式、權限/模型等原生控件。Tab 與輸入框之間保留 20px 間距。
- 對話模型:Chat 輸入框右下角顯示當前模型及其品牌 logo。默認 DeepSeek。點擊彈出 Harness 菜單樣式的列表,可切換 DeepSeek / 元寶 / 豆包 / 文心一言。選擇寫入
deepseek-chat-switch:chat-model。 - 記住上次選擇:切到哪個 Tab 會寫入
deepseek-chat-switch:hero-mode。從自動化任務頁的「新建」進入新會話時,插件會先把hero-mode重置爲 HARNESS。 - 點擊發送:文字寫入所選對話站點的輸入框,圖片/文件寫入該頁面的附件區。填入完成後先倒計時 5 秒,再自動點擊網頁的發送按鈕。浮層頭部顯示「N 秒後點擊發送」的計時。
- DeepSeek 的發送按鈕是無文字的藍色圓形圖標,插件會先按
aria-label/title匹配「發送 / send」,匹配不到時按特徵識別。 - 內嵌頁不在所選站點時先導航到目標地址,加載完成後再重試。本輪發送浮層可重試,展示本次文字、附件和發送狀態。附件可點擊查看,倒計時結束自動關閉。
- 發送計時:填入完成後顯示「N 秒後點擊發送」,5 秒到點自動點擊發送按鈕,再過 3 秒派發 Enter 作爲補充發送。
- 浮層 UI 複用 Harness 設計 token,保持與宿主一致的深淺色主題。
在其他會話裏「問 deepseek」¶
Harness 會話頭部註冊了一個「問 deepseek」按鈕,席位在 conversation.session.header.actions(標題行右端)。
按鈕左側複用 Harness 官方的鯨魚標誌,並設置 size: 14。
下拉菜單有兩個選項:
- 默認不帶上下文:打開右側半屏並新開一個 DeepSeek 對話,不填任何內容。
- 帶上下文(助手最後回覆):打開右側半屏,把 Harness 當前會話最後一條助手回覆填入 DeepSeek 對話框。
取法:助手回覆是唯一帶 data-chat-group-part="response" 的流項,因此用 document.querySelectorAll('[data-chat-group-part="response"]') 取最後一個非空節點並讀其 innerText。超過 4000 字保留尾部,首行爲「以下是 Harness 對話中助手最後一條回覆:」。
已知限制:不能截圖;上下文來自已渲染的 DOM;內容讀取失敗時按鈕旁會提示「沒有可用的對話內容」。
半屏表面固定以 100% 縮放渲染,避免站點佈局被放大後錯位。腳本用 MutationObserver + requestAnimationFrame 節流跟隨 SPA 路由變化。
安裝與啓用¶
在 Harness 客戶端安裝命令爲:
dsh plugin add github:mryouyouHK/youyou-deepseek-chat-switch
安裝後插件會自動加載,無需額外配置。
典型用法¶
- 安裝插件後,在 Harness 左側會話目錄頂部會看到「HARNESS」與「Chat」兩個 Tab。
- 切到 Chat,即可查看並打開之前訪問過的 DeepSeek Chat 對話。
- 在新會話頁切換到 Chat 模式,選擇模型,輸入文字或附件,插件會自動填入對應站點的輸入框並觸發發送。
- 在任意會話頭部點擊「問 deepseek」按鈕,可選擇是否攜帶當前會話的助手最後回覆,在 DeepSeek Chat 中繼續對話。
適用場景與注意¶
適合需要在 Harness 中頻繁訪問 DeepSeek Chat、希望保持上下文連續性的開發者。
插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。已知限制:附件上傳與自動發送依賴 DeepSeek 站點的文件輸入/拖放與發送按鈕實現,站點改版可能失效;圖片/文件目前限制單個 10MB、最多 10 個。
結語¶
DeepSeek Chat Switch 在 Harness 與 DeepSeek Chat 之間提供了快速切換的入口,減少瀏覽器標籤頁切換,提升開發與調試效率。完整文檔與源碼可在以下鏈接查看:
- 目錄頁:https://www.skillhub.cn/plugins/mryouyouHK/youyou-deepseek-chat-switch
- GitHub:https://github.com/mryouyouHK/youyou-deepseek-chat-switch