dsh-zotero:让 Agent 搜索、阅读并引用本地 Zotero 文献库

前言

在 DSH 的插件化工作流里,Agent 经常需要基于本地文献回答研究问题。仅凭上下文或模型记忆,往往缺少可核对的来源;手动打开 Zotero、复制摘要和引用,也会打断对话流。

dsh-zotero 是一个 DSH 插件,用来把本地 Zotero 文献库接入 Agent:搜索文献、读取元数据和笔记、按查询提取证据段落,并生成引用。

这是什么

dsh-zotero 仓库为 Vncntvx/dsh-zotero,许可证为 MIT。它解决的问题是:让 Agent 可以直接读取本地文献库中的论文、摘要、笔记、批注和附件,再把相关证据组织成可引用的输出。

核心能力

以下能力均为读取本地文献库,不修改条目、笔记、标签或分类。

1、搜索文献。按标题、作者、年份搜索,支持 librarycollectionsavedSearchpublications 作用域;everything 模式会连全文索引一起搜。

2、浏览库结构。可以发现库、合集树、保存的检索、标签 facet、条目类型及其字段。

3、读取单条文献。读取一条文献的元数据;可返回笔记、批注、附件清单;fields:"all" 保留全部元数据。

4、探索子对象。查看一条文献直连的笔记、附件,以及挂在 PDF 下的批注。

5、提取证据。按查询词返回最相关的证据段落,来源可包括批注、笔记、摘要、全文;支持多附件检索。

6、增量感知。基于本地事务版本,判断哪些条目、合集或全文索引发生了变化,以及什么被删除。

7、定位附件。将文献 ref 解析为已验证的磁盘路径或链接 URL。

8、导出引用。生成引用、参考文献表、BibTeXBibLaTeXRISCSL JSON

安装与启用

先执行插件安装命令:

dsh plugin --profile <name> add dsh-zotero

安装后,重启 dsh 并新建会话,Agent 即可使用 Zotero 工具。

插件在 Settings -> Plugins 中提供配置卡片。插件的唯一写入是配置卡片保存后写入:

$DSH_HOME/settings.yaml

zotero: 用户层。配置修改保存即热更新,无需重启;安装或卸载插件后则需要重启 dsh 并新建会话。

典型用法

下面按一个常见研究流程说明调用方式。

先搜索 Risk 相关的期刊论文:

zotero_search(query: "Risk", itemType: "journalArticle")

这一步会返回匹配的文献结果。

读取第 1 条文献的摘要字段:

zotero_get(ref: 1, fields: ["abstractNote"])

这一步只取指定字段,便于把摘要作为后续上下文。

围绕 methodology 提取证据段落:

zotero_retrieve(query: "methodology", sources: ["fulltext", "notes"])

这一步会从全文和笔记中查找与查询词相关的段落。

把三条文献导出为 BibTeX

zotero_export(refs: [1,2,3], format: "bibtex")

导出结果是静态文本,需要手动复制到目标位置。

适用场景与限制

它适合把本地 Zotero 文献库作为证据来源的 Agent 工作流,例如查找论文、核对摘要、从笔记和批注中找依据、生成参考文献。

需要注意:

  • 网络请求只发往 http://127.0.0.1:23119/api,不跟随重定向;resolveConfig 强制 loopback 地址。
  • 文件访问是只读;zotero_attachmentexistsSync 校验 Zotero 返回的附件路径,不写文件系统。
  • 插件不执行 shell 命令、不加载 native 模块、不启动常驻进程。
  • 证据排序基于 BM25,按查询词与 passage 的词频匹配度排序。
  • 全文证据依赖 Zotero 索引;未索引的 PDF 无法提供全文段落。
  • zotero_attachment 返回文件位置后,继续阅读 PDF 需要宿主具备对应能力。

由于插件会按当前 dsh 进程权限运行,安装前建议检查源码与 MIT 许可证。

结尾

dsh-zotero 把“找论文、读摘要、提取批注、导出引用”这几个步骤接入了 Agent 工作流,适合需要本地文献证据和可引用输出的场景。

GitHub:https://github.com/Vncntvx/dsh-zotero

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜