用 Paperclip 管理科研文献工作区:仓库(Repo)、剪贴板(Clipboard)与个人图书馆(Library)实战指南
2026/9/17 12:19:48 网站建设 项目流程

用 Paperclip 管理科研文献工作区:仓库(Repo)、剪贴板(Clipboard)与个人图书馆(Library)实战指南

【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000+ scientists worldwide. 165 ready-to-use validated skills plus 100+ scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills

导读

Paperclip 将约 1100 万篇全文论文、21.7 万+ 监管文件、11 万+ 临床试验方案与 57.4 万+ 蛋白质条目暴露为一个只读虚拟文件系统,供 Agent 以 Unix 命令方式检索与阅读。本文聚焦该工具在科研工作区管理上的三大核心设施——论文仓库(Repo,用于追踪文献与可验证声明)、剪贴板(/clipboard/,用于存放上传 PDF 与生成文件)、个人图书馆(Library,用于收录所有导入条目)——并完整覆盖repo/gituploadsyncimportlibrarysharefetch等命令族的用法、验证流程与已知缺陷。读完本文,你将掌握如何组织一次带行号级引用的系统综述、如何把验证通过的声明沉淀进仓库并导出 BibTeX/RIS,以及如何管理属于自己的文献工作空间。本文内容以 repos-and-workspace.md 为主体,结合 SKILL.md 与 cli-reference.md 中的命令表与验证记录展开。

三个容易混淆的存储空间

Paperclip 里有三个彼此独立、各司其职的存储位置,是理解整个工作区模型的第一步:

存储空间存放内容命令族
Repo(仓库)论文成员关系 + 可验证的claims(声明)repo/git
Clipboard(剪贴板)/clipboard/上传的 PDF、语料库链接、以及你生成的文件uploadcpsyncmkdirrm
Library(图书馆)你导入的每一篇论文(无论是否与语料库匹配)libraryimport

两个最容易被误解的点:

  • 仓库不会把论文复制进剪贴板。仓库记录的是"这篇论文属于这个集合"的成员关系与声明元数据,而不是文件本身。
  • repo commit不会保存任何文件。它保存的是声明元数据快照。要持久化你生成的产物(报告、图表、CSV),唯一途径是paperclip upload(详见下文"保存你生成的文件"一节)。

原文档中的所有示例均省略了认证前缀,实际调用时必须携带:

[ -f .env ] && { set -a; . ./.env; set +a; }; paperclip <command>

[ -f .env ]守卫是必需的:对不存在的文件直接执行. ./.env会让 POSIX shell 直接退出,从而静默丢弃你整条命令。加守卫后,无论.env是否存在、密钥是否已存在于环境中、在sh还是bash下都安全。该前缀需要出现在每一条命令前,因为 shell 状态不会在两次调用之间保留,漏掉前缀会导致 Paperclip 静默回退到 OAuth 身份(详见 SKILL.md 中的"操作规则")。

注意:本文命令转录自 paperclip 0.7.14–0.7.15 的--help,撰写时并未逐条执行。长任务前请用paperclip <cmd> --help复核。

仓库是 opt-in 的:不要擅自创建

除非用户明确要求,不要自行创建、加入或提交仓库。默认情况下,每一次查询——无论是简单查找还是完整综述——都是直接读取文本行并引用。仓库的存在是为了用户明确要求以下场景时才使用:

  • 追踪一个文献集合;
  • 构建系统综述(systematic review);
  • 验证声明(claim verification)。

如果某条命令打印出遗留的[repo: <name>]横幅,直接忽略它——把不相关的论文追加进别人的既有仓库,是对其工作的静默污染。如果活动仓库与当前请求不匹配,要么新建一个,要么执行paperclip repo checkout -来停用。

对于系统综述或定量 meta 分析,在创建仓库之前先加载paperclip skills show paperclip-meta-analysis。该工作流要求结构化的、锚定行号的 JSON claims 与确定性的编译/QA 步骤;普通仓库里的自由文本 claims 是合法的,但无法汇总为效应量(poolable effect estimates)。

仓库基础操作

paperclip gitpaperclip repo是同一个功能:

  • git暴露核心子集:initaddcommitstatuslogbranchmergeswitch
  • repo在其之上增加checkoutremoveclaimshistorycitationsexportinfo
paperclip repo init my-review # 创建并激活 paperclip repo # 列出最近 10 个仓库 paperclip repo -n 0 # 列出全部 paperclip repo info my-review paperclip repo checkout other-repo # 优先切换分支,否则切换仓库 paperclip repo checkout - # 停用

完整命令一览(转录自 cli-reference.md 的 Repos 小节):

命令用途
repo init <name>创建仓库
repo checkout <name>切换分支,否则切换仓库;-停用
repo add <id> ["claim"] [--lines L45-L52] [--json '{...}']添加论文,可附带声明
repo remove <id>移除论文
repo commit -m "msg" [--no-verify]快照并验证未核验的声明
repo status论文、声明、[OK]/[X]标记
repo claims以 JSON 输出声明(含 doc id 与行锚点)
repo log提交历史
repo history命令审计轨迹(搜索、map 等)
repo branch <name>创建并切换到分支
repo merge <branch>将分支论文并集并入当前分支
repo info <name>单个仓库详情
repo citations通过 Semantic Scholar 获取引用计数与图谱
repo export bibtex\|ris\|csv\|markdown导出活动仓库
repo/repo -n 0列出最近 10 个 / 全部仓库
repos-feature整体启用或禁用仓库功能

活动仓库是粘性的(sticky),会跨命令保持。若只想对单次调用限定仓库,而不改变粘性状态,有三种方式:

paperclip --repo other-repo search -s pmc "query" # 使用该仓库,不改变粘性状态 paperclip --repo-only search -s pmc "query" # 只搜索该仓库的论文 paperclip search -s pmc "query" --corpus # 即使有活动仓库,也搜索整个语料库

注意--repo--repo-only要放在子命令之前paperclip --repo-only search -s pmc "query"。默认情况下,即使有活动仓库,search也覆盖整个语料库——仓库只用于打标签。

Claims:可验证的声明

仓库的核心价值在于声明(claim)与验证。声明通过repo add附加到具体论文上:

paperclip repo add PMC10945750 "LNP delivery achieved 70% editing in hepatocytes" --lines L45-L52 paperclip repo add bio_456 "Off-target rate below 0.1%" paperclip repo add PMC123 # 仅成员关系,永不验证 paperclip repo add PMC123 --json '{"type":"effect_size","value":0.42,"ci":[0.31,0.55]}' --lines L88

关键规则:

  • --lines将声明锚定到具体行,使验证更快更准。只要知道声明出处,就应该提供它;
  • 每次带声明的add都会创建一条新条目。对同一论文 id 反复调用add可以挂载多条声明;
  • 更正声明:paperclip repo remove <id>后重新add修正后的文本;
  • --json允许存放调用方自定义的结构化声明,而不让仓库变得领域专用(例如存放效应量、置信区间)。

查看全部声明:

paperclip repo claims # 所有声明以 JSON 输出,含 doc id 与行锚点

提交与验证流程

paperclip repo commit -m "Initial citations" paperclip repo commit -m "Snapshot" --no-verify paperclip repo status paperclip repo log paperclip repo history # 搜索、map 等命令的审计轨迹

关于commit的三个事实:

  1. commit永远成功——它是一个元数据快照,同时会并行对未核验的声明做全文验证;
  2. 每条声明验证后返回[OK](得到支持)或[X](不支持)。[X]只是建议性的,不会阻止提交
  3. 已经验证过的声明在后续提交中不会重复检查。

在写出最终答复前必须运行repo status,并且只引用[OK]的声明。对每条[X],要么改写声明以贴合论文实际表述,要么另找来源,要么直接丢弃。

完整工作流:从创建到交付

下面是把一次文献综述走完的标准流程(含修复步骤):

# 1. 创建 paperclip repo init my-review # 2. 查找与阅读 paperclip search -s pmc "topic A" -n 10 paperclip map --from s_xxx "What was the main finding and the sample size?" # 3. 添加你打算引用的声明 paperclip repo add PMC123 "Key finding X" --lines L45-L52 paperclip repo add bio_456 "Key finding Y" # 4. 提交——逐条对照全文验证 paperclip repo commit -m "Initial citations" # 5. 检查 paperclip repo status # [OK] PMC123 claim: Key finding X # [X] bio_456 claim: Key finding Y — paper says Z instead # 6. 修复 paperclip repo remove bio_456 paperclip repo add bio_456 "Key finding Z" --lines L80 paperclip repo commit -m "Fix bio_456 claim" # 7. 确认全部 [OK],再开始写作 paperclip repo status

分支:在不污染主线证据的情况下探索

仓库默认在main分支上。当你需要探索一个侧面问题(例如安全性)时,分支可以避免污染主证据线:

paperclip repo branch safety-concerns # 创建并切换;分叉当前论文集合 paperclip repo add PMC789 "Drug X causes hepatotoxicity in 12%" --lines L200-L210 paperclip repo commit -m "safety claims" paperclip repo checkout main # main 不受影响 paperclip repo merge safety-concerns # 论文取并集

repo checkout <name>会先在当前仓库内尝试切换分支,失败后再回退到切换仓库。merge对论文取并集。

导出与引用图谱

paperclip repo export bibtex > review.bib paperclip repo export ris > review.ris paperclip repo export markdown > review.md paperclip repo export csv > review.csv paperclip repo citations # 通过 Semantic Scholar 统计引用数与图谱

repos-feature可整体启用或禁用仓库功能。导出的review.bib/review.ris可直接接入 citation-management 等引用管理工作流。

Clipboard:你的个人文档空间

/clipboard/是个人文档空间,与语料库使用同一套检索工具:

paperclip mkdir /clipboard/my-review paperclip cp /papers/PMC10945750 /clipboard/my-review/ # 零拷贝语料库链接 paperclip cp ~/local/papers/ /clipboard/ # 上传本地 PDF paperclip ls /clipboard/ paperclip ls /clipboard/my-review paperclip head -40 /clipboard/my-review/<id>/content.lines paperclip search "deep learning" -s clipboard paperclip rm /clipboard/my-review/<id> # 移除单个文档 paperclip rm /clipboard/my-review -R # 软删除整个文件夹

语料库链接是符号化的:读取链接论文的content.lines会代理到原始论文,因此不产生任何重复副本,行号也保持稳定。这一点与仓库"不复制论文"的设计互为呼应。

文档化的限制:仅支持 PDF、单文件 20 MB、每人 10,000 篇文档、50 GB 存储。

保存你生成的文件

paperclip upload analysis.json --into analyses/my-topic paperclip upload index.html render_qa.json --into analyses/my-topic

这是唯一持久化生成文件的途径。repo commit只记录声明元数据,不存储任何文件。JSON、HTML、CSV、MD、PDF 均被接受。upload的通用语法为upload FILES... --into FOLDER

同步本地文件夹

paperclip sync upload ~/my_papers/ # 一次性上传文件或文件夹 paperclip sync add ~/my_papers/ # 注册文件夹以持续同步 paperclip sync run # 上传新增/修改的 PDF paperclip sync list paperclip sync status paperclip sync remove ~/my_papers/ # 取消注册;远端文档保留 paperclip sync rm my_papers # 从剪贴板删除 paperclip sync rm --all paperclip sync import refs.bib

分享

paperclip share my_papers colleague@example.com paperclip share my_papers colleague@example.com --role editor paperclip unshare my_papers colleague@example.com

share会把用户的文档授权给另一个人。运行前必须与用户确认文件夹和收件人(默认角色为viewer--role editor授予编辑权限)。

Import:三种截然不同的工作

import实际上覆盖三种不同的任务,其中第三种最出人意料:

# 1) PDF → 个人图书馆 paperclip import paper.pdf paperclip import ~/papers/ # 递归 paperclip import ~/papers/ --dry-run # 2) 参考文献文件 → 图书馆,或剪贴板文件夹中的语料库链接 paperclip import refs.bib paperclip import refs.ris --dry-run paperclip import refs.bib --into /clipboard/thesis-refs paperclip import refs.bib --init my-review # 从该文件创建仓库 paperclip import refs.bib --add-to-repo # 同时加入活动仓库 # 3) 一篇论文的 REFERENCES(通过 Semantic Scholar)——注意不是论文本身 paperclip import PMC11282385 paperclip import PMC11282385 --min-cites 50 paperclip import PMC11282385 --dry-run

paperclip import <paper-id>导入的是该论文的参考文献,而不是论文本身。想保存你找到的论文,请使用paperclip cp /papers/<id> /clipboard/<folder>/

完整选项:--doi-n/--limit--min-cites--dry-run--init NAME--add-to-repo--into。任何超过几篇参考文献的导入,先跑--dry-run

Library:个人图书馆

paperclip library # 所有已导入条目 paperclip library PMC11166971 # 单篇论文详情 paperclip library --matched # 仅语料库关联条目(✓) paperclip library --unmatched # 仅书目元数据条目(○) paperclip library --rematch # 重试匹配未匹配条目 paperclip library -s "fine-tuning" # 按标题、作者、期刊关键词搜索 paperclip library --remove PMC123456

未匹配的条目仍保留标题、作者、年份、DOI 与期刊,因此即使没有全文支撑,它们依然可被搜索、可被导出。语料库更新后值得重跑--rematch——之前未匹配的条目可能在新一轮更新中匹配成功。

Fetch:抓取 Paperclip 没有的论文

paperclip fetch https://www.nature.com/articles/s41586-023-05724-2 paperclip fetch 10.1038/s41586-023-05724-2 paperclip fetch https://arxiv.org/abs/2301.00001 --into /clipboard/my-review/

fetch使用你的浏览器 cookies下载并把结果加入剪贴板,因此能触达机构订阅的付费内容。它是以用户的凭证作用于出版方站点——只有当用户明确要求某篇特定论文时才可运行(SKILL.md 的"操作规则"将fetch列为交互式命令:无 TTY 环境下它需要用户在浏览器中完成授权)。

数据出口与安全边界

仓库、上传与导入命令会把本地内容发送到服务端,或以用户身份对外行动。对照 SKILL.md 的"Repositories, uploads, and data egress"表,以下命令必须只为用户点名的具体文件或收件人运行,绝不自行对整目录发起,也绝不擅自动手:

命令会流出什么
paperclip upload FILE --into ...该文件
paperclip cp ~/path /clipboard/那些本地 PDF
paperclip sync add/sync run整个已注册文件夹,持续性地
paperclip import ~/papers/递归发现的每个 PDF——先--dry-run
paperclip share FOLDER EMAIL授予他人访问用户文档的权限
paperclip fetch URL用用户浏览器 cookies以用户身份下载

只读语料库操作(searchgrepcatmap)只发送查询本身。

实战中的已知缺陷与避坑

结合 SKILL.md 在 0.7.14/0.7.15 上实测验证的缺陷清单,以下问题会直接影响仓库与工作区使用,官方文档可能标注为可用但实际并非如此:

缺陷规避方式
paperclip bash '...'把整串内容当作单个命令名正常传参即可
Paperclip 内部的管道/重定向(\|>)会作为文件名传给grep在自己的 shell 里接管道:paperclip grep X file \| head -20
/.gxl/下的文件ls可见但cat报 "No such file"paperclip results <id>results <id> --save out.csv
cd在两次调用间不持久使用绝对路径,一切从/papers/解析
reduce --strategy table返回的是散文而非表格自己用paperclip results m_<id>构建表格
二进制读取cat fig.jpg > out.jpg产生U+FFFD乱码ask-image,或把meta.json中的出版方 URL 交给用户

最严重的一个:reduce输出的散文内嵌{{"document_id": "PMC12388", "line": 5}}标记,其 id 被截断为 8 个字符且无法解析——真实论文是PMC12388858。据此构造的引用 URL 是死链。id 一律取自searchresultsmeta.json

其他与工作区相关的注意事项:

  • head/tail只对.lines文件有效,对meta.json不输出任何内容,读meta.json请用cat
  • 搜索片段(snippet)不是证据,是生成的摘要,引用前必须打开原始行;
  • CLI 可能在命令中途自更新(打印[paperclip] Updated 0.7.14 → v0.7.15),无害,但长时间脚本运行期间版本可能变化;
  • 持久化的源过滤会收窄每条命令——如果跨源搜索都为空,检查paperclip config --sources-list

小结

三个存储空间构成 Paperclip 工作区模型的完整闭环:仓库负责把"这篇论文属于该综述 + 这条声明得到了行级验证"沉淀为可提交、可分支、可导出的结构化证据;剪贴板负责承载上传的 PDF、零拷贝语料库链接与上传产物,与语料库共用一套检索工具;图书馆则忠实记录每一次导入(无论匹配与否),并支持--rematch在语料库更新后补齐匹配。正确运用repo status[OK]/[X]验证结果、为声明提供--lines行锚点、用--dry-run守护大规模导入、以upload(而非repo commit)持久化生成文件,就能构建一条从检索到验证再到引用的完整证据链。更多细节可继续阅读 search-and-retrieval.md(filter、SQL schema 与检索语义)、map-reduce.md(map/reduce 管线与结果导出)以及 installation.md(安装与认证)。

【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000+ scientists worldwide. 165 ready-to-use validated skills plus 100+ scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询