dsh-eli5:DSH 劃詞講人話,不佔用主對話上下文

前言

在 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、刪除符號鏈接並重啓。

典型用法

  1. 在 DSH Web 對話或頁面中選中一個詞、一句說明、一段代碼或報錯文本。
  2. 點擊選區旁的 ✦,在環形菜單選「解釋 / 翻譯 / 找錯誤 / 總結」,或按 Ctrl+Shift+E(macOS ⌘+Shift+E)直接解釋。
  3. 在右側浮層閱讀答案;需要時在底部輸入框追問,或用快捷追問(再直白點、舉個例子、畫個圖等)。
  4. 若答案依賴倉庫,展開「看了這些」覈對讀取軌跡;滿意後點 「並回對話」 將結論帶回輸入框再編輯發送。

調試時可在瀏覽器控制台使用 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
羽毛球分组比赛记分
小程序二维码

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

小夜