前言¶
用 DeepSeek Harness(DSH)或同类 Agent 做文献精读、写笔记时,产出往往散落在多轮会话里:这一轮是一份 Markdown,下一轮是一份 PDF 或 Office 文档。若要纳入 Zotero 管理,通常要手动拖文件、建条目、挂附件,和对话上下文脱节。
dsh-zotero-sync 是社区维护的 DSH 插件,通过 Zotero 桌面端自带的本地 Connector(http://127.0.0.1:23119)把对话里产出的文档写入文库,也可只读检索文库、读元数据、提取 PDF 全文、导出 BibTeX。不需要 Zotero 账号、API Key,也不用在 Zotero 里安装扩展。
这是什么¶
- 名称:dsh-zotero-sync(npm 包名同 GitHub 仓库)
- 维护者:520limited(作者 Ycx66)
- 版本(package.json):1.1.1
- 许可证:MIT
- 定位:DeepSeek Harness 插件;上传走 Connector 协议,读取走 Zotero Local API(只读)
每个上传文件在 Zotero 中创建 document 条目,标题为文件名或你指定的标题,libraryCatalog 显示 DeepSeek Harness;原文件作为附件流式写入 storage。插件不访问 zotero.sqlite,不依赖 Zotero 重启。唯一前提:Zotero 桌面端处于运行状态(README 写明 Connector 在 6.x–10.x 协议一致,并在 Zotero 10.0.6 实测)。
连接时机:仅在你点击上传或执行 sync 时访问本机 Connector;挂载时零请求、无后台轮询、无自动上传。
核心功能¶
写入文库¶
支持 Markdown、PDF、Office 等(具体由 scope 配置决定)。四个入口共用同一套 Host 实现:
| 入口 | 位置 | 范围 |
|---|---|---|
| 单文件按钮 | 回合尾部 Zotero 卡片,每行右侧 | 单个文件 |
| 批量按钮 | 同一卡片右上角 | 本回合全部文档 |
| 「Zotero 同步」胶囊 | 输入框下方 | 整段会话(按 source/scope 筛选) |
/zotero 与 zotero_sync 工具 |
输入框 / Agent | 全部能力 |
也可用自然语言,例如:「把刚才那份笔记传到 Zotero」。
读取文库(v1.1.0 起)¶
搜索条目、读详情与引文(BibTeX / RIS / CSL JSON)、提取 PDF 全文(依赖 Zotero 全文索引)、返回附件本机路径、列出分类与标签。Agent 工具为 zotero_library(actions:search · item · fulltext · file · collections · tags)。
读取为只读:不发写请求、不申请写授权 key。一次性前提:在 Zotero → 设置 → 高级 → 杂项 勾选「允许此计算机上的其他应用程序与 Zotero 通讯」,并重启 Zotero。上传不受此开关影响。
配置维度¶
来源 source:session(默认,仅本会话写出/交付的文件)或 workspace(扫描工作目录,限深 3、最多 20 个,跳过 node_modules、dist、.git 等)。
范围 scope:md · docs(默认,含 Markdown、txt、PDF、Office、网页/电子书)· all(仅对 session 来源生效)。
去重:按文件内容 sha1 记录历史;内容未变再次 sync 会提示已在 Zotero;--force 可强制重传。历史在 plugin-data/dsh-zotero-sync/history.json。
安装与启用¶
环境要求:DSH engines.dsh: >=0.2.0-0,Node ≥ 18(DSH 自带),Zotero 桌面端运行中。
方式一:命令行(推荐)¶
下面命令来自仓库 README,profile 为 web 时安装到对应配置:
dsh plugin --profile web add github:520limited/dsh-zotero-sync
安装后重启一次 DSH,以便 Client 半边随页面重新加载。
方式二:Discover 市场¶
在 DSH 设置 → 插件 → 索引源添加:
https://raw.githubusercontent.com/520limited/dsh-zotero-sync/main/market/index.json
之后在 Discover 搜索 zotero 安装。
方式三:本地目录¶
在插件管理器中安装克隆后的目录(开发调试用)。
可选配置可在 profile 补丁层覆盖 bundle 内 cordis.patch.yml,例如:
- id: zotero-sync
name: dsh-zotero-sync
config:
baseUrl: http://127.0.0.1:23119
scope: docs
source: session
target: ''
tags: ['DSH对话笔记']
workspaceLimit: 20
workspaceDepth: 3
maxFileBytes: 83886080
优先级:调用参数 > 运行时 settings.json > patch config > 内置默认。
典型用法¶
斜杠指令¶
先查看连通性与目标:
/zotero status
/zotero targets
指定集合与范围后同步:
/zotero use C23
/zotero scope md
/zotero source workspace
/zotero sync
显式路径或强制重传:
/zotero sync "D:\笔记\a.md"
/zotero sync --force
读文库示例:
/zotero find 超声
/zotero read ABCD1234
/zotero collections
read 支持 --bibtex、--file 等选项(见 README)。
Agent 工具¶
zotero_sync 的 action:status · targets · candidates · sync · configure。
典型读文库流程(README 示例):在 Zotero 里搜索主题 → 读某篇方法部分 → 用指定引用格式回答;Agent 走 search → fulltext,全程只读。
适用场景与注意¶
适合:在 DSH 里写笔记、导出 PDF/Office,希望一键进 Zotero;希望 Agent 基于你已有文库检索、读 PDF 全文写综述或引用,而不复制粘贴元数据。
权限与风险(插件 README 表格摘要):
- 网络仅访问本机
127.0.0.1:23119(可改baseUrl),不向外部服务器发数据。 - 上传只读你选中的文件;
source: session下不会静默上传会话未触及的文件。 - 已上传条目无法通过插件删除(Connector 无删除端点),需在 Zotero 内手动删。
- Connector 会话约 10 分钟过期;文库内不做去重,仅本地 sha1 去重。
插件以当前 DSH 进程权限运行,安装前请自行查看 GitHub 源码 与 MIT 许可证。DSH 社区插件目录(如 skillhub.cn)为独立生态站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-zotero-sync 把「对话交付物 → Zotero 条目」和「Zotero → Agent 只读检索」接到同一条本机链路上,避免 API Key 与 Zotero 内插件依赖。上传与读取分开关、分协议,行为在 README 中写得很透明。
- 目录页:https://www.skillhub.cn/plugins/520limited/dsh-zotero-sync
- 仓库:https://github.com/520limited/dsh-zotero-sync