前言¶
在 DSH 的智能体流程里,write、edit 这类工具调用成功后,模型未必能立刻看到类型错误或 lint 问题。dsh-lens-lite 做的事情是把编辑后诊断接进 DSH:在受关注的工具调用成功后运行你配置的检查器,并把检查结果作为 notice 形式的 plugin context 提供给模型。
这是什么¶
dsh-lens-lite 是一个面向 DeepSeek Harness 的编辑后诊断插件。可确认的仓库 owner 是 ben7am1n,许可证为 MIT。
它不内置检查器命令;哪些检查器可用,取决于你本地工具链实际安装了什么。插件负责在合适的时机运行这些检查器,并把结果作为上下文带回给模型。
核心行为¶
dsh-lens-lite 的行为边界比较明确:
- 只在受关注的工具调用成功后运行,默认监听
write、edit、str_replace_editor。 - 根据编辑文件的扩展名,并发运行所有声明该扩展名的检查器。
- 如果所有检查器都以配置的 clean code 退出且没有输出,不附加额外上下文。
- 从不否决调用,也从不重写调用。
- 如果下游 listener 已经 blocked 这次调用,就跳过 linting。
- 尊重工具调用的取消信号;检查器自身超时时会终止其整个进程树。
- 检查结果以
notice形式的 plugin context 返回。
安装与启用¶
先安装插件:
dsh plugin --profile web add dsh-lens-lite
安装后,在 profile 的 cordis.patch.yml 中覆盖插件行,改成你工具链实际可用的检查器。
典型用法¶
资料中给出的示例映射如下:
tsc .ts .tsx npx --no-install tsc --noEmit
eslint .ts .tsx .js .jsx
ruff .py
go-vet .go
argv 支持占位符:
{file}
{relFile}
{dir}
配置与故障表现¶
配置错误会在插件加载时直接失败。资料中列出的加载期错误包括:
argv为空。- 检查器未声明扩展名。
- 检查器未读取任何 stream。
- 检查器重名。
- 非正数 bound。
环境失败不会让已经成功的编辑失败,而是变成 finding:
checker unavailable
checker timed out after Nms
checker failed to start
成本与注意¶
整仓检查器会在每次编辑时运行。例如 npx tsc --noEmit 在大仓库中可能给每次 write 增加数秒耗时。
运行前需要确认 Node 版本满足要求:
^22.19.0 || >=24.0.0
插件会以当前 dsh 进程权限运行。安装前建议检查源码和 MIT 许可证。DSH 社区目录是独立站点,不是 DeepSeek 或幻方的官方应用商店。
本地开发¶
资料中给出的开发命令:
pnpm install --ignore-workspace
pnpm run typecheck
pnpm test
pnpm run build
链接¶
GitHub: https://github.com/ben7am1n/dsh-lens-lite
目录页:未在已核实资料中给出,建议在 DSH 社区目录检索 dsh-lens-lite