前言¶
在 DeepSeek Harness(DSH)里做知识库、长文档问答或 RAG 时,语料往往是 Word、Excel、PDF 或图片,而不是现成的 Markdown。Agent 若只能读纯文本,就要么让人先手工导出,要么在对话里反复说明「请先转换」。本仓库同时提供 doc2md 命令行(监控目录、批量转换、OCR)和 npm 包 dsh-doc2md,后者在 DSH 中注册 doc2md 工具,把转换能力接到 harness 上。插件本身不解析文档,只确定性调用本机已安装的 doc2md CLI。
这是什么¶
- 插件标识:
github:jessehoo89/markdown_monitor - 维护者:jessehoo89
- 分类:联网工具(目录页归类;底层 doc2md 对扫描件 PDF 可走多云端 OCR,是否联网由本机
config.json/.env决定,插件不替你做选择) - npm 包名:
dsh-doc2md(当前 package.json 版本 1.0.1,MIT 许可证) - 仓库:https://github.com/jessehoo89/markdown_monitor
- 目录页:https://www.skillhub.cn/plugins/jessehoo89/markdown_monitor
项目名是 markdown_monitor,命令行与安装产物仍沿用 doc2md 命名,已装过的实例不受影响。
核心功能¶
本机 doc2md 能做什么(插件透传的能力)¶
监控模式下,watchdog 监听多个根目录的新增与修改,带写入防抖与自触发保护(生成的 .md 不会再次触发)。state.db 记录已处理文件,重启或重复投放不会重转。改 config.json 可热加载监控目录、排除规则、扩展名、防抖时长、输出位置、PDF 引擎等(OCR 相关改动需重启)。
支持的输入包括 docx / doc / xls / xlsx / pdf / 图片。本地直转路径包括 mammoth(docx)、openpyxl(xlsx)、Office COM 或 LibreOffice(老式 doc/xls)、pymupdf4llm(有文本层 PDF)。扫描件或无文本层 PDF 走多后端 OCR(paddle、mineru、sf-deepseek-ocr 等),配额用尽或鉴权失败时会熔断并切换后端。
批量转换仍可用 doc2md convert <目录>;监控常驻用 doc2md watch。
DSH 插件暴露的四个 action¶
插件在 harness 中注册工具 doc2md,提供下表动作(参数会进入会话日志,勿把含密钥的路径当秘密):
| action | 作用 |
|---|---|
convert |
转换给定绝对路径(文件或目录),报出每个「源文件 → md」的落点 |
read |
读回某个 .md 或源文档旁同名 md 的正文 |
scan |
试运行:只列分流与 OCR 量,不写任何文件 |
status |
打印转换统计(含各后端今日用量) |
插件只读写你点名的路径;不解析文档、不抓网页、不加载远程资源。文档解析与是否上传云端 OCR 均由本机 doc2md 进程按自己的配置执行。
查找本机 doc2md¶
装插件前,机器上需要可用的 doc2md。插件按顺序解析,也可用环境变量指定:
| 环境变量 | 含义 |
|---|---|
DOC2MD_BIN |
doc2md / doc2md.exe 的绝对路径(最高优先级) |
DOC2MD_REPO |
源码仓库根,改用 <python> -m doc2md |
DOC2MD_PYTHON |
配合 DOC2MD_REPO 的解释器 |
未设置时再从 PATH 与常见安装目录查找(如 Windows 的 %LOCALAPPDATA%\Programs\doc2md、C:\Program Files\doc2md,Linux 的 ~/.local/bin、/opt/doc2md)。要求 Node ≥ 22.19。
convert 依赖 doc2md 1.0.3 起的 --print-outputs 以得到准确产出路径;更老版本会降级为同目录同名推断,并在结果中注明。
安装与启用¶
1、安装 doc2md(本机 CLI,插件前置条件)¶
Linux(推荐一条命令,默认装到 ~/.local,约 130M):
curl -fsSL https://raw.githubusercontent.com/jessehoo89/markdown_monitor/main/install.sh | bash
老式 .doc / .xls 在 Debian/Ubuntu 上需 LibreOffice:
sudo apt install -y libreoffice-writer libreoffice-calc
bash install.sh
Windows: 在 Releases 下载 doc2md-*-win-x64-installer.exe 安装,或解压 *-win-x64.zip 运行 doc2md-gui.exe。
装完后建议:首次运行生成 config.json,把 roots 改成语料目录;在 .env 填云端 OCR 凭据(不填也能转 docx/xlsx/有文字层 PDF);执行一次 doc2md scan 看分流,不写文件。
2、在 DSH 中安装插件¶
dsh plugin --profile web add github:jessehoo89/markdown_monitor
也可在 DSH 桌面端市场里选「手动输入」,填 github:jessehoo89/markdown_monitor。装完重启该 profile。插件无 build 脚本,不会触发 allowBuilds。若缺少 pnpm,可先执行 corepack enable pnpm。
典型用法¶
Agent 侧通过 harness 的 doc2md 工具调用;本机调试时可对照 CLI:
doc2md scan --root ~/语料 # 试运行
doc2md run --root ~/语料 # 批量转换
doc2md convert a.docx b.pdf # 只转指定文件
doc2md watch # 常驻监控目录
监控语料目录时,把文件丢进 config.json 里配置的 roots 即可随放随转;DSH 会话里更适合用 convert / scan / read / status 对明确路径操作。
指定非默认 doc2md 时,在加载插件前设置例如:
export DOC2MD_BIN=/opt/doc2md/doc2md
Windows 打包版 doc2md.exe 控制台输出为 GBK,插件会兼容解码。
适用场景与注意¶
适合: 已在 DSH 中跑 agent,语料是 Office/PDF/图片,希望 agent 能「转换 → 读 md → 继续推理」,且你愿意在本机维护 doc2md 与(可选)OCR 凭据。
注意:
- 插件以当前 dsh 进程的用户权限 运行,只能访问该用户可读写的路径;安装前请自行审阅仓库源码与 MIT 许可证。
- 扫描件是否上云、敏感目录是否标记不上云,由 doc2md 的
config.json(如sensitive_markers)和.env控制,与插件无关。 - 社区目录 skillhub.cn 是独立站点,与 DeepSeek / 幻方无官方从属关系;星标等元数据以各页面当时显示为准(目录页标注星标为 0)。
结尾¶
markdown_monitor / dsh-doc2md 把本机 doc2md 的转换、试跑、读回与统计接到 DSH,适合「文档进目录、Agent 用 Markdown 继续干活」的流程。先装 doc2md 并配好语料目录,再用官方命令装入 harness 即可。