dsh-annotation:在 DSH 助手回覆上就地批註、批量發送

前言

審閱一條很長的 AI 回覆時,麻煩往往不在提出意見,而在說清楚「我說的是哪一句」。常見做法是把原文複製進輸入框,再補一段解釋,幾輪下來上下文就散了。dsh-annotation 的思路是把意見直接留在對應句子旁邊:選中原文、就地寫下註解、攢齊多條後一次發送,模型按編號逐條回答。下面介紹這個插件。

插件簡介

dsh-annotation 是一個 DSH Web 插件,作者 ruisenbai,MIT 許可證,當前版本 0.5.2,分類爲客戶端插件。它的定位一句話概括:爲 DeepSeek Harness 助手回覆提供內聯、可批量提交的註解,最終通過官方輸入框發出。

需要說明的是,作者在 README 中寫明:這套交互是獨立、非官方地復刻 ChatGPT 的正文註解功能,只複用使用流程,項目與 OpenAI 無隸屬或官方合作關係。

核心功能

選中即批註

1、在已完成的助手回覆內選中文字,彈出帶「添加註解」和「複製」的浮條;藍色選區保持可選,隨時可 Ctrl+C 複製。
2、點擊「添加註解」後,在選區旁就地編輯,輸入停止 400ms 後自動保存,完整處理中文輸入法的組合輸入。
3、支持普通註解(note)和空內容註解(僅標記原文,highlight-only)。
4、選區重疊時合併到原有草稿,避免高亮堆疊歧義。

草稿與發送

  • 註解草稿默認自動附加到官方輸入框,可在配置中關閉自動附着,或用標題欄回形針手動切換。
  • 官方輸入框是唯一發送入口:文字、註解、圖片合併爲一條任務發送。
  • 輸入框上方顯示「註解 ×N」緊湊概覽,點擊展開完整註解列表;數量隨新增、刪除、附着、發送即時更新。
  • 斜槓命令自動放行:附着狀態下輸入以 / 開頭的內容時,命令不攜帶註解、不觸發發送。
  • 發送失敗時文字、圖片和註解全部保留,重試沿用同一 submissionId,冪等去重。

模型逐條回覆

  • 模型按註解順序逐條回答,每段以「註解 N:」開頭。
  • 回覆中通過隱藏標記關聯,渲染可懸浮查看的註解芯片。
  • 協議跟隨 DSH 中英文 locale,回覆解析兼容「註解 N:」「註解 N:」「Annotation N:」等格式。

數據保存與恢復

  • 每條註解保存完整原文、前後文選擇器、助手消息 ID、事件序號、註解 ID 與提交 ID;代碼記錄語言與起止行,表格記錄起止行列。
  • 使用 localStorage 恢復未發送草稿、編輯中內容和不可變重試記錄,用提交 ID 派生的穩定消息 ID 去重重試。
  • 支持撤銷最近一次草稿刪除、導出當前 Session 恢復 JSON、清空未提交草稿、顯示本地存儲佔用。

兼容性

  • 可選兼容 dsh-focus-chat,未安裝時正常啓動、不等待任何服務。
  • 瀏覽器不支持 CSS Custom Highlight API 時,仍保留編號標記和定位能力。

安裝與啓用

宿主要求比較嚴格:

  • DSH Web 0.1.2-rc.1(精確版本,運行 dsh --version 檢查)
  • Node.js ^22.19.0 或 >=24.0.0
  • web Profile

推薦直接安裝 GitHub Release 提供的預構建包,共三步:

curl -fL -o dsh-annotation.tgz https://github.com/ruisenbai/dsh-annotation/releases/latest/download/dsh-annotation.tgz
dsh plugin --profile web add ./dsh-annotation.tgz
dsh web

第一條命令下載最新發行版的 Tarball,第二條把插件加入 web Profile,第三條啓動 DSH Web。如果 DSH Web 已在運行,安裝後需要重啓。

如果宿主版本不一致,可按版本映射選擇對應發行版:v0.5.2 / v0.5.1 / v0.5.0 適配 DSH 0.1.2-rc.1,v0.4.0 適配 0.1.2-alpha.3,v0.3.0 適配 0.1.2-alpha.1,v0.2.4 適配 0.1.1-rc.2。

也可以從源碼構建:

git clone https://github.com/ruisenbai/dsh-annotation.git
cd dsh-annotation
corepack enable
pnpm install
pnpm verify
dsh plugin --profile web add .
dsh web

先克隆倉庫並啓用 corepack,pnpm install 解析依賴,pnpm verify 通過校驗後,把當前目錄加入 web Profile 再啓動。

典型用法

1、打開 DSH Web 頁面,在一條已完成回覆中選中文字,點擊浮條中的「添加註解」打開緊湊輸入框,填寫意見後按 Enter 或點擊對號創建草稿。
2、草稿出現在官方輸入框上方並默認附加;可選地填寫任務文本、附加圖片,按官方 Enter 或點擊發送按鈕,文字、註解和圖片會作爲一條任務一起發出。
3、在 設置 → 插件 → 插件配置 的「註解」卡片中,可開關「啓用 DSH 註解」「新增註解後自動附着到輸入框」「顯示本地數據控件」,默認都開啓。

可覆蓋配置

Bundle 會在 Profile 中插入 dsh-annotation 行,可在 Profile Composition 中覆蓋以下默認值:

配置項 默認值
commandName annotation_submit
maxPayloadBytes 524288
maxAnnotationsPerSubmission 100
warnSelectionChars 12000

各配置項的具體作用見倉庫 README 的配置表;需要留意的是,README 的表格在 warnSelectionChars 處被截斷,可能還有未展示的配置項,以倉庫文檔爲準。

適用場景與注意

適合的場景:在 DSH Web 裏審閱長回覆、意見需要精確到某一句或某段代碼、希望把多條反饋合併成一次發送的工作流。

安裝前有幾點需要確認:

1、插件以當前 dsh 進程權限運行,安裝前應自行檢查源碼與許可證(本項目爲 MIT)。
2、宿主版本是精確要求,先運行 dsh --version 確認是否爲 0.1.2-rc.1。
3、DSH 仍處於預發佈階段,升級前建議閱讀倉庫內的 docs/compatibility.md 兼容性說明。

小結

dsh-annotation 解決的是審閱長回覆時「指哪說哪」的問題:批註留在原文旁,多條攢齊一次發送,模型按編號逐條回應,本地草稿可恢復、失敗可重試。如果你日常在 DSH Web 裏做逐句反饋,值得一試。

  • 社區目錄頁:https://www.skillhub.cn/plugins/ruisenbai/dsh-annotation
  • GitHub 倉庫:https://github.com/ruisenbai/dsh-annotation
羽毛球分组比赛记分
小程序二维码

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

小夜