前言¶
DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。在使用过程中,开发者通常面临三个具体痛点:无法直观看到每轮对话的金额消耗、需要手动编写脚本才能处理文档或管理复杂的编译运行环境。dsh-light-tool (DLT) 是一个 DSH 永久插件,由 LLYlab 维护。它通过六个核心模块解决上述问题:提供人民币成本追踪与账户余额显示、提供 PDF/Word/Excel 直接读写与预览工具、管理编译运行环境表与直接执行程序。
核心功能¶
DLT 包含以下六个主要模块,每个模块均可独立开关:
- 人民币成本:在对话结束后的用量胶囊旁边显示本轮花费,支持点击查看 token 明细与会话累计。
- 账户余额:右下角常驻显示 DeepSeek 账户余额,支持拖动与点击强制刷新。
- 文档工具:让模型直接读写 PDF / Word / Excel / CSV,无需额外脚本;支持 PDF 往返链(转 Word 改后转回)。
- 右栏预览:点击工作区文档可直接在右栏预览,PDF 由 DSH 产品自带渲染器负责。
- 环境表:管理工具链路径(VS 安装根 / Python / Office / Edge),支持自动探测与系统提示注入,避免模型自行探测。
- 直接执行:提供
dlt_run与dlt_build工具,支持在指定环境直接运行程序或编译工程。
安装与启用¶
DLT 在 package.json 中声明了 dsh.bundle.patch,安装后会自动合并到当前 profile 的 bundle 层,无需手动修改配置文件。
推荐使用 npm 安装:
dsh plugin --profile web add dsh-light-tool
安装完成后,重启 DSH,插件将出现在「设置 → 插件清单」中。
运行期开关¶
DLT 提供了一个运行期开关管理器,位于设置页面。
- 即时生效:在设置页修改总开关或分模块开关,无需重启,插件会立即卸载/加载对应的模型工具(如
dlt_run等)与界面组件。 - 持久化:开关状态会写入
<DSH_HOME>/dlt/switch.json(默认路径),重启后保持。若文件损坏,将回退到配置文件的默认值。 - 配置优先级:
cordis.patch.yml中的config仅提供首次运行的默认值;一旦在设置页修改过开关,后续以switch.json为准。
典型用法¶
DLT 提供了以下模型工具函数:
-
dlt_run(env, program, args, cwd, timeoutMs, stdin)
在指定环境执行程序,返回 stdout/stderr 和退出码。例如env=msvc-x64会自动注入 vcvarsall,使cl和link命令可用。 -
dlt_build(target?, configuration?, platform?, rebuild?)
调用 MSBuild 编译工程,支持指定目标、配置、平台及重建选项。 -
dlt_doc_read(path, mode?, pages?, sheets?, range?, formulas?, maxRows?)
读取文档内容。支持 PDF(逐页文本)、Word(段落+表格)、Excel(行列数据)及 CSV。 -
dlt_doc_write(path, action?, ops?, spec?, out?, chain?, replacements?)
写入或修改文档。写操作会自动在同目录备份为.bak-YYYYmmdd-HHMMSS.<ext>。支持 PDF 往返链(chain=word)及各种文档格式转换。 -
dlt_doc_convert(path, to, ...)
格式转换。例如to=docx|html(从 PDF),to=pdf(从 Word/Excel),to=png(PDF 某页出图)。
依赖与系统要求¶
DLT 依赖本机已安装的软件与 Python 环境:
- Python:必须安装 Python 3.12。
- Python 库:需安装
pymupdf、pypdf、python-docx、openpyxl、pdf2docx、pywin32。 - Office 与 Edge:文档导出与 HTML→PDF 转换依赖本机已安装的 Office COM 组件与 Microsoft Edge。
配置项¶
DLT 的配置通过 cordis.patch.yml 中的 config 字段进行整块替换(非深合并)。主要配置项包括:
- 开关:
enabled(总开关)、cost、balance、documents、preview、environment、run(各模块默认值)。 - 环境:
pythonEnv(解释器路径)、environments(环境表路径覆盖)。 - 缓存:
cacheDir(定价与余额快照目录)、balanceCacheMs(余额缓存时长)。 - 执行:
docTimeoutMs、runTimeoutMs、maxOutputBytes(输出上限)、defaultSolution、defaultConfiguration、defaultPlatform。
结尾¶
DLT 是一个功能完备的 DSH 永久插件,覆盖了成本监控、文档处理与开发环境管理的核心需求。通过运行期开关与配置覆盖机制,它能够灵活适配不同的工作流。更多实现细节与测试用例可参考其 GitHub 仓库。