用 dsh-focus-chat 給 DeepSeek Harness 網頁會話加上聚焦閱讀視圖

前言

用 DeepSeek Harness(dsh)跑編碼智能體時,一個回合往往很長。模型會思考、注入上下文、跑命令、改文件、列目錄,界面上逐條刷出工具卡片。過程完整,但回過頭只想確認「這一輪到底改了什麼、產出是什麼」時,就要在長記錄裏往上翻。

DeepSeek Harness 的設計是「一切皆插件」:模型、工具、技能、會話、UI 都可以在配置層替換,不必改運行時源碼。社區目錄 deepseek-harness-plugin.com 是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,用來發現這類擴展。dsh-focus-chat 就是其中一款會話與消息插件:它不改聊天視圖本身,而是在 Web GUI 里加一個「聚焦會話」標籤頁,把一個助手回合收成可展開的摘要行。

本文按插件目錄頁、GitHub 倉庫 README / package.json,以及 npm 包頁覈對後整理:它是什麼、能摺疊哪些信息、怎麼安裝,以及有哪些明確做不到的事。

這是什麼

dsh-focus-chat 是給 dsh Web GUI 用的閱讀插件,維護者是 dingyi222666。npm 包名是 @dingyi222666/dsh-focus-chat,當前版本 0.1.5(2026-08-16 發佈)。package.json 聲明許可證爲 BSD-3-Clause;倉庫裏目前沒有單獨的 LICENSE 文件,GitHub 也未自動識別許可證,安裝前需要自己打開源碼覈對。

它解決的問題很具體:默認聊天視圖適合盯過程,不適合掃結果。插件在對話裏增加一個 Focus chat / 聚焦對話 標籤頁,用類似 Claude Code 的方式把連續工具輪次折成摘要。倉庫 README 寫明:視圖是對已記錄會話快照的純客戶端派生,不會向模型發請求,也不組裝、不發送 provider 請求,因此沒有 KV Cache 影響。

package.jsondsh.client.platformweb,它掛在網頁界面,不是終端 TUI 插件。GitHub 倉庫帶 dshdsh-plugin topic,主要語言是 TypeScript。截至 2026-08-17,GitHub 顯示 20 星;社區目錄頁收錄時寫的是 16 星,以倉庫頁面爲準。

核心功能

把一個回合收成摘要行

開啓聚焦視圖後,不再逐步盯每一張工具卡片。README 給出的摘要行示例是:

思考了 36 秒,載入了 3 項上下文,運行了 2 個命令,編輯了 8 次,讀取了 17 個文件,列出了 18 個目錄

整回合還能再收成一條 工作了 X 分 Y 秒。點任意一行會展開完整細節:工具卡片、思考、上下文注入、產物、複製 / fork 操作,畫法和普通聊天行一致。中途插話會把摺疊按段切開,每段帶自己的時長;被停止的回合顯示 用戶 X 後停止,而不是「工作了」。

後臺任務的結算通知(例如 tool-jobs 注入的 bash pnpm install [status: completed] 這類 notice)會歸進摘要裏的 後臺任務 N 個,而不是原樣寫成一條「注入了 …」。展開該行仍能看到完整通知正文。

文件操作(編輯 / 讀寫)的失敗不會寫進摘要行——edited N files 讀的是結果;只有命令和其他工具才帶失敗標註。

想看「剛纔發生了什麼」就切到聚焦標籤;想看完整過程,切回默認聊天視圖即可。

爲什麼是獨立標籤頁,而不是改聊天視圖

README 專門解釋了這一點:聊天視圖內部對第三方插件是封閉的,這個插件也刻意不碰 dsh 源碼。

  • 聊天行通過 conversation.chat.nodetool.call.toolviewconversation.chat.turnTail 這類鍵控槽位渲染。槽位由聊天入口自己聲明,加載時拒絕第二次聲明。插件既不能往對話流裏插行,也不能聲明聊天自己的槽位。
  • 跨 bundle 邊界導入另一個插件包的值會被 bundle purity 門禁攔住,所以借不到聊天視圖的組件,每一行只能用共享原語和公開快照自己畫。
  • 第三方插件唯一合法的插入點是 conversation.view 列表槽(整個消息界面)。因此插件自帶一套完整視圖,而不是去改默認聊天的顯示方式。

想讓默認聊天視圖本身換行爲,需要改聊天包;這正是該插件要避開的。

明確缺什麼

聚焦對話是忠實的閱讀面,不是第二個聊天視圖。README 列出的缺口包括:

  • 沒有 Inspect / 詳情面板深鏈。工具卡片內容一樣,只是沒有「跳去詳情」按鈕。
  • 其他插件給聊天視圖加的工具卡片擴展,在聚焦視圖裏不渲染,這裏用內置卡片。
  • 摺疊按連續工具輪次。兩段之間只要有可見內容(回覆、命令、插話),就會保持分開。
  • 行內文件鏈接依賴可選的文件提及服務,開關和聊天視圖相同。

安裝與啓用

社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端裏運行:

dsh plugin add github:dingyi222666/dsh-focus-chat

需要可復現安裝時,按目錄頁說明固定 commit 哈希:

dsh plugin add github:dingyi222666/dsh-focus-chat#commit

commit 換成倉庫裏的實際提交哈希。

插件作者 README 推薦從 npm 裝到 web profile(需要 dsh >= 0.1.0-rc.6),裝完重啓網頁界面:

dsh plugin --profile web add @dingyi222666/dsh-focus-chat
dsh web

然後打開任意對話裏的「聚焦對話」標籤頁。dsh plugin 相當於給 web profile 加依賴。這是 bundle 型插件,完整包名需要出現在 profile 的 dsh.profile.bundles 列表裏纔會加載;較新的 dsh 會自動寫入,舊構建如果沒加上,需要手動補。bundle patch 在下次啓動時生效。

用倉庫源碼啓動 CLI 時,README 要求直接調 bin,例如:

node --import tsx/esm apps/cli/src/bin.ts ...

目錄頁也提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前檢查源碼倉庫和許可證。

典型用法

  1. 確認已經在用 dsh 的 Web GUI(dsh webnpx @deepseek-ai/dsh web),而不是隻開終端界面。
  2. 按上一節把插件裝進 web profile,重啓 dsh web
  3. 打開任意進行中或已結束的對話,切到 聚焦對話 / Focus chat 標籤。
  4. 先看摘要行:思考耗時、上下文條數、命令次數、文件讀寫次數。需要細節時點開對應行,查看工具卡片和產物。
  5. 智能體跑着時如果中途插話,注意摺疊會按段切開,每段時長分開統計;主動停止時看 用戶 X 後停止
  6. 要覈對完整工具軌跡,切回默認聊天視圖。兩套視圖讀的是同一份會話快照,聚焦標籤只改變閱讀方式。

適用場景與注意事項

比較適合這些情況:

  • 回合裏工具調用很多,只想先看改了哪些文件、跑了哪些命令。
  • 需要向別人快速交代「這一輪做了什麼」,不想把完整工具日誌貼出去。
  • 關心網頁界面的閱讀體驗,並且接受「另開標籤、不改默認聊天」。

需要注意:

  • 只覆蓋 Web GUI。 package.json 標明 platform: "web",終端 TUI 用不了這個標籤頁。
  • dsh 版本。 README 要求 dsh >= 0.1.0-rc.6;開發者預覽階段 API 仍在變,升級 dsh 後如果標籤不出現,先覈對 dsh.profile.bundles 裏是否有完整包名 @dingyi222666/dsh-focus-chat
  • 不是第二個聊天。 不能在聚焦視圖裏補齊 Inspect 深鏈,也不能看到其他插件掛到聊天視圖上的自定義工具卡片。
  • 權限與來源。 插件以當前 dsh 進程權限運行。社區目錄不是官方應用商店,安裝前應閱讀 GitHub 源碼和許可證;生產環境建議固定 commit,避免後續 push 悄悄改掉裝進去的代碼。
  • 許可證文件。package.json / npm 上的 BSD-3-Clause 聲明爲準,同時自行確認倉庫裏是否後續補上了 LICENSE 文件。

小結

dsh-focus-chat 做的事情很剋制:不改 dsh 源碼,不往默認聊天裏塞行,只在 Web GUI 的 conversation.view 槽上提供一套可摺疊的閱讀面。對「過程太長、只想看最終產出」的網頁用戶,切到聚焦標籤再點開摘要,比在默認視圖裏反覆上翻要直接。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-focus-chat/

GitHub:https://github.com/dingyi222666/dsh-focus-chat

npm:https://www.npmjs.com/package/@dingyi222666/dsh-focus-chat

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜