前言¶
在 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