20 分钟上手|5 Agent 协作 + 34 研究技能|把 Claude Code 变成你的专属科研实验室
项目简介
Oh My Paper 是一个开源 Claude Code 插件,它解决的问题很直接:Claude Code 能帮你写代码,但科研工作远不止写代码——你还需要文献调研、创新点评估、实验设计、论文撰写、引用核查这些环节,而它们没有一个好的工具来串联。
Oh My Paper 的做法是给 Claude Code 装上一套结构化科研流水线:5 个专职 Agent 角色各自管一块、34 个研究技能按需加载、后台 Hook 自动记住项目状态。装好之后,每次打开 Claude Code,它会问你「今天做什么角色」,然后自动加载对应的记忆文件,从上次的断点继续。整个过程不需要任何 GUI,所有操作都在终端里完成。
TIP
项目地址:https://github.com/LigphiDonk/Oh-my--paper,MIT 许可证,支持 Claude Code 插件生态。
目标读者画像
本文面向以下开发者:
- 有 1-5 年开发经验,有过(或正在经历)写论文、做研究的过程
- 想用 AI 辅助科研,但不喜欢在各种工具之间来回切换
- 对 Agent 协作模式、多角色记忆隔离这些概念感兴趣,想找实战案例
如果你已经有明确的科研方向(比如 CV、NLP、系统架构),或者你在公司做内部技术调研,Oh My Paper 的流水线都适用。
核心依赖与环境
开始之前,确保你的环境满足以下条件:
| 依赖 | 最低要求 | 说明 |
|---|---|---|
| Claude Code | 最新版 | 官方安装指南 |
| Node.js | v18+ | Claude Code 插件运行基础 |
| Python | 3.10+ | 远程实验脚本、LaTeX 编译需要 |
| LaTeX | TeX Live 2020+ | 可选,论文撰写时用到 |
| 网络 | 能访问 ArXiv / Semantic Scholar | 文献搜索必需 |
WARNING
Oh My Paper 是 Claude Code 插件,不是独立应用。你必须先装好 Claude Code 才能使用它。Windows 用户建议用 WSL2 获得最佳体验。
完整项目结构树
运行 /omp:setup 后,项目目录结构如下:
my-research/
├── paper/ # LaTeX 论文工作区
│ ├── main.tex
│ ├── sections/ # 各章节 .tex 文件
│ └── refs/ # 参考文献 .bib 文件
├── experiment/ # 实验代码与脚本
├── survey/ # 文献调研产出
├── ideation/ # 创新点与评估结果
├── promotion/ # 幻灯片、Demo、推广材料
├── skills/ # 项目本地自定义技能
├── .pipeline/
│ ├── tasks/
│ │ └── tasks.json # 跨所有阶段的任务树
│ ├── docs/
│ │ └── research_brief.json
│ └── memory/ # Agent 记忆文件
│ ├── project_truth.md # 项目基准 + 进展日志
│ ├── orchestrator_state.md
│ ├── execution_context.md
│ ├── experiment_ledger.md
│ ├── result_summary.md
│ ├── review_log.md
│ ├── literature_bank.md
│ ├── agent_handoff.md
│ └── decision_log.md
├── .claude/
│ └── settings.json # SessionStart hook 注册
├── CLAUDE.md
└── AGENTS.md
手把手安装步骤
第一步:添加插件市场
在 Claude Code 里运行以下命令,把 Oh My Paper 的插件市场地址注册进去:
/plugin marketplace add LigphiDonk/Oh-my--paper
这一步不需要克隆整个仓库,Claude Code 会从插件市场拉取插件清单。
第二步:安装插件
/plugin install omp@oh-my-paper
安装完成后,运行 /plugin 验证:
/plugin
# 预期输出应包含:omp @ oh-my-paper, Status: Enabled
第三步:重启 Claude Code
WARNING
这是最容易忽略的一步。SessionStart hook 必须重启 Claude Code 才能生效,跳过这一步会导致每次打开会话都没有角色选择提示。
完全关闭当前 Claude Code 窗口,再重新打开。
第四步:初始化研究项目
进入你的研究项目目录,运行:
/omp:setup
这个命令做了三件事:
- 创建
.pipeline/目录及其所有子目录和记忆文件 - 在
.claude/settings.json里注册SessionStarthook - 生成默认的
tasks.json和research_brief.json
初始化完成后,目录结构就如上面「完整项目结构树」所示。
验证安装成功
重新打开 Claude Code(在初始化过的项目目录下),你应该能看到 Claude 弹出角色选择菜单,询问你今天以哪个角色开始工作。如果看到了,说明全部安装成功。
5 阶段科研流水线详解
Oh My Paper 把整个科研流程拆成 5 个阶段,每阶段对应一条命令和一组推荐技能。
阶段 1|Survey:文献调研
运行命令:
/omp:survey
这个阶段做的事:让 Claude 根据你的研究方向搜索相关论文,提取摘要和关键信息,最终整理成一份 literature_bank.md。
常用技能:
paper-finder— 从 ArXiv、Semantic Scholar 搜索相关工作paper-analyzer— 提取论文核心贡献、方法、局限biorxiv-database— 如果做生物医学方向,搜索 BioRxiv
核心产出文件:survey/literature_bank.md
典型工作流:
你:/omp:survey
→ Claude 询问研究方向关键词
→ 自动搜索 → 整理文献卡片 → 写入 literature_bank.md
→ 展示文献调研摘要,让你确认是否补充
阶段 2|Ideation:创新点生成
运行命令:
/omp:ideate
基于阶段 1 的文献调研结果,Claude 生成潜在创新点并逐一评估可行性。
常用技能:
inno-idea-generation— 大规模创新点头脑风暴inno-idea-eval— 从 novelty、feasibility、impact 三个维度评分research-idea-convergence— 收敛到 2-3 个最具潜力的方向
核心产出文件:ideation/ 目录下的评估结果
TIP
Ideation 阶段结束后,记得让 Claude 把最终选定的方向写入 research_brief.json,后续实验和写作都会引用这个文件。
阶段 3|Experiment:实验设计与执行
运行命令:
/omp:experiment
这个阶段覆盖最广:设计实验方案、编写评估代码、本地或远程运行、分析结果。
常用技能:
inno-experiment-dev— 生成实验代码骨架research-experiment-driver— 管理实验迭代循环remote-experiment— SSH 到远程 GPU 节点运行(见「远程实验」章节)
核心产出文件:experiment/ 目录 + experiment_ledger.md(实验历史记录)
阶段 4|Publication:论文章节撰写
运行命令:
/omp:write
把实验结果转化成论文文本,生成图表和标题,管理 LaTeX 文件。
常用技能:
inno-paper-writing— 通用论文章节生成ml-paper-writing— 机器学习/AI 方向的论文模板scientific-writing— 学术写作规范(时态、措辞、结构)inno-figure-gen— 生成图表代码(Matplotlib、Plotly)inno-reference-audit— 自动检查引用格式是否规范
核心产出文件:paper/ 目录下的 LaTeX 文件
阶段 5|Promotion:成果推广
运行命令:
/omp:plan
# 在 Promotion 阶段,选择制作演示材料相关技能
把论文成果转化为演示幻灯片、技术博客、Grant 提案等。
常用技能:
making-academic-presentations— 学术报告 PPT 生成inno-grant-proposal— 资金申请书撰写inno-rclone-to-overleaf— 自动把本地 LaTeX 同步到 Overleaf
5 大 Agent 角色与记忆隔离机制
这是 Oh My Paper 最核心的设计理念。
Agent 角色一览
| 角色 | 职责描述 | 核心记忆文件 |
|---|---|---|
| Conductor(统筹者) | 全局规划、派发子任务、每个阶段完成后自动更新项目状态 | project_truth.md · tasks.json · orchestrator_state.md |
| Literature Scout(文献侦察) | 搜索论文、整理文献笔记 | literature_bank.md · execution_context.md |
| Experiment Driver(实验执行) | 设计实验、编写评估代码、运行与记录 | experiment_ledger.md · research_brief.json |
| Paper Writer(论文写手) | 撰写章节、生成图表、审查引用 | result_summary.md · literature_bank.md |
| Reviewer(评审者) | 同行评审、质量把关、一致性检查 | execution_context.md · project_truth.md |
记忆隔离原理
每个角色只能读写自己职责范围内的记忆文件,无法看到其他角色的内部状态。这种设计的核心好处是防止上下文污染——比如 Paper Writer 不会看到 Experiment Driver 的中间调试结果,Literature Scout 不会因为看了实验数据而先入为主影响文献评估。
角色之间通过两个「公共区域」通信:
tasks.json ← 所有角色读写,记录任务完成状态
project_truth.md ← 所有角色追加,记录项目整体进展
自动状态同步
最重要的设计细节:Conductor 在每个子任务完成后自动更新这两个公共文件,不需要你手动提醒。
子任务完成
→ Conductor 自动标记 tasks.json 中对应任务为 done
→ Conductor 自动往 project_truth.md 追加进展记录
→ 下次会话打开,Claude 读取这两个文件,自动从断点继续
TIP
如果你想强制让 Conductor 输出当前全局进度,运行 /omp:plan,它会读取 tasks.json 和 project_truth.md,展示完整的任务树和当前阶段。
34 个研究技能速查
Oh My Paper 内置 34 个研究技能,覆盖科研全流程。以下按类别整理,方便按需查找:
文献类
paper-finder— 跨数据库论文搜索paper-analyzer— 论文核心贡献提取paper-image-extractor— 从 PDF 提取图表research-literature-trace— 追踪一篇论文的引用链biorxiv-database— BioRxiv 专项搜索dataset-discovery— 相关数据集发现
调研与创意类
inno-deep-research— 深度研究模式gemini-deep-research— Gemini 深度研究集成inno-code-survey— 代码实现调研inno-idea-generation— 创新点批量生成inno-idea-eval— 创新点多维评估research-idea-convergence— 收敛到最优方向
实验类
inno-experiment-dev— 实验代码生成inno-experiment-analysis— 实验结果分析research-experiment-driver— 迭代式实验管理remote-experiment— 远程 GPU 实验循环
写作类
inno-paper-writing— 通用论文章节ml-paper-writing— ML/AI 方向论文scientific-writing— 学术写作规范inno-figure-gen— 图表生成inno-reference-audit— 引用格式审查research-paper-handoff— Agent 间交接规范
规划与评审类
inno-pipeline-planner— 流水线规划research-pipeline-planner— 研究阶段规划inno-paper-reviewer— 论文质量评审inno-prepare-resources— 资源准备清单inno-rclone-to-overleaf— Overleaf 同步
演示与提案类
making-academic-presentations— 学术报告 PPTinno-grant-proposal— 资金申请书
Agent 调度类
claude-code-dispatch— 调度 Claude Code 子任务codex-dispatch— 调度 Codex 并行处理
领域专项类
academic-researcher— 通用学术研究bioinformatics-init-analysis— 生物信息学分析research-news— 追踪研究领域最新动态
技能按需加载,运行 /omp:survey 时 Claude 会自动推荐相关技能,你也可以在 skills/ 目录下添加自定义技能。
典型工作流完整演示
以一篇 AI 方向的论文为例,完整走一遍 5 阶段流水线。
Step 1:项目初始化
# 进入研究目录
cd ~/research/my-paper
# 在 Claude Code 里:
/omp:setup
# 输出:.pipeline/ 已创建,SessionStart hook 已注册
Step 2:文献调研
# 在 Claude Code 里:
/omp:survey
# → Claude 询问:「你的研究方向是什么?」
# → 输入:LLM reasoning, chain-of-thought prompting
# → Claude 自动搜索 ArXiv/Semantic Scholar
# → 整理 20+ 篇相关工作到 survey/literature_bank.md
# → 输出调研摘要,确认是否需要补充
Step 3:创新点生成
/omp:ideate
# → Claude 读取 literature_bank.md
# → 生成 8 个潜在创新点
# → 每个点从 novelty / feasibility / impact 三个维度打分
# → 收敛到 2 个方向,写入 research_brief.json
Step 4:实验设计与运行
/omp:experiment
# → Claude 读取 research_brief.json
# → 设计实验方案(基线、对比方法、评估指标)
# → 生成实验代码到 experiment/ 目录
# → 运行本地评估,解析指标结果
# → 结果写入 experiment_ledger.md
如果需要远程 GPU 节点运行:
# 配置远程计算节点(在 experiment/ 目录下创建 compute-config.json)
{
"host": "gpu-server.example.com",
"user": "researcher",
"key_path": "~/.ssh/id_rsa",
"remote_dir": "/home/researcher/experiments"
}
# 在 Claude Code 里:
/omp:experiment
# → Claude 检测到 compute-config.json
# → 使用 remote-experiment 技能
# → rsync 代码到远程 → SSH 运行 → 拉回结果
# → 自动解析 metrics,写入 experiment_ledger.md
Step 5:论文章节撰写
/omp:write
# → Claude 读取 experiment_ledger.md + literature_bank.md
# → 生成 Introduction / Method / Experiment 各章节 .tex
# → 生成图表(Matplotlib 脚本),编译到 paper/figures/
# → 引用审查:检查 .bib 文件格式
Step 6:同行评审
/omp:review
# → Claude 以 Reviewer 角色阅读全文
# → 检查逻辑连贯性、方法描述清晰度、实验对比充分性
# → 输出 review_log.md,列出修改建议
# → 根据建议修改后,再次 /omp:review 直至通过
Step 7:同步到 Overleaf
# 在 skills/ 目录下配置 Overleaf 同步
# 使用 inno-rclone-to-overleaf 技能
# Claude 自动把本地 paper/ 目录同步到 Overleaf 项目
远程实验详解
对于需要 GPU 算力的实验,Oh My Paper 支持完整的远程实验循环。
架构流程
本地设计方案
→ 生成实验代码
→ rsync 同步到远程服务器
→ SSH 登录远程节点
→ 在 GPU 上运行实验
→ 拉回 metrics 日志
→ 本地解析指标
→ 判断是否达到阈值
→ 迭代优化 / 结束实验
配置远程节点
在 experiment/ 目录下创建 compute-config.json:
{
"host": "your-gpu-server.com",
"user": "researcher",
"ssh_key": "~/.ssh/id_rsa",
"remote_workspace": "/home/researcher/omp-experiments",
"max_iterations": 5,
"success_threshold": {
"accuracy": 0.92,
"latency_ms": 200
}
}
运行远程实验
# 在 Claude Code 里:
/omp:experiment
# → 检测到 compute-config.json
# → 自动执行:代码同步 → SSH 运行 → 结果拉回
# → 若指标未达标,自动调整超参数重跑(最多 max_iterations 次)
# → 最终结果写入 experiment_ledger.md
WARNING
远程实验会消耗服务器算力和费用。建议先用本地小数据集验证实验流程,确认无误后再切到远程 GPU 节点跑完整实验。
Codex 任务委派
如果某个实验涉及大量重复代码生成(比如需要跑 10 组不同超参数配置),可以让 Conductor 把任务委派给 Codex 并行处理。
/omp:delegate
# → Conductor 读取当前任务上下文
# → 生成带完整上下文的 Codex prompt
# → 你复制到新终端:codex "..."
# → Codex 在独立终端运行
# → 完成后在 agent_handoff.md 写入 CODEX_DONE 信号
# → Conductor 检测到信号,自动读取结果并更新 tasks.json
这个设计的好处:Claude Code 和 Codex 同时运行在不同终端,你的本地 Claude Code 不会被占用,可以同时做文献整理等其他工作。
常见问题排查
Q1:运行 /omp:setup 后,每次打开 Claude Code 没有看到角色选择提示
原因:SessionStart hook 没有被正确注册。
排查步骤:
- 检查项目目录下是否存在
.claude/settings.json - 检查该文件是否包含
hooks配置节
cat .claude/settings.json
# 确认有 "hooks": { "SessionStart": [...] } 字段
如果没有,运行 /omp:setup 重新初始化,并确保 Claude Code 已完全重启。
Q2:插件安装成功但 /omp:survey 等命令显示「未识别命令」
原因:插件未正确加载,或 Claude Code 需要重启。
解决步骤:
# 1. 卸载并重新安装
/plugin uninstall omp
/plugin install omp@oh-my-paper
# 2. 完全重启 Claude Code(关闭所有窗口)
# 3. 验证插件状态
/plugin
Q3:Literature Scout 找到的论文太少,想扩大搜索范围
原因:初始关键词过于具体,限制了搜索结果。
解决方法:
在运行 /omp:survey 时,给出多个同义词和上位词:
输入:「LLM reasoning, chain-of-thought, CoT, deliberate reasoning, LLM planning」
而不是只输入:「LLM reasoning」
同时在 skills/paper-finder.md 里可以添加额外的数据库源(如 ACL Anthology、ICLR 官方页面)。
Q4:Paper Writer 生成的实验描述和实际结果对不上
原因:Experiment Driver 和 Paper Writer 之间没有及时同步最新的 experiment_ledger.md。
解决方法:
每次实验迭代完成后,在 Paper Writer 开始工作之前,先运行 /omp:plan 让 Conductor 同步全局状态,确保 Paper Writer 读取的是最新结果:
/omp:plan
# → Conductor 展示当前 tasks.json 状态
# → 确认 experiment 任务已标记 done
# → 然后再运行 /omp:write
Q5:远程实验 rsync 同步失败,提示 permission denied
原因:SSH 密钥权限不正确,或远程目录不存在。
排查步骤:
# 1. 检查本地 SSH 密钥权限
chmod 600 ~/.ssh/id_rsa
# 2. 测试 SSH 连接(无密码登录)
ssh -i ~/.ssh/id_rsa [email protected] "echo ok"
# 3. 确保远程目录存在
ssh [email protected] "mkdir -p /home/researcher/omp-experiments"
# 4. 检查 compute-config.json 中的 remote_workspace 路径是否正确
Q6:Codex 委派后,Conductor 一直等待 CODEX_DONE 信号
原因:Codex 运行完成后没有正确写入 agent_handoff.md。
解决方法:
- 检查 Codex 运行的终端是否正常结束
- 手动在
.pipeline/memory/agent_handoff.md末尾追加一行:
CODEX_DONE
result: [填写 Codex 的输出结果]
- 然后在 Claude Code 里继续当前工作流
扩展阅读与进阶方向
1. 自定义技能扩展
Oh My Paper 支持在项目本地 skills/ 目录下添加自定义技能。创建格式如下:
---
name: my-custom-skill
description: 针对特定研究领域的自定义分析流程
stage: survey # 可选:survey | ideation | experiment | write | review
---
# 技能标题
## 执行步骤
1. 读取上下文文件 ...
2. 执行特定任务 ...
注册后,运行 /omp:survey 等命令时,Claude 会自动推荐相关自定义技能。
2. 多 Agent 协作进阶
如果你有多个研究方向同时推进,可以在不同子目录下各自运行 /omp:setup,每个子项目有独立的 .pipeline/ 和 Agent 团队。Conductor 角色负责跨子项目的总览与协调。
3. Overleaf 协作工作流
用 inno-rclone-to-overleaf 技能把本地论文同步到 Overleaf 后,可以邀请导师直接在 Overleaf 上批注修改意见,修改完成后再同步回本地。整个过程不需要手动上传下载。
4. 接入其他 LLM 后端
Oh My Paper 本身只依赖 Claude Code,但实验阶段可以配置不同的 LLM 做对比评测。在 experiment/ 目录下创建模型配置文件:
# experiment/model_configs.py
llm_configs = {
"claude-sonnet": {"provider": "anthropic", "model": "claude-3-5-sonnet"},
"gpt-4o": {"provider": "openai", "model": "gpt-4o"},
"gemini-pro": {"provider": "google", "model": "gemini-1.5-pro"},
}
然后在实验代码里引用这些配置做横向对比。
5. 追踪最新研究动态
用 research-news 技能定期扫描 ArXiv 的最新提交,筛选出与你研究方向相关的新工作,自动更新 literature_bank.md。可以配合 cron 定时任务做到每周自动更新一次调研文献库。