llm-for-zotero:面向 Zotero 文库的研究 Agent 系统

Zotero 7 Zotero 8 Zotero 9 Using Zotero Plugin Template AGPL v3 最新版本 GitHub Stars GitHub Downloads Buy Me A Coffee 个人网站

📖 English Documentation

LLM for Zotero 标志:大脑图标与 Zotero 盾牌结合

llm-for-zotero 将大型语言模型带入 Zotero 阅读器,让您无需离开文库即可提问、总结论文、解读图表、比较文献并保存笔记。它支持常规 API 服务商、本地 OpenAI 兼容模型、WebChat、Codex App Server 和 Claude Code。

llm-for-zotero 侧栏在 Zotero PDF 阅读器中的截图

llm-for-zotero 助手在 Zotero 中的第二张截图

与论文对话

就任意打开的 PDF 提问,回答基于论文内容并附带可点击的引用跳转。

多模型支持

OpenAI、Anthropic、Google Gemini、DeepSeek、Moonshot、本地 OpenAI 兼容模型等。

WebChat

不想配置 API 密钥时,可通过 Sync for Zotero 浏览器扩展使用 ChatGPT 或 DeepSeek 网页端。

Agent 模式

自主管理文库、执行终端命令、访问本地文件的智能代理——所有变更均需您审批。

MinerU PDF 解析

可使用云端 MinerU 或本地 mineru-api 服务,进行高保真 PDF 解析,保留表格、公式、图表和复杂版式。

独立窗口模式

在独立窗口中打开 LLM 助手,提供全尺寸聊天界面和对话历史侧栏。

文件笔记

将研究笔记保存为 Markdown 文件,可写入 Obsidian、Logseq 或任意本地笔记目录,并保留元数据、引用和图表。

可自定义技能

8 个内置技能引导 Agent 针对常见任务采用合适工作流,支持通过 Markdown 文件创建自定义技能。

Codex 与 Claude Code

通过本地 app-server 使用 Codex,或通过本地桥接服务运行实验性的 Claude Code 对话。


快速开始

  1. Releases 页面下载最新 .xpi 文件。
  2. 在 Zotero 中打开 工具附加组件 → 齿轮图标 → 从文件安装附加组件,选择该 .xpi 文件。
  3. 重启 Zotero。
  4. 打开 首选项llm-for-zotero,选择服务商,填写基础 URL、密钥和模型,然后点击测试连接
  5. 在 Zotero 中打开一篇 PDF,点击右侧工具栏的 LLM Assistant 图标。

如果您不想使用服务商 API 密钥,可以从 WebChatCodex App Server 开始。

环境要求

选择配置方式

目标 推荐路径 是否需要 API 密钥
使用 OpenAI、Gemini、DeepSeek、Moonshot 或其他服务商 在 Zotero 首选项中配置 API 服务商
使用本地模型 连接任意 OpenAI 兼容的本地 HTTP API 通常不需要
在浏览器中使用 ChatGPT 或 DeepSeek 通过 Sync for Zotero 扩展使用 WebChat 不需要
ChatGPT Plus 用户使用 Codex 模型 Codex App Server 不需要单独 API 密钥
在 Zotero 内使用 Claude Code Claude Code 桥接服务 需要 Claude Code 认证
提升表格、公式和图表的 PDF 提取质量 MinerU PDF 解析 建议使用个人 MinerU 密钥

最新更新

感谢 @jianghao-zhang@boltma 对 Codex App Server、Claude Code 和文件上传工作流的重要贡献。


安装

  1. 下载最新的 .xpi 安装包 前往 Releases 页面 下载最新的 .xpi 文件。

  2. 在 Zotero 中安装插件 打开 Zotero → 工具附加组件 → 点击齿轮图标 → 从文件安装附加组件 → 选择 .xpi 文件。

  3. 重启 Zotero 重启 Zotero 完成安装。插件会在每次启动时自动检查更新。

提示
本插件支持 Zotero 7Zotero 8Zotero 9,请确保您运行的是兼容版本。

配置

打开 首选项 → 切换到 llm-for-zotero 标签页。

  1. 选择您的服务商(如 OpenAI、Gemini、DeepSeek)。
  2. 填写 API 基础 URLAPI 密钥模型名称
  3. 点击 测试连接 以验证配置。

服务商与模型配置动图

支持的服务商与协议

预设服务商包括 OpenAIGeminiAnthropicMiniMaxGLMDeepSeekGrokQwenKimiGitHub Copilot。您也可以添加任意自定义 OpenAI 兼容 HTTP 端点,包括 Ollama、LM Studio、vLLM 或远程代理。

插件原生支持以下服务商协议:

协议 说明 主要功能
responses_api OpenAI Responses API 流式输出、工具调用、文件上传、多模态
openai_chat_compat OpenAI 兼容聊天 API 流式输出、工具调用、多模态
anthropic_messages Anthropic Messages API 流式输出、工具调用、多模态
gemini_native Google Gemini API 流式输出、工具调用、多模态
codex_responses Codex App Server / Codex Auth (Legacy) ChatGPT Plus 订阅用户可免单独 API 密钥使用 Codex 模型,推荐选择 Codex App Server
web_sync ChatGPT / DeepSeek 的 WebChat 桥接协议 通过浏览器扩展转发,无需服务商 API 密钥

支持的模型

API 地址 模型 推理等级 备注
https://api.openai.com/v1/responses gpt-5.4 default, low, medium, high, xhigh 支持 PDF 上传
https://api.openai.com/v1/responses gpt-5.4-pro medium, high, xhigh 支持 PDF 上传
https://api.deepseek.com/v1 deepseek-chat default  
https://api.deepseek.com/anthropic deepseek-v4-flash default  
https://generativelanguage.googleapis.com gemini-3-pro-preview low, high  
https://generativelanguage.googleapis.com gemini-2.5-flash medium  
https://generativelanguage.googleapis.com gemini-2.5-pro default, low, high  
https://api.moonshot.ai/v1 kimi-k2.5 default  

任何提供 OpenAI 兼容 HTTP API 的模型均可使用,包括通过 Ollama、LM Studio 或 vLLM 本地部署的模型。

多服务商配置

您可以配置最多 10 个服务商组,每组包含多个模型,从而:

推理等级与超参数

对于支持的模型,您可以为每次请求设置推理等级defaultlowmediumhighxhigh,用于控制模型在回答前的思考深度。

其他可调参数:

参数 说明 默认值
Temperature 控制输出随机性(0 = 确定性,2 = 创意性) 1.0
最大输出 Token 数 限制模型回复长度 2048
输入 Token 上限 限制发送给模型的上下文大小 模型默认值
系统提示词 每次请求前置的自定义指令

使用指南

  1. 在 Zotero 阅读器中打开任意 PDF
  2. 点击右侧工具栏中的 LLM 助手图标以打开侧栏。
  3. 输入问题,例如“这篇论文的主要结论是什么?”

首条消息会将整篇论文作为上下文加载,后续问题则通过检索定位相关段落,保持对话快速且精准。

对话模式

插件支持三种对话模式:

模式 说明
论文对话 针对当前打开的 PDF 进行对话,上下文来自该论文。
全局对话 覆盖整个文库的对话,不限定于某篇论文。
笔记对话 编辑 Zotero 笔记时进行对话,以笔记内容为上下文。

WebChat 模式使用要求

⚠️⚠️⚠️

注意:WebChat 要求

WebChat 模式需要保持浏览器标签页打开,并确保 Sync for Zotero 扩展处于活动状态。请求期间请让浏览器与 Zotero 保持在同一个桌面会话中,尽量不要最小化或后台挂起 WebChat 标签页,并留意绿色连接点 是否显示。

  • 请求运行期间不要关闭 WebChat 标签页。
  • 不要停用、暂停或禁用 Sync for Zotero 浏览器扩展。
  • WebChat 目前仅支持论文对话,暂不支持文库对话。

界面控件


带引用跳转的有据答案

一键从 AI 引用跳转到论文原文

提问时,模型会生成基于论文内容的答案。引用标签会在页码位置经过验证前保持保守;点击已验证的引用或基于原文片段的引用,即可跳回 Zotero 中匹配的段落,方便核实答案并快速定位相关内容。


论文摘要生成

侧栏中即时生成论文摘要

数秒内为任意论文生成简洁摘要。摘要基于完整 PDF 全文生成,您可以自定义提示词,聚焦于研究方法、结果、启示或其他任何方面。


选中文本解释

模型对选中文本进行解释

选中 PDF 中任意复杂段落或专业术语,请模型为其解释。您最多可添加 5 条上下文(来自论文或之前的回答)以进一步细化解释。

可选弹窗会自动建议将选中文本添加到对话,不喜欢可在设置中关闭。


图表解读

基于截图的图表解读

截取任意图形、图表或示意图,请模型进行解读。每次最多支持 10 张截图,适合分析复杂的多面板图表或跨章节对比视觉内容。

提示
解读图表时,建议使用支持图像输入的多模态模型(如 GPT-4o、Gemini Pro、Claude)以获得最佳效果。

跨论文对比

使用斜杠命令进行跨论文对比

在不同标签页中打开多篇论文,并排对比。在输入框中输入 / 可引用其他已打开的论文作为额外上下文,单次对话最多可引用 10 篇论文,实现深度跨文献分析。


外部文档上传

上传外部文件作为额外上下文

从本地磁盘上传文档作为额外上下文,支持格式:


保存至笔记

将模型回答保存到 Zotero 笔记

一键将任意回答或选中文本直接保存到 Zotero 笔记,与您现有的笔记工作流无缝集成,无需手动复制粘贴。


对话历史与导出

将对话导出到 Zotero 笔记

对话会自动保存到本地并与对应论文关联。您可以:


自定义快捷预设

自定义快捷预设配置

创建最多 10 个自定义预设,将常用提示词一键触发。内置预设包括:

您可以修改这些预设或添加自定义内容,以适配您的研究工作流。


独立窗口模式

在独立窗口中打开 LLM 助手,脱离 Zotero 阅读器侧栏。独立窗口提供全尺寸聊天界面,左侧配有可折叠的对话历史面板。

打开方式

方式 操作
快捷键 Ctrl+Shift+L(macOS:Cmd+Shift+L

功能特点

独立窗口打开时,阅读器侧栏面板会显示占位提示,提供聚焦窗口(将独立窗口置于前台)和关闭窗口并返回侧栏两个选项。


文件笔记

除了 Zotero 内置笔记外,Agent 还可以将研究笔记保存为您指定本地目录中的 Markdown 文件。插件不绑定任何特定笔记软件:可以指向 Obsidian 知识库、Logseq 图谱,或普通 .md 文件夹。

配置

打开 首选项llm-for-zotero,滚动到 Notes Directory 部分。

笔记目录设置

设置项 说明 示例
Nickname 在聊天中称呼该目录的名称;当您提到这个名称时,Agent 会识别它 ObsidianLogseq
Notes Directory Path 保存笔记的根目录绝对路径 /Users/me/MyVault
Default Folder 新笔记默认写入的子文件夹;如果您明确要求,Agent 也可以写入其他文件夹 Logs
Attachments Folder 复制图表和图片的目录,相对于笔记目录根路径 Logs/imgs

点击 Test Write Access 验证插件是否有权限写入该目录。

工作原理

使用您配置的昵称要求 Agent 写笔记,例如“总结这篇论文并保存到 Obsidian”“把这篇记录到我的 Logseq”。Agent 将:

  1. 采集内容:从论文中提取元数据、摘要、关键要点,并在可用时加入图表。
  2. 编写 Markdown 笔记:遵循 write-note 技能中的约定。
  3. 添加 YAML 前置信息:匹配 write-note 模板中的 titlecreatedtagscitekeydoijournal;作者信息保留在正文中。
  4. 复制图表(按需):将 MinerU 解析的 PDF 图表复制到附件文件夹。
  5. 写入笔记:保存到 {notes_directory}/{default_folder}/{title}.md

如果您希望笔记保存在 Zotero 内部,Agent 也可以通过 write-note 技能写入 Zotero 条目笔记。只需要求它“为这篇论文保存一条笔记”,不要提到外部笔记目录即可。

Zotero 笔记与文件笔记

Zotero 内部笔记

Obsidian 中渲染的 Zotero 论文笔记

笔记使用 Pandoc 引用语法[@citekey]),兼容 Obsidian 的 Zotero Integration 和 Pandoc 插件,也适用于大多数 Markdown 阅读器。

提示
笔记模板和图表嵌入规则位于 write-note 技能中。打开独立窗口中的 Skills 面板即可自定义。

Agent 模式(Beta)

注意
Agent 模式默认禁用。请在首选项中启用,然后在上下文栏中切换 Agent (beta)

启用后,LLM 将成为一个自主 Agent,可在 Zotero 文库中执行读取、搜索和写入操作。读取工具可直接运行;写入工具会进入确认卡片,并支持撤销。

较长的 Agent 运行具有缓存感知能力。插件会将稳定的 Zotero 上下文和已读取证据,与不断变化的聊天记录分开保存,跟踪哪些论文和段落已经被检查,并在模型上下文填满时自动压缩旧回合。后续问题可以在证据仍然相关时复用这些来源;当缺少所需来源或覆盖层级时,Agent 会重新读取。

文库与 PDF 读取工具

这些工具让 Agent 浏览您的文库、PDF、附件和在线学术资源,不会修改任何内容。

工具 说明
query_library 发现 Zotero 条目和文集:搜索或列举任意条目类型,可按作者、年份、文集、条目类型或标签筛选,浏览文集树,查找相关论文和重复项
read_library 读取一个或多个条目的结构化状态:元数据、笔记、注释、附件和文集归属
read_paper 读取 PDF 文本内容,默认读取开篇章节,也可指定章节索引;单次最多 20 篇论文
search_paper 通过问题在论文中查找证据,返回排序后的相关段落;单次最多 10 篇论文
view_pdf_pages 将 PDF 页面渲染为图像,支持按问题、页码或当前阅读器视图捕获,用于视觉分析
read_attachment 按 Zotero 附件 ID 读取 HTML 快照、文本文件、图片等附件,或将整个文件发送给模型
search_literature_online 从 CrossRef、Semantic Scholar 等在线学术源搜索元数据、推荐、参考文献和引用

文库写入工具

所有写入工具均需人工确认后方可生效。

工具 说明
apply_tags 为一篇或多篇论文添加或移除标签
update_metadata 更新标题、作者、DOI、期刊、摘要等元数据字段
move_to_collection 将论文加入或移出文集
manage_collections 创建或删除文集
manage_attachments 删除、重命名或重新链接损坏的附件文件路径
merge_items 合并重复条目:保留主条目,将子项从其他条目移入,并将重复项移至回收站
trash_items 将条目移至回收站
import_identifiers 通过 DOI、ISBN、arXiv ID 或 URL 导入论文
import_local_files 从本地导入文件到 Zotero;Zotero 会为可识别 PDF 自动抓取元数据
edit_current_note 编辑当前 Zotero 笔记,或用纯文本、Markdown、HTML 创建新笔记
undo_last_action 撤销本次对话中最近一次已确认的写入操作

文件系统与脚本工具

Agent 包含面向本地文件、脚本和 Zotero 运行时自动化的系统级工具。

工具 说明
file_io 读写本地文件系统中的文本和图片文件,支持 offset/length 局部读取
run_command 在本地机器上执行 Shell 命令(macOS 使用 zsh,Linux 使用 bash,Windows 使用 cmd.exe),适合分析脚本和命令行工具
zotero_script 在 Zotero 运行时内部执行 JavaScript;读取模式用于批量取数,写入模式用于自定义变更

典型使用场景:

注意
终端与文件访问工具在执行前均需确认。Agent 会展示它要执行的命令或文件操作,您必须审批后才会运行。

内置动作

Agent 为常见文库管理工作流提供高级动作,自动串联多个工具。

动作 功能说明
文库审计 扫描整个文库或某个文集中元数据不完整、缺少 PDF、缺少标签等问题,并可将报告保存为 Zotero 笔记
自动标签 为当前论文、已选择论文、已选择文集或整个文库推荐标签,并打开可编辑的批量标签审阅对话框
补全元数据 审计目标论文缺失的书目信息,从外部源获取规范元数据,并通过一个审阅卡片确认更新
发现相关文献 通过推荐、参考文献或被引关系查找相关论文
整理未归档条目 查找未归档条目,通过交互式审阅流程归入文集
文献综述 启动引导式文献综述工作流
文库统计 汇总文库或文集的条目类型、年份、作者、期刊、文集、标签、注释和增长趋势等统计信息

MCP 服务器

插件运行内置的 Model Context Protocol (MCP) 服务器,允许外部 AI Agent 和工具以编程方式与您的 Zotero 文库交互。

这意味着您可以将任何兼容 MCP 的 AI Agent(如 Claude Desktop、Cursor、自定义 Agent)连接到您的 Zotero 文库,使用上述所有工具。

Agent 演示

多步骤工作流

Agent 可以串联多个工具完成复杂任务——例如查找论文、读取元数据、搜索相关文献并撰写摘要笔记。

多步骤 Agent 工作流

查找相关论文

Agent 查找相关论文

自动应用标签

Agent 为论文应用标签

撰写笔记

Agent 撰写笔记

安全与审批

所有写入操作均通过人机协作确认流程:


Skills 技能系统

Skills 技能管理面板

Skills(技能)是可自定义的引导文件,用于调整 Agent 处理不同类型请求的方式。每个技能是一个 Markdown 文件,包含正则表达式触发模式:当您的消息匹配某个技能的模式时,该技能的指令会自动注入 Agent 的系统提示词中,引导它使用最高效的工具和工作流来完成任务。

注意
Skills 需要启用 Agent 模式才能生效,在标准聊天模式下无效。

内置技能

插件内置 8 个技能,覆盖常见的研究工作流。首次运行时会自动复制到您的技能文件夹。

技能 触发场景 引导 Agent 执行的操作
simple-paper-qa 关于论文的一般性问题(摘要、发现、作者、TLDR) 读取论文一次后直接回答,避免不必要的检索调用
evidence-based-qa 关于具体方法、结果、数据或论断的问题 先读取论文,再通过定向 search_paper 检索特定证据
analyze-figures 按编号引用图表、表格或示意图 优先使用 MinerU 缓存图像,并将图像直接发送给模型分析
compare-papers 比较或对比多篇论文的请求 批量读取论文,再针对比较要点检索证据
library-analysis 总结、分析或审计整个文库的请求 使用高效脚本遍历文库条目,而非通过上下文分页
literature-review 文献综述或研究综合的请求 发现论文、深度阅读最相关的几篇,并按主题综合
write-note 写作阅读笔记、Zotero 笔记或笔记目录 Markdown 文件的请求 生成带元数据、Pandoc 引用和可选图表复制的笔记
import-cited-reference 导入当前 PDF 中引用文献的请求 提取参考文献,并将选中的引用论文导入 Zotero

工作原理

  1. 在 Agent 模式下发送消息时,插件会将您的文本与每个技能的 match 模式进行匹配。
  2. 如果技能中的任何一个模式匹配成功(OR 语义),该技能的指令会被注入 Agent 的系统提示词中。
  3. 多个技能可以同时激活——如果您的消息匹配了多个技能的模式。
  4. Agent 将这些指令作为工具选择和工作流的引导——技能教会 Agent 如何完成任务,而非定义它能做什么

创建自定义技能

  1. 打开独立窗口Ctrl+Shift+L / macOS:Cmd+Shift+L)。
  2. 点击顶部工具栏中的 Skills 图标打开技能管理面板。
  3. 点击 ”+ New skill” 按钮创建模板文件。
  4. 模板会在默认文本编辑器中打开,编辑以下三个关键部分:
---
id: my-custom-skill
match: /你的正则表达式模式/i
match: /另一个触发模式/i
---

当此技能匹配时,Agent 应遵循的指令。
描述工作流程、优先使用哪些工具以及任何约束条件。
  1. 保存文件。技能会立即加载——无需重启。

技能文件格式:

字段 必需 说明
id 技能的唯一标识符
match 是(至少一个) 正则表达式模式,支持可选标志(igm 等)。可重复——多个 match 行使用 OR 语义
指令正文 结束标记 --- 之后的 Markdown 文本。技能匹配时会注入 Agent 的系统提示词

管理技能

提示
您可以通过交换 .md 文件与他人分享自定义技能。将技能文件放入您的技能文件夹,在下次插件启动或在面板中创建/删除任何技能后即会被加载。

WebChat 配置(ChatGPT & DeepSeek 网页同步)

WebChat 模式通过浏览器扩展将您的问题发送到 chatgpt.comdeepseek.com,再把回复实时流式传回 Zotero。它适合不想配置服务商 API 密钥、但想使用 ChatGPT 或 DeepSeek 网页端的场景。

WebChat 模式连接到 chatgpt.com 的动图

前置条件

配置步骤

1. 下载浏览器扩展:

前往 github.com/yilewang/sync-for-zoteroReleases,下载最新的 extension.zip,解压到电脑上的文件夹。

2. 安装扩展(侧载):

3. 配置插件:

打开 Zotero → 首选项llm-for-zotero

设置项
认证模式 WebChat
模型 chatgpt.comchat.deepseek.com

4. 开始对话:

在浏览器中打开 ChatGPT 或 DeepSeek 标签页并保持打开。在 Zotero 中,插件面板会显示 WebChat 指示器及连接状态点(绿色 = 已连接,红色 = 未检测到)。输入问题并发送即可。

WebChat 功能

注意
WebChat 模式需要保持浏览器标签页打开,并确保 Sync for Zotero 扩展处于活动状态。请让浏览器与 Zotero 保持在同一个桌面会话中,请求期间尽量不要最小化或后台挂起 WebChat 标签页,并留意绿色连接点。WebChat 目前仅支持论文对话,暂不支持文库对话。

技术说明


Codex 配置(ChatGPT Plus 订阅用户)

如果您拥有 ChatGPT Plus 订阅,可以通过 Codex CLI 登录,在插件中免单独 API 密钥使用 Codex 模型。

新用户应在 Agent 标签页中选择 Codex App Server。旧的 Codex Auth (Legacy) 路径仍可供现有用户使用,但计划在 app-server 验证稳定后逐步弃用。

特别感谢 @jianghao-zhang 贡献最初的 Codex Auth 集成,以及 @boltma 设计 Codex App Server 集成。

配置步骤

1. 安装 Codex CLI(一次性操作):

# macOS / Linux(需要 Node.js 18+)
npm install -g @openai/codex

# macOS 替代方案(无需 Node.js)
brew install --cask codex

Windows 用户应在 PowerShell 或命令提示符中安装 Codex,而不是在 WSL 中安装,这样 Zotero MCP 才能使用 Windows 本地回环连接。

2. 登录 ChatGPT 账号:

codex login

浏览器窗口将自动打开——使用您的 ChatGPT Plus 账号登录。凭据保存至 ~/.codex/auth.json

3. 在 Zotero 中启用 Codex App Server:

打开 Zotero → 首选项llm-for-zoteroAgent 标签页:

设置项 推荐值
启用 Codex App Server 集成 On
模型 例如 gpt-5.4
推理等级 autolowmediumhighxhigh

点击测试连接,验证 Zotero 能否启动 codex app-server,然后在聊天标题栏点击 Codex 按钮进入 Codex 对话系统。

Codex App ServerClaude Code 是 Agent 标签页中的互斥运行时模式。启用其中一个之前,需要先关闭另一个。

仍需旧方式的现有用户可以打开 AI Providers 标签页,选择 Codex Auth (Legacy),API 地址保持 https://chatgpt.com/backend-api/codex/responses,模型名称保持不变,例如 gpt-5.5

推荐的 Codex App Server 配置截图

Codex Auth (Legacy) 技术说明


Claude Code 配置(实验性)

Claude Code 模式会将 Claude Code 作为 Zotero 内部独立的对话系统运行。它复用熟悉的侧栏和独立窗口界面,但拥有独立的对话历史、paper / open 范围状态、模型/推理设置、权限语义、斜杠命令和项目技能。

仍在开发中
Claude Code 模式目前不支持从 Claude Code 直接执行原生 Zotero API 操作。需要结构化读取条目、编辑笔记、打标签、更新元数据或导入条目等原生 Zotero 文库工具时,请使用内置 Agent 模式。Claude Code 的原生 Zotero API 支持计划在后续版本加入。

前置条件

1. 安装并验证 Claude Code

按照 Anthropic 官方说明安装 Claude Code,然后运行:

claude

继续之前,请先完成 Claude Code 中的登录或认证提示。

2. 启动 Zotero Claude 桥接服务

Claude Code 模式依赖配套桥接仓库 cc-llm4zotero-adapter。桥接服务不会替代 Claude Code;它只是把 Zotero 连接到您本地的 Claude Code 运行时。

git clone https://github.com/jianghao-zhang/cc-llm4zotero-adapter.git
cd cc-llm4zotero-adapter
npm install
npm run build
npm run serve:bridge

在另一个终端中检查桥接服务是否存活:

curl -fsS http://127.0.0.1:19787/healthz

如果您使用 macOS,并希望桥接服务在后台长期运行,可以在适配器仓库中安装 LaunchAgent:

./scripts/install-macos-daemon.sh

常用后台服务命令:

npm run daemon:status
npm run daemon:start
npm run daemon:stop
npm run daemon:restart
npm run daemon:uninstall

如果 Claude Code 模式无响应,请先重启桥接服务,并重新检查 /healthz/healthz 通过只说明适配器正在运行;它不能证明底层 claude CLI 已安装、已认证或配置正确。

3. 在 Zotero 中启用 Claude Code

打开 Zotero → 首选项llm-for-zoteroAgent 标签页。

设置项 推荐值
启用 Claude Code 集成 On
Bridge URL http://127.0.0.1:19787
Claude Config Source default — user + project + local
Permission Mode safe
Default Model sonnet
Default Reasoning auto

除非您已经熟悉 Claude Code 的设置层级,否则建议保持 Claude Config Sourcedefault。在 default 下,Claude Code 会同时使用您的用户级设置、Zotero 管理的项目级设置和每个对话的本地设置。

启用集成后,在聊天标题栏点击 Claude Code 按钮即可进入 Claude Code 模式。Claude 对话系统与上游聊天和内置 Agent 相互隔离,因此切换模式时会打开对应系统自己的对话历史,而不会混合不同运行时的 transcript。

4. 准备 Claude 项目技能与命令

Zotero 会在您的用户目录下创建 Claude 运行时根目录,通常类似:

~/Zotero/agent-runtime/profile-.../

在该运行时根目录中,共享 Claude 项目资产位于:

CLAUDE.md
.claude/settings.json
.claude/skills/
.claude/commands/

每个 Claude 对话还会在运行时 scopes/ 树下拥有自己的本地 .claude 文件夹,因此单个对话的本地覆盖不会泄漏到其他聊天。您可以手动把共享 Claude 技能放入 .claude/skills/.claude/commands/,但通常更简单的做法是直接让 Claude Code 在 Zotero 项目级 Claude 配置中创建或安装技能。

非 Anthropic 原生 Claude Code 配置

Zotero UI 中显示的 opussonnethaiku 是能力层级,不要求底层一定是 Anthropic 托管模型。如果您通过兼容的 provider 层或代理路由 Claude Code,请在 Claude Code 自身配置中完成;Zotero 只负责选择层级并把请求转发给桥接服务。


MinerU PDF 解析

MinerU 是一款先进的 PDF 解析引擎,可从 PDF 中提取高保真 Markdown,同时保留表格、公式、图表和复杂版式——这些内容在标准文本提取中往往会被破坏。

MinerU PDF 解析结果截图

解析结果会缓存在本地,并在后续对话中复用。启用 Auto-parse newly added items 后,新添加的 PDF 附件会在进入 Zotero 文库时发送给 MinerU 解析。如果不启用自动解析,也可以在 Manage Files 面板中手动解析选中或过滤后的 PDF。

MinerU 缓存是为 AI 准备的,不是第二套给人阅读的 PDF 界面。Zotero 仍然是阅读、标注和管理原始 PDF 的地方。MinerU 会生成模型更容易使用的结构化旁路材料:干净的 Markdown、章节范围、页码提示、表格、公式和提取出的图像资源。这样可以尽量不打扰原有 Zotero UI,同时为助手提供比普通 PDF 文本提取更好的论文上下文。

启用方法

  1. 打开 Zotero → 首选项llm-for-zotero
  2. 找到 MinerU 部分,勾选启用 MinerU
  3. 保持云端模式,或勾选 Use local MinerU server 使用本地模式。
  4. 云端模式下,可选填入您自己的 MinerU API 密钥。
  5. 本地模式下,运行自托管 mineru-api 服务;除非服务使用了其他地址,否则保持默认 Base URL http://127.0.0.1:8000
  6. 如果希望新导入的 PDF 自动解析,请勾选 Auto-parse newly added items。之后将 PDF 添加或导入 Zotero 文库,插件会通过 MinerU 解析新添加的 PDF 附件,并缓存结果供后续对话复用。

使用自有 API 密钥

MinerU 可通过内置 API 在没有密钥的情况下启动,但强烈建议配置个人密钥。内置 API 可能在 2026 年 6 月 1 日 之后不再受支持。

获取免费个人密钥:

  1. 前往 mineru.net 注册账号。
  2. 在账号设置中生成 API 密钥。
  3. 将密钥粘贴到 Zotero → 首选项llm-for-zoteroMinerU
  4. 点击测试连接以验证。

提供个人 API 密钥后,插件将直接调用 https://mineru.net/api/v4

使用本地 MinerU 服务

本地 MinerU 服务支持由 @renyong18PR #152 中贡献。

本地模式会通过 POST /file_parse 将 PDF 发送到自托管 mineru-api 服务,并把返回的 ZIP 输出保存为与云端解析相同的本地缓存格式。默认 Base URL 为 http://127.0.0.1:8000

本地模式前置条件:

  1. 安装 MinerU 并运行 mineru-api;安装方式请参考 MinerU 文档
  2. 确保所需模型已经下载。mineru-api 会在首次请求时懒加载模型,因此启动服务后第一次解析,或切换 backend 后第一次解析,通常会比稳定状态更慢。

本地设置中可以选择 Backend

Test Connection 只检查服务进程是否在 /health 响应;它不能保证所有模型已经预热完成。

使用默认 127.0.0.1 地址时,PDF 会留在本机。如果您把 Base URL 改为局域网或远程服务器,PDF 会被发送到该服务器。

暂停 / 取消限制: mineru-api 没有提供取消或 DELETE 端点,只提供 POST /file_parsePOST /tasksGET /tasks/{id}GET /tasks/{id}/resultGET /health。点击 Pause 后,插件会暂停队列并中止 HTTP 等待,但服务器上已经开始的解析仍会继续运行直到结束,GPU/CPU 计算不会立刻停止。如果需要立即中止,例如想立刻切换 backend,请自行重启 mineru-api 进程。

管理 MinerU 缓存

MinerU 首选项标签页包含 Manage Files 面板,用于维护已解析的 PDF 缓存:

自动缓存管理是事件驱动的。插件监听 Zotero 条目添加事件,识别普通论文条目下的 PDF 附件或独立 PDF 附件,并在处理前短暂等待,让 Zotero 完成文件导入。如果 Zotero 条目已经出现,但 PDF 文件路径或父条目的附件列表还没准备好,队列会按短延迟重试,而不是立刻判定失败。已删除的附件会从队列移除,已经有缓存的 PDF 会被跳过。

自动队列和批量解析使用同一套过滤规则。它会跳过已经有本地 MinerU 缓存或可用同步包的 PDF,避免重复入队,并通过 MinerU 状态点显示 ready、processing 或 failed。普通元数据修改不会反复重解析已经完成的 PDF;modify 事件主要用于恢复正在处理、失败或文件尚未就绪的情况。

解析成功后,插件会在 Zotero 数据目录下的 llm-for-zotero-mineru/<attachmentId>/ 写入缓存。核心文件包括 full.mdmanifest.jsoncontent_list.json、提取出的图像等资源,以及记录来源的 _llm_source.jsonmanifest.json 是为 AI 访问设计的:它把章节标题映射到字符范围、页码提示和章节级图表,让 Agent 可以按问题读取 full.md 中相关片段,而不是每次都加载整篇论文。

写入 MinerU 缓存后,插件会清理该 PDF 旧的内存文本缓存和嵌入缓存。下一次提问会使用 MinerU 质量的文本块,并基于更好的解析文本重新生成检索数据。

高级解析过滤器可以在自动解析或批量解析前跳过文件:

如果启用 Sync MinerU cache with Zotero file sync,插件可以创建包含 full.mdmanifest.jsoncontent_list.json 和提取资源的配套 ZIP 附件。同步是可选功能,默认关闭。已有本地缓存只会在您从 MinerU 标签页主动请求时同步;同步包也可以在需要时恢复缺失的本地缓存。修复流程会验证同步包的元数据和内容哈希,清理同一来源 PDF 的重复同步包,移除孤立的本地缓存,并从可用的同步 ZIP 中恢复本地缓存文件夹。


隐私与数据流


故障排查

现象 检查项
测试连接失败 确认基础 URL、API 密钥、模型名称和服务商协议。
助手看不到论文 重新打开 PDF 标签页,然后发送新消息,让插件重建上下文。
WebChat 显示红点 保持 ChatGPT 或 DeepSeek 标签页打开,并确认 Sync for Zotero 扩展已加载。
Codex App Server 失败 运行 codex login,确认 codex 位于 PATH 中,然后再次点击测试连接
Claude Code 模式卡住 重启桥接服务,并检查 curl -fsS http://127.0.0.1:19787/healthz
MinerU 解析失败 云端模式下添加个人 MinerU API 密钥;本地模式下确认 mineru-api 服务能在 /health 响应,然后重新尝试测试连接

如果遇到 Bug 或难以判断的问题,请在 GitHub 上 提交 Issue


路线图


常见问题

是否免费使用?

是的,插件完全免费且开源(AGPL v3)。您只需为调用所选服务商的 API 付费。使用 Codex App Server 时,ChatGPT Plus 订阅用户无需单独 API 密钥。

是否支持本地模型?

支持——任何提供 OpenAI 兼容 HTTP API 的模型均可使用,包括通过 OllamaLM StudiovLLM 等工具本地部署的模型。在设置中填写本地 API 地址和模型名称即可。

我的数据是否会用于训练模型?

插件本身不会训练模型。数据处理取决于您选择的后端:配置的 API 服务商、本地模型、WebChat、Codex、Claude Code 或 MinerU。

能否同时使用多个模型?

可以。配置最多 10 个服务商组,每组包含多个模型,通过模型选择器在对话中随时切换。

上下文检索是如何工作的?

首条消息会加载论文全文作为上下文,后续问题使用混合检索(BM25 + 嵌入向量搜索)并结合多样性优化,定位最相关段落,保持响应快速准确。

如何报告 Bug 或提交功能请求?

请在 GitHub 上 提交 Issue


贡献与支持

欢迎贡献!无论是 Bug 反馈、功能请求还是 Pull Request——欢迎在 GitHub 上提交 Issue 或 PR。

如果本插件对您有帮助,欢迎:

支付宝捐赠二维码


Star 趋势

Star History Chart