让你的小龙虾自动去 arXiv 找论文,然后存进 Zotero

张开发
2026/4/17 12:58:43 15 分钟阅读

分享文章

让你的小龙虾自动去 arXiv 找论文,然后存进 Zotero
GitHubhttps://github.com/ucaspyx/arxiv-to-zotero最近做了一个给 OpenClaw 用的 skillarxiv-to-zotero。它的功能很简单从 arXiv 找论文和 Zotero 现有条目做去重然后把新的导进去。安装跟你的小龙虾说——去clawhub上安装 arxiv-to-zotero 这个 skill配置第一次使用自动配置只要按照小龙虾的提示去做这个 skill 其实还有个“曾用名”——find-paper-to-zotero。一开始我的想法更“大而全”希望它能接多个论文来源再自动导入 Zotero但后来做着做着发现自动化工具最重要的不是功能多而是边界清楚、行为稳定。所以最后我把它收敛成了现在这个版本只做 arXiv Zotero 这条链路把最核心的流程先做稳。arxiv-to-zotero 简介这个 skill 最适合的场景不只是临时查论文更是放进日常科研工作流里。比如设一个定时任务每天早上让小龙虾检查最近一天的 arXiv新论文自动去重后导入 Zotero。这样你打开 Zotero 的时候当天值得看的论文已经在那里了不需要自己再去 arXiv 翻一遍。比如你可以这样用帮我找近三年来用 Mamba 做股票预测的论文并把新的导入 Zotero。或者做成定时任务每天早上 8 点检查近一天 graph neural network 相关 arXiv 论文只把新的导入 Zotero。它现在的核心流程很简单用户给出研究主题和时间范围Agent 调用大模型构造查询语句python 脚本按照给定查询语句通过 arXiv API 拉取结果和你 Zotero 账号里现有的条目做去重导入新的论文附 PDF或链接这里我比较喜欢的一点是用户只需要用自然语言说出需求而不需要自己写复杂的查询语句。你只需要告诉它“想找什么、找多久”剩下的事情由 skill 在内部完成。如果要和前身find-paper-to-zotero做个简单对比那就是现在这个版本更克制也更明确。它不追求“什么都搜一点”而是专注把“arXiv 找论文 Zotero 去重导入”这件事做好。制作过程中踩过的坑这个 skill 做下来踩坑其实不少不过回头看大多都挺典型。第一个问题是钞能力会影响 skill 测试效率。因为不舍得 token我用的是某包月大模型刚买几天还好后面限速越来越严重于是经常会出现一种情况到底是 skill 写崩了还是模型这边先卡了一开始根本分不清。最后的解决方案是早起/半夜搞还是没舍得花 token 钱第二个感受是Agent 的发挥其实是不可控的。最初的版本里我只写了一个SKILL.md文档想把更多事情交给 Agent 自由处理。后来发现它会受到各种不可控因素而影响发挥的稳定性比如网络因素、大模型发挥、其他任务的干扰、上下文长度过大等。所以后面我干脆反过来做把能写死的活都交给 python 脚本然后教会 Agent 处理代码的输入输出。这样虽然笨一点但稳定性大幅提高。还有一个很现实的问题是Zotero 的存储限制。最开始我想直接把 PDF 上传进去测试了好几天越往后发现 PDF 越上传失败。后来才意识到免费账户只有 300MB而且通过 API 上传的 PDF 只能走这 300MB不能走WebDEV。所以后面改成了更实际的策略能传就传传不了就保存 PDF 链接。中间我还试过接 Semantic Scholar想让信源更多一点。结果刚开始就先被限速教育了一遍后面想申请 API官方拒绝速度让我一度以为验证码没填对。最后还是回到了 arXiv 这条最稳定的链路上。另外论文去重一开始也走过弯路。最早的思路是“来一篇查一次 Zotero”逻辑简单但一旦时间窗口拉长搜到的论文变多一条一条请求就很笨。后面改成了先做本地缓存再在本地比较整体就顺畅多了。总之这个 skill 给我最大的感受就是自动化工具要想真正可用很多时候靠的不是加功能而是做减法。skill的工作原理先看整体流程用户给出关键词和时间范围Agent 组织查询检索 arXiv读取 Zotero 现有条目本地去重比较导入新论文到 Zotero附加 PDF 或 PDF 链接整个流程其实不复杂可以按下面几步理解。1. 用户输入需求用户不需要自己写检索语句只需要用自然语言告诉 skill你想找什么方向、想看多久之内的论文。比如帮我找近两年 graph neural network 用于 TSP 的 arXiv 论文并导入 Zotero。2. Agent 组织查询并访问 arXiv拿到用户需求后Agent 会在内部整理关键词和时间范围然后去 arXiv 拉取论文结果。返回的信息通常包括标题、作者、摘要、链接、PDF 地址等。3. 读取 Zotero 条目并做去重拿到 arXiv 结果之后不会直接往 Zotero 里塞而是先读取 Zotero 里已有的相关条目放到本地做比较。比较时主要参考的是标题前缀判断这篇论文是不是已经在库里了。已经有的就跳过没有的再继续处理。4. 导入新论文确认是新论文之后skill 会把论文的基本信息写进 Zotero包括标题、作者、摘要、年份、链接等内容。这样 Zotero 里就会多出一个新的论文条目。5. 处理 PDF如果能直接处理 PDF就把 PDF 一起挂到条目下面如果不方便直接上传就退一步保存 PDF 链接。这样至少 Zotero 里的论文条目是完整可用的后面点开也方便。所以整个 skill 的核心思路其实很简单先从 arXiv 找论文再和 Zotero 做一次比对最后只把真正新的内容放进去。小结这个 skill 从find-paper-to-zotero迭代到arxiv-to-zotero最后留下来的并不是什么特别花哨的功能而是一条比较朴素但很实用的流程给定主题和时间范围自动检索 arXiv和 Zotero 去重只导入新的顺手处理 PDF我现在对它的理解也很简单它不是一个大而全的论文助手而是一个能稳定嵌进日常科研工作流的小工具。对我来说这个 skill 最大的意义也不在于“做了一个多复杂的功能”而是把一件原本会重复去做的事情真正变成了一条可以自动跑起来的流程。

更多文章