前言¶
在 DSH Web 裏讀 Agent 輸出、翻倉庫代碼或對着報錯排查時,經常遇到「這個詞/這段輸出到底什麼意思」——若每次都回到主對話裏追問,主 Session 的輪次、token 和壓縮閾值都會跟着漲。DeepSeek Harness 社區插件 dsh-eli5(維護者 pandarayc)走另一條鏈路:在界面裏選中文字,用獨立輔助模型查詢給出大白話說明;必要時只讀當前會話工作區,且不寫 Session 存儲。下面介紹它是什麼、能做什麼,以及如何在 web profile 裏啓用。
這是什麼¶
dsh-eli5 是 DSH 的 Web 端劃詞解釋插件,分類屬於「模型推理」。一句話定位:選中不懂的詞、句子、代碼或報錯,用最直白的話說明它是什麼;需要結合倉庫時只讀 read_file / grep / glob,結果落在瀏覽器側浮層,不污染你正在讀的主對話。
版本 0.6.0(MIT 許可證),Node >=20,宿主側零運行時依賴。目錄頁:SkillHub — dsh-eli5;源碼:github.com/pandarayc/dsh-eli5。SkillHub 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。
主對話與講人話:兩條鏈路¶
| 主對話 | dsh-eli5 | |
|---|---|---|
| 入口 | 在輸入框發送 | 選中文字 → 點 ✦ → 環形菜單選動作(或 Ctrl/⌘+Shift+E 直接解釋) |
| 去向 | Agent 循環 → Session 日誌 | POST /eli5/ask → 獨立的 ctx.llm.prepareCall(必要時幾輪只讀工具) |
| 結果 | 寫入 Session,上下文逐輪變長 | 只在瀏覽器內存;Host 側最多 80 條進程內緩存 |
| 對當前會話的影響 | 每一輪都計入 | 零 |
解釋請求只讀兩樣外部信息:頁面上可見的對話節選(從 DOM 讀取,非 Session 日誌)與會話 cwd 下的文件;隨請求發一次、用完即棄。解釋按配置的 provider / model 單獨計費;浮層歷史不落盤。
核心功能¶
環形菜單四個動作¶
選中文字後,選區旁浮出 ✦,點開後爲四個扇區(鍵盤 1–4 可直接選):
| 動作 | 作用 | 會讀工作區 |
|---|---|---|
| 解釋 | 大白話說清「這東西是什麼」 | 會 |
| 翻譯 | 譯成中文,代碼、路徑、標識符原樣保留 | 不會 |
| 找錯誤 | 先給出「有錯 / 沒錯 / 證據不足」,再逐條說明 | 會 |
| 總結 | 一句話結論 + 最多三條要點 | 不會 |
翻譯與總結不掛載只讀工具,避免爲「更準確」多花時間翻倉庫。
只讀工作區與預算¶
工具根目錄爲會話創建時的 cwd(從 Session 頭讀取一次)。拒絕 ../、絕對路徑、指向外部的符號鏈接;拒絕 .env*、*.pem、*.key、id_rsa*、.npmrc 等;不進入 .git、node_modules、.venv、dist。
預算由代碼寫死:最多 3 輪工具往返、6 次調用、累計讀 200 KB、工具階段總時長 60 秒。浮層頂部「看了這些 · N 次成功」列出每次 read_file / grep / glob;失敗以紅色標出,模型不能假裝讀過。
回答格式與追問¶
系統提示要求:第一行用「這東西就是……」句式;術語就地括號翻譯;不寫「我先搜一下」這類過程敘述。浮層內可 Enter 追問,Shift+Enter 換行;引用卡右側「並回對話」把結論(及可選引用)放進 composer 草稿,不自動發送。選中超過 4000 字會拒絕(413),更適合直接問主對話。
Mermaid 子集圖¶
涉及流程、層級、狀態或對比時,模型可輸出 mermaid,由內置 mermaid-lite.js 渲染(非完整 Mermaid:僅 flowchart/graph、最多 24 節點等)。首個圖出現時宿主才加載 /eli5/mermaid-lite.js。
安裝與啓用(web profile)¶
插件聲明 dsh.client.platform: web,僅 Web GUI 可用。官方 README 給出的 web profile 步驟如下。
npm 發佈後可用:
dsh plugin --profile web add dsh-eli5
本地 link 方式(README 示例):
ln -sfn ~/.dsh/plugins/dsh-eli5 ~/.dsh/profiles/web/node_modules/dsh-eli5
在 ~/.dsh/profiles/web/cordis.patch.yml 末尾插入:
- insert:
- id: eli5
name: dsh-eli5
config:
provider: fancyhub
model: deepseek-flash
可選:在 ~/.dsh/profiles/web/package.json 的 dependencies 中登記 "dsh-eli5": "link:../../plugins/dsh-eli5",避免下次 pnpm install 刪掉符號鏈接。
瀏覽器端(lib/client.js)改完刷新頁面即可;宿主側(lib/index.js、service.js 等)默認需重啓 DSH,或通過 profile 裏配置 @deepseek-ai/dsh-hmr 監聽插件源碼目錄實現存盤 reload(reload 會中斷進行中的解釋並清空進程內緩存)。卸載時刪除 patch 中的 insert、刪除符號鏈接並重啓。
典型用法¶
- 在 DSH Web 對話或頁面中選中一個詞、一句說明、一段代碼或報錯文本。
- 點擊選區旁的
✦,在環形菜單選「解釋 / 翻譯 / 找錯誤 / 總結」,或按Ctrl+Shift+E(macOS⌘+Shift+E)直接解釋。 - 在右側浮層閱讀答案;需要時在底部輸入框追問,或用快捷追問(再直白點、舉個例子、畫個圖等)。
- 若答案依賴倉庫,展開「看了這些」覈對讀取軌跡;滿意後點 「並回對話」 將結論帶回輸入框再編輯發送。
調試時可在瀏覽器控制台使用 window.__dshEli5.open('選中的文字', '可選上文') 在不選字的情況下打開浮層。健康檢查:GET /eli5/health。
配置要點¶
patch 裏 config 字段存盤後對新請求生效(每次請求讀取配置)。常用項包括:
| 鍵 | 默認 | 說明 |
|---|---|---|
provider / model |
fancyhub / deepseek-flash |
留空則自動挑選 |
maxOutputTokens |
1200 | 單次輸出上限 |
maxContextChars |
4000 | 附帶上文字數;0 表示不帶上文 |
enableTools |
true |
關閉則純輔助查詢、不讀文件 |
cacheEntries |
80 | 進程內緩存條數(用過工具的回答不緩存) |
完整字段見倉庫 README.zh.md「換模型 / 調參數」一節。
適用場景與注意¶
適合:在讀長 Agent 回覆或代碼時快速消歧,又不想把「這個詞什麼意思」寫進主 Session;需要結合當前倉庫定義或實現位置時,讓插件在預算內只讀查證。
注意:
- 插件以當前 DSH 進程權限運行,安裝前應閱讀源碼與 MIT 許可證,確認路由與只讀沙箱符合你的安全預期。
- 僅 Web;TUI/桌面無對應 DOM。
- 工具 cwd 固定爲會話創建時目錄,會話內
cd不會改變解釋時的讀根。 - 涉及讀文件的解釋常見 8–20 秒延遲;同一段純解釋無工具時可命中進程內緩存,避免重複計費。
結尾¶
dsh-eli5 把「講人話」做成與主 Agent 並行的輔助查詢:劃詞即用、必要時只讀工作區、不寫 Session。若你在 web profile 裏做智能體或倉庫協作開發,值得把它放進工具欄習慣裏。
- 目錄頁:https://www.skillhub.cn/plugins/pandarayc/dsh-eli5
- GitHub:https://github.com/pandarayc/dsh-eli5