摘要:写论文最烦的不是写,而是查文献、排引用、调 LaTeX。我给 DeepSeek Harness 做了两个插件:一个自动检索文献并生成国标引用,一个给 LaTeX 项目做体检排错。4 个真实场景实测,平均 9.5/10,一条命令装齐,写论文从此省心。
本文为社区投稿,介绍的插件均为非官方项目,由笔者独立开发。
DeepSeek Harness(dsh)开源后,"一切皆插件"的架构让社区两周内涌出了上千个插件。但笔者在写论文时发现一个明显的空白:学术写作链路——查文献、生成国标引用、清洗 bib、编译排错——没有一个插件把它走通。
于是我做了两个插件,并且用 4 个真实场景做了自动化用户测试(平均 9.5/10)。这篇文章把开发过程和实测结果都分享出来。
两个插件是什么
dsh-lit-search:文献检索与引用
dsh plugin add dsh-lit-search # dsh 插件形态
npx dsh-lit-search --help # 独立 CLI 形态
装好后 agent 多出 4 个工具:
lit_search:Crossref + OpenAlex 双源检索(免 API key),按 DOI 去重、按引用数排序lit_cite:按 DOI 生成引用,支持 GB/T 7714(中文论文刚需,目前生态里唯一)、APA、BibTeX;arXiv 预印本自动回退 OpenAlex 并输出规范的[EB/OL]格式lit_bib:批量 DOI → BibTeX,直接灌进 LaTeX 项目lit_related:按 DOI 顺引用链找相关文献
实测调用(headless agent 真实调用 lit_cite):
LeCun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553).
dsh-latex-guard:LaTeX 项目体检
dsh plugin add dsh-latex-guard
npx dsh-latex-guard --help
latex_check:latexmk 编译 + 结构化错误报告。自动识别引擎——\RequireXeTeX/xeCJK/ctex/中文正文 → xelatex,支持% !TeX program注释和本地 .cls 回读;失败时附日志尾部摘录,agent 能直接看懂错在哪bib_lint:bib 去重、必填字段检查、格式规范化(--write有解析完整性保护,残缺 bib 不会被静默截断)bib_fill:Crossref 补全缺失字段,只补空不覆盖;missing(DOI 不存在)和failed(网络失败)明确区分cite_audit:\cite系列(含 biblatex 的\autocite/\nocite等)与 bib 对账
一条命令装齐:聚合 bundle
dsh plugin add dsh-research-writing
两个插件的聚合包,另附一份覆盖"调研→引用→清洗→对账→编译验证"五步闭环的 SKILL.md。
实测:4 个真实场景,平均 9.5/10
我没有停在"能跑通",而是用 dsh 的 headless 模式做了 4 个真实场景的自动化用户测试(prompt 模拟真实用户、不点名工具,看 agent 能否自主选对工具):
| 场景 | 结果 |
|---|---|
| 文献调研串联(检索→挑论文→GB/T 7714 引用) | 9/10 |
| 缺字段 bib 补全(5 条对照 Crossref 真值) | 10/10 |
| LaTeX 排错(ghost 引用 + 引擎不匹配) | 9/10 |
| 混合写作流(加 DOI→改 tex→引用对账→编译验证) | 10/10 |
两个印象最深的时刻:
- 错误信息设计救了场。评估期间代理网络抖动导致学术 API 全挂,agent 靠插件返回的
ALL_SOURCES_FAILED错误正确诊断出"学术 API 不可用但通用搜索可用",改用 web_search 交叉验证完成了全部补全。 - latex_check 的失败报告足够可操作。一次 pdflatex 编译失败返回了逐行 Unicode 错误,agent 自主判断需要 xelatex、显式传参重试、读 .bbl 复核、干净通过——全程无需人工介入。
开发过程中的坑(给想做插件的你)
- 错误处理用 throw,不要返回错误值:dsh 的
defineTool契约里 output.schema 与返回值不一致会被注册表拦下,真实错误信息会丢失;官方文档明确 "throw for infrastructure failures"。 - dist 随 git 提交:
dsh plugin add github:...不跑构建脚本,源码安装会失败。 - peer 依赖标 optional:否则
npx纯 CLI 用户会被拖进整个 dsh 依赖树。 - 本机 pnpm 的坑:esbuild postinstall 预检会让
pnpm test退出码 1,绕过方式是直接调./node_modules/.bin/vitest run。
链接
三个项目均 MIT 协议,欢迎 issue 和 PR。如果你也在用 dsh 写论文,装来试试,用出问题算我的。