mcpField
S
skill-find-papers

skill-find-papers

github.com/funfun412生产力73131 次安装1 周前更新
代码仓库

关于 skill-find-papers

skill-find-papers 是用于定期发现、筛选和精读论文的研究工作流技能,面向希望按研究兴趣跟踪文献的用户。它结合 Scholar MCP 检索、反馈偏好记录和 Feishu 文档归档,并支持处理用户提交的论文。

主要功能

  1. 01按兴趣发现近期论文与经典论文
  2. 02依据期刊和会议标准筛选
  3. 03记录反馈并调整主题偏好
  4. 04将精读论文归档到 Feishu
  5. 05处理用户提交的论文 PDF 或链接

适用场景

  1. 01每周整理符合研究方向的论文推荐
  2. 02根据阅读反馈调整后续检索主题
  3. 03分析提交的论文并纳入精读文档

MCP 相关

工作流要求配置 scholar_mcp MCP 服务,用于文献检索、元数据和引用查询、PDF 获取及论文分析。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/funfun412/skill-find-papers --skill skill-find-papers

安装后在 Claude Code 中输入/skill-find-papers确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
output-contract.md
scripts/
paper_state.py

详细介绍

技能:查找论文

发现 5 篇近期高质量论文和 1 篇经典论文,根据用户反馈持续学习,并将选定的深度阅读内容归档到飞书。

必需工具

  • 使用已配置的 scholar_mcp MCP 服务进行文献发现、元数据查询、引用查询、PDF 获取和论文分析。
  • 使用 lark-cli 管理飞书文件夹和文档。
  • 使用 scripts/paper_state.py 保存偏好和推荐历史。
  • 执行任何飞书操作前,先运行 lark-cli doctor。选择飞书标志前,先使用与版本匹配的内置技能:lark-cli skills read lark-shared、lark-cli skills read lark-drive 和 lark-cli skills read lark-doc。

每次运行都从这里开始

  1. 运行:

    python "$env:USERPROFILE\.codex\skills\skill-find-papers\scripts\paper_state.py" init
    python "$env:USERPROFILE\.codex\skills\skill-find-papers\scripts\paper_state.py" show
    python "$env:USERPROFILE\.codex\skills\skill-find-papers\scripts\paper_state.py" inbox-list --status pending
    
  2. 检查 init 中的 needs_initial_interests。首次使用时,停止后续发现流程,并请用户设置初始研究兴趣。默认值为 transformers、LLM 和 agent。

    • 如果用户接受默认值,运行 paper_state.py interests --confirm。
    • 如果用户提供了主题,运行 paper_state.py interests --replace "<topic1,topic2>"。
  3. 完成初始设置后,以保存的偏好和反馈为准。

  4. 如果用户直接更改兴趣,立即使用 interests --add、--remove 或 --replace 应用更改,然后确认更新后的列表。

本地论文收件箱

将用户发送的任何论文 PDF、DOI、出版商/arXiv 链接或明确的论文投稿视为收件箱投稿。

  1. 立即使用 paper_state.py inbox-add 添加。对于本地 PDF,传入 --file;对于远程论文,传入 --url 或 --doi。省略不可用的元数据。
  2. 脚本会将本地 PDF 复制到受管理的收件箱 $HOME/.codex/skill-data/skill-find-papers/inbox/files。之后通过 Scholar MCP 导入时,使用此受管理路径。
  3. 将每篇收件箱投稿标记为 特别感兴趣(用户主动发送)。投稿即表示明确同意分析该论文并将其纳入下一份深度阅读文档;不要再让用户重新选择。
  4. 每周运行开始时,先处理所有待处理的收件箱论文,再进行常规发现:
    • 优先使用受管理的本地 PDF,并传入 Scholar MCP 的 local_pdf_path;
    • 否则解析 DOI 或 URL,获取法律允许范围内最完整的来源;
    • 按照完整的深度阅读要求进行分析,深度应超过普通推荐论文;
    • 从完整论文中推断具体主题,而不只是宽泛的上级类别;
    • 成功完成分析并纳入文档后,运行 paper_state.py inbox-process --paper-id "<id>" --topics "<topic1,topic2>" --document-url "<url>"。
  5. 成功处理收件箱论文后,对每个推断出的主题应用一次 +3 偏好信号。重新处理或重新提交同一篇论文时,不得再次应用该信号。
  6. 用户提交的论文作为补充,不占用常规配额的 5 篇近期论文和 1 篇经典论文。它们不受出版场所质量门槛限制,但应如实报告已核实的出版场所和质量状态。
  7. 在飞书文档中,将收件箱论文置于常规精选论文之前,并添加醒目的 特别感兴趣(用户主动发送) 提示框。
  8. 如果没有待处理的收件箱论文,则按原有每周发现和反馈工作流执行,不作改动。

每周发现

  1. 处理完待处理收件箱论文后,先搜索最近 3 个月的论文。若数量不足,则将范围扩展至 12 个月,再扩展至 24 个月。最近论文中绝不静默地超出 24 个月范围。
  2. 查询主题组合,而不只是孤立关键词。加入 LLM、基础模型、语义通信、无线/网络优化、多 Agent、工具使用、规划和 Agentic AI 等同义词。
  3. 收集多于所需数量的候选论文,依次按 DOI、规范 URL、arXiv ID,再按规范化标题去重。
  4. 排除已推荐的论文,除非符合条件且未推荐过的论文少于五篇。若重用某篇论文,须明确标注并解释原因。
  5. 尽可能准确选出五篇近期论文,并平衡相关性、质量、新颖性和主题多样性。
  6. 另行推荐恰好一篇经典论文精读。选择一篇与当前偏好相关、具有开创性并塑造了领域的论文。优先选择尚未推荐过的经典论文;经典论文不受 24 个月时间范围限制。

质量门槛

对于每篇近期论文,至少核实以下一项:

  • 期刊当前属于 JCR Q1;
  • 期刊当前属于中国科学院一区;
  • 会议属于 CCF-A。

使用当前权威排名数据,并说明符合条件的依据。无法核实时,不要凭记忆声称其排名。将未经核实的发表 venue 排除在五篇论文列表之外。预印本只有在其已被核实录用至符合门槛的 venue 时才符合条件。

经典论文则需要有力证据证明其开创性影响,例如长期高引用、奠基性方法或全领域广泛采用。请说明证据。

分析与展示

每篇推荐论文都需提供:

  • 标题、作者、发表 venue、发表日期、DOI/arXiv 和论文直达链接;
  • 质量依据和搜索时间范围标签;
  • 对摘要、主要创新与贡献、方法和结论的中文概述;
  • 一条简短的相关性说明,并联系已保存的兴趣;
  • 来自 paper_state.py paper-id 的稳定论文 ID。

首条每周消息应简洁到足以比较六篇论文。收到反馈前不要创建 Feishu 文档。

针对每篇论文,结尾提供以下回复选项:

  • 精读 - 感兴趣;加入 Feishu 文档。
  • 已读 - 感兴趣;更新偏好,但不加入文档。
  • 不感兴趣 - 排除并降低相关主题权重。
  • 跳过 - 中立;不更改偏好。

还需说明,用户可以直接说 增加方向:...、减少方向:... 或 替换方向:...。

使用 paper_state.py record 记录全部六篇推荐论文。

处理反馈

  1. 将反馈映射为 selected、read、not-interested 或 skipped。
  2. 对每个明确选择运行 paper_state.py feedback。
  3. 将 selected 和 read 都视为正向兴趣信号。绝不将 read 论文放入文档。
  4. 如果没有论文标记为 selected,则更新偏好并结束,不创建空文档。
  5. 对有歧义的编号或标题,应根据最近一次运行结果进行确认后再处理。

创建飞书深度阅读文档

对于每篇 selected 论文,通过 Scholar MCP 获取最完整的可用来源。区分论文陈述的事实与您的解读。

还需纳入所有已成功分析的待处理收件箱论文,并将其排在普通的 selected 论文之前,标注为 特别感兴趣(用户主动发送)。

调用 ingest_paper_fulltext 时,在轮询 get_ingestion_status 和调用 extract_granular_paper_details 期间,保持同一个 Scholar MCP 服务进程和客户端连接处于活动状态。摄取任务限定于进程范围内;重新连接可能会导致有效的任务 ID 返回 JobNotFoundError。

将所有 selected 论文整理到一份文档中。每篇论文都必须包含:

  • 书目信息、论文直达链接,以及经过核实的官方代码库链接;
  • 完整的英文摘要,以及完整的中文翻译(来源为用户提供、公有领域或明确授权转载时);否则提供全面的摘要转述,涵盖所有实质性信息点,明确标注为转述,并链接到原始摘要;
  • 尽可能完整地介绍创新点和贡献,保留论文的贡献结构、范围、证据和定量结论,不要将其简化成几个泛泛的要点;
  • 详细的方法部分,涵盖问题定义、假设、输入/输出、架构或算法阶段、目标函数/损失函数、训练或优化流程、数据集/测试平台、基线、指标,以及适用时的推理/部署流程;
  • 相关论文图示(仅在许可证或用户提供状态允许转载时),并注明图号、意译图注、来源链接和许可证/署名信息;否则,基于有依据的事实创建原创解释性图示,并标注为 原创方法示意图(非论文原图);
  • 中英文结论;
  • 局限性和建议阅读重点;
  • 与用户兴趣匹配的原因。

使用 references/output-contract.md 中的结构。

来源与插图工作流
  1. 优先使用出版方页面、DOI 记录、作者手稿、arXiv/OpenReview 页面、官方项目页面,以及论文或作者链接的代码仓库。
  2. 验证每个代码链接。优先选择作者或组织的代码仓库,且该仓库应注明论文名称、与作者或项目页面一致,或由论文链接。切勿根据标题相似性推断代码仓库。如果没有经过验证的代码,请写 未发现可验证的官方代码仓库。
  3. 从全文中提取摘要、贡献列表、方法章节、实验、结论、图注和图示引用。笔记应注明对应的章节名称或页码/图号。
  4. 选择能够实质性说明架构、工作流、系统模型、算法或主要结果的图。不要插入装饰性图片。
  5. 对可重复使用的图片,下载质量最高的源文件,保持纵横比,并使用 lark-cli docs +media-insert 或 URL 图片块,将图片插入相关的方法/结果小节附近。图注应注明论文标题、图号、来源 URL 和许可证。
  6. 如果不明确允许直接重用图片,则创建原创 Mermaid/SVG 图表来说明方法,不得照搬论文的构图或美术设计。注明这是对方法的解读。
  7. 创建文档后,获取大纲和关键词部分,并验证每篇入选论文都包含摘要、贡献、方法、结论、链接,以及至少一张有用的示意图(前提是来源证据允许)。

首次创建文档时:

  1. 如果状态中没有 Feishu 文件夹令牌,则使用 lark-cli drive +create-folder --as user 创建一个名为 论文推荐 的根文件夹。
  2. 使用 paper_state.py folder 保存其令牌和 URL。
  3. 之后重复使用该文件夹;不要创建重复文件夹。

将每篇文档命名为 论文精读_YYYY-MM-DD。使用 lark-cli docs +create --api-version v2 --as user --parent-token ... 在已保存的文件夹下创建文档。使用相对于当前工作目录的内容文件或标准输入,绝不要使用绝对路径的 @file。向用户返回文档 URL,并使用 paper_state.py run 记录该 URL。

可靠性规则

  • 绝不捏造摘要、结论、排名、录用状态、引文、DOI 值或链接。
  • 标明无法获取的全文,并且只总结有依据的内容。
  • 除非已对照一手来源核实,否则不要声称摘要是逐字引用或完整内容。
  • 不得悄悄复制受版权保护的摘要或图片。遵循上述复制和图片规则。
  • 不要将非官方实现标注为官方代码。
  • 优先采用论文原始页面、DOI 记录、出版方页面和官方排名来源。
  • 保留先前状态;正常运行时绝不重置历史记录。
  • 如果 Scholar MCP 或 Feishu 不可用,请说明确切失败环节,并保留已记录的反馈。

评论

支持 Markdown