用 dsh-file-review 在 DeepSeek Harness Web 裏審查智能體剛改過的文件

前言

用 DeepSeek Harness(dsh)跑一輪任務,智能體常常會在工作區裏連續改好幾個文件。對話裏能看到工具調用,但要確認「這一輪到底改了什麼」,還得自己去翻工作區、對 diff,或者把變更丟到編輯器裏再看一遍。改得越多,漏看一行、誤覆蓋一段的概率就越高。

dsh-file-review 把這件事收回到 Web 界面裏:智能體剛改過的文件會出現在當前輪次末尾,點開就能看帶行號的 unified diff,必要時還能撤銷這一輪的文本修改。它是社區維護的界面增強插件,不是 DeepSeek 官方內置功能。本文按社區目錄頁、GitHub 倉庫、npm 包和源碼交叉覈對後整理:它是什麼、能做什麼、怎麼裝、怎麼用。

這是什麼

dsh-file-review 是一款面向 DeepSeek Harness Web 界面的文件審查插件,由 GitHub 用戶 left0ver 維護,採用 MIT 許可證,主要語言是 TypeScript。社區目錄把它歸在「界面增強」,一句話介紹是:審查智能體剛改過的文件,一眼看到 diff。

倉庫 README 寫得更具體:不必離開 DeepSeek Harness Web,就能審查 Agent 剛剛修改的每個文件。npm 上的說明則是:把 Harness 各輪產出的文件,放進帶行號的 unified diff 抽屜裏查看。當前 npm 版本是 0.3.1(2026-08-15 發佈)。GitHub 倉庫在本文覈對時顯示 16 個 star;社區目錄頁當時標註爲 11,以倉庫頁面爲準。

DeepSeek Harness 的官方定位是「一切皆插件」:模型、工具、會話、沙箱、UI 都做成可替換插件。dsh-file-review 掛在 Web 對話的輪次尾部,給「這一輪寫了哪些文件」補一塊審查面板。收錄它的 DeepSeek Harness 插件庫 是獨立的社區站點,與 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。

它解決的問題很具體:

  • 智能體這一輪創建或修改了哪些文件
  • 每個文件相對改動前差在哪幾行
  • 改錯了,能不能把這一輪的文本修改撤回去

核心功能

倉庫 README 列出兩項能力,源碼與界面文案可以對上。

1. 當前輪次的產出文件列表和 diff 面板

插件會監聽本輪成功的文件變更,而不是去讀模型收尾那句話裏有沒有提到文件名。源碼裏的判定依據是工具結果的展示形態:diff 卡片,或者 kindedit 的通用卡片(例如 str_replace_editor 的插入)。只讀、刪除、失敗的調用不會進入列表——讀文件不會「產出」文件,刪除後也沒有可打開的對象。

同一輪裏先寫後改的路徑只保留一條,按首次出現的順序排列。對話輪次末尾會出現「已編輯文件」卡片,可以點某個文件審查,也可以審查全部產出文件。點開後是一塊可拖動縮放的審查面板(雙擊恢復默認大小),內容是帶舊/新行號的 unified diff:新增行、刪除行、上下文行分開顯示,未改動的大段可以摺疊。面板上還能看到「新增 / 刪除行數」、複製差異、在編輯器中打開當前文件。

宿主側還會往系統提示里加一段說明:模型成功創建或修改文件後,應在最終回覆裏用 Markdown 行內代碼寫出確切路徑(或本輪內唯一的文件名)。這樣收尾文字裏的文件名也可以點開。兩個文件如果 basename 相同,行內代碼不會亂猜,避免點錯文件。

2. 撤銷 / 重新應用這一輪的文本修改

審查面板提供「撤銷」和「重新應用」。撤銷針對的是當前輪次裏已經落到磁盤上的文本 hunk,不是整份 Git 歷史,也不是跨輪次的工作區快照。

宿主服務會在智能體空閒時做維護寫入(agent.runMaintenance),並且有幾條硬限制,都寫在源碼裏:

  • 路徑必須落在當前會話工作區內,解析後也不能越出工作區
  • 不支持符號鏈接,只處理普通文件
  • 文件必須是合法 UTF-8 文本;二進制會直接拒絕
  • 必須有完整、可雙向還原的 diff;對不上、同時匹配撤銷和重做兩個方向、寫入過程中文件被外部改過,都會標成衝突或 unsupported,而不會強行覆蓋

某一文件無法安全還原時,界面會提示「本次更改中沒有可安全還原的文件」,並跳過這部分,而不是假裝全部成功。

安裝與啓用

目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行即可:

dsh plugin add github:left0ver/dsh-file-review

這是 Web 專用插件。作者 README 要求顯式指定 web profile,並同時提供 npm 包名安裝:

dsh plugin --profile web add dsh-file-review

從 GitHub 安裝的等價寫法:

dsh plugin --profile web add github:left0ver/dsh-file-review

裝完後啓動 Web 界面:

dsh web

README 徽章標明兼容 DeepSeek Harness 0.1.xpackage.json 的 peerDependencies 把宿主包限制在 >=0.1.0-rc.5 <0.2.0dsh.client.platformweb。不要指望它出現在純終端 TUI 會話裏。

pnpm 冷靜期

較新版本的 pnpm 會攔截剛發佈的包。要從 npm 裝到最新版,README 要求先編輯 ~/.dsh/profiles/web/pnpm-workspace.yaml,把包名加入排除列表:

minimumReleaseAgeExclude:
  - dsh-file-review

固定 commit

目錄頁提醒:如需可復現安裝,請固定 commit 哈希。寫法是在倉庫說明符後面加 #commit。本文覈對時,倉庫 main 最新提交是 4e4e17ce8e1b1811ba280dcd3c50ad7f1ff07532(2026-08-15),可以寫成:

dsh plugin add github:left0ver/dsh-file-review#4e4e17ce8e1b1811ba280dcd3c50ad7f1ff07532

使用 web profile 時,把同樣的 #commit 接到 README 那條 --profile web 命令後面即可。固定哈希之後,倉庫後續推送不會在你下次安裝時悄悄換成另一份代碼。

從源碼安裝、更新與卸載

從源碼安裝(作者文檔):

git clone https://github.com/left0ver/dsh-file-review.git
cd dsh-file-review
pnpm install
pnpm run build
dsh plugin --profile web add ${PWD}

更新與卸載:

dsh plugin --profile web update dsh-file-review
dsh plugin --profile web remove dsh-file-review

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

典型用法

作者把操作路徑寫成四步:Chat → Generate → Click a changed file → Review。按倉庫說明,可以這樣走一遍。

  1. dsh web 打開 Web 界面,在某個有工作區的會話裏發任務,讓智能體創建或修改文件,例如改一個源文件、補一段配置。
  2. 等這一輪結束。如果確實發生了成功的寫入 / 編輯,對話該輪末尾會出現「已編輯文件」卡片,列出本輪產出路徑。
  3. 點某個文件名上的「審查」,或點「審查所有產出文件」。右側(或底部,取決於面板佈局)會打開審查抽屜,顯示帶行號的 unified diff、新增 / 刪除行統計。未改動的上下文默認摺疊,可以展開。
  4. 需要對照完整文件時,用「在編輯器中打開」。需要把 diff 帶走時,用「複製差異」。
  5. 確認這一輪改錯了,且文件仍是可還原的 UTF-8 文本,再點「撤銷」。撤銷成功後可以用「重新應用」加回去。智能體仍在跑的時候不要指望立刻寫入,宿主會等到維護窗口。

模型如果在收尾裏用行內代碼寫出了路徑(或本輪唯一的文件名),這段文字本身也可以點,效果和卡片上的打開操作一致。

適用場景與注意事項

適合這些情況:

  • 日常在 DeepSeek Harness Web 裏讓智能體改代碼、改配置、寫文檔,希望當場覈對這一輪 diff
  • 改動集中在文本文件,需要一行行看增刪,而不是隻看工具調用摘要
  • 改錯了想立刻撤回本輪文本修改,還不想爲此切到外部 Git 工具

使用前注意下面幾條,均來自目錄頁、README 或源碼,不是額外發揮:

  1. 只覆蓋 Web profile。 package.json 聲明 platform: web,終端 TUI 或其他 profile 裝上也不會出現這套卡片和抽屜。
  2. 審查範圍是當前輪次的成功變更。 只讀、刪除、失敗調用不進列表;跨輪次的工作區髒狀態、未納入工具 locations 的改動,插件不會自動補齊。
  3. 撤銷不是 Git revert。 它按記錄的 hunk 在磁盤上做文本還原,且必須能嚴格對上當前內容。二進制、符號鏈接、工作區外路徑、不完整 diff、外部同時改文件,都會失敗或跳過。
  4. 宿主版本要匹配。 README 標明 DeepSeek Harness 0.1.x;peer 依賴卡在 0.2.0 以下。升級到不兼容的宿主版本前,應先看插件是否同步更新。
  5. 權限與供應鏈。 插件以當前 dsh 進程權限運行,安裝可能執行代碼。社區目錄不是官方商店。安裝前閱讀倉庫源碼和 MIT 許可證;需要可復現環境時固定 commit,不要只信包名。
  6. 同類插件不要混爲一談。 社區裏還有 dsh-change-reviewdsh-review-loopdsh-revdiff 等審查類插件,跟蹤範圍、入口(Web / 終端 / 命令)和能否把意見回寫給智能體並不相同。本文只覈對 left0ver/dsh-file-review

小結

dsh-file-review 給 DeepSeek Harness Web 補了一塊很窄的界面:智能體這一輪改了哪些文件、diff 長什麼樣、能不能把這一輪文本改動撤回去。它不替代 Git,也不做跨會話的代碼審查流水線,只把「剛改完、馬上對一下」留在對話旁邊。

目錄頁與倉庫:

  • 社區目錄:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-file-review/
  • GitHub:https://github.com/left0ver/dsh-file-review
  • npm:https://www.npmjs.com/package/dsh-file-review
  • DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness
羽毛球分组比赛记分
小程序二维码

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

小夜