基于 Claude Code 的
自动化科研工作流

AI 驱动的学术文献阅读与讲义生成系统

Claude Code 25+ Skills 自动化工作流

报告人:乐绎华 · 中山大学 数学学院 · 2026

01 / 69

什么是 Vibe Research?

核心定位

将 AI 能力深度融入学术研究全流程,实现文献阅读、笔记整理、讲义生成的高度自动化。

设计哲学

"Vibe" 强调的是流畅的体验 —— 让研究者专注于思考本身,而非工具操作。

Skills 系统

25+ 领域特定技能,即插即用,涵盖阅读、写作、研究、开发全流程。

代表成果

已累计调用 28 亿 MiniMax Tokens,持续迭代验证工作流有效性。

02 / 69

学术研究的核心痛点

痛点 1: AI 不读文献库

  • 网页端对话框的知识来源过于 general
  • AI 不知道文献库已有的符号和技巧
  • 不会引用文献库内容
  • 每次要重新输入提示词

痛点 2: 笔记风格不连贯

  • 复制粘贴的回答不符合已有笔记风格
  • 希望开头讲背景、motivation、前置知识
  • 希望风格统一:定理历史、前因后果
  • 格式需要反复手动调整
03 / 69

解决方案:三层架构

CLAUDE.md

提示词引擎,预先设定写作风格、符号约定、规范规则

MEMORY.md

跨会话持久记忆,进度追踪,经验教训归档

Skills

24 个领域特定技能,即插即用,自动化工作流

04 / 69

设计哲学

自动化

重复性工作交给 AI,让研究者专注思考

一致性

符号、格式、引用全程规范化

可追溯

完整的知识演化路径记录

05 / 69

核心技术栈

Claude Code

AI 能力核心,工具调用、代码执行、文件系统

MinerU

PDF → Markdown 高精度转换,保留公式图表

Obsidian

知识管理,双向链接,笔记组织

LaTeX

专业排版,学术讲义生成

Skills

领域特定工作流自动化

Git

版本控制,历史备份

06 / 69

MiniMax 使用统计

28 亿+
Tokens 累计调用
MiniMax Token 使用统计

持续迭代验证工作流有效性

07 / 69

Local AI 能力

Claude Code 本地集成

08 / 69

Claude Code 本地能力

Skills

即插即用的领域特定提示词

Subagent

每个文献库专属子代理

Memory

CLAUDE.md + MEMORY.md 持久化

History

完整会话历史记录

09 / 69

Skills 系统结构

Skills 文件结构

~/.claude/skills/   # 全局 Skills
project/.claude/skills/  # 项目级 Skills

24 Skills 5 大类

  • 阅读与笔记 (6) — latex-notes, skim-jump...
  • 研究与引用 (4) — gs-search, paper-refs...
  • 图表提取 (4) — pdf-figure, figure...
  • 写作与模板 (4) — beamer, homework...
  • 开发与AI (6) — slides, git, latex...

Skills 调用方式

/skill-name        # 触发 Skill
/skim-jump        # PDF 双向联动
/gs-search        # Google Scholar
/latex-debug      # LaTeX 调试
10 / 69

MinerU — PDF 转 Markdown

核心优势

  • PDF → Markdown 高精度转换
  • 保留数学公式 LaTeX 格式
  • 自动提取图表并保留引用路径
  • 保留目录结构

输出结构

transcript/
├── book.md
├── images/
│   └── page-XX_fig.png
├── content_list.json
└── layout.pdf
11 / 69

Memory System

跨会话持久记忆

12 / 69

Memory System 概览

MEMORY.md

  • 跨会话持久记忆
  • 项目进度追踪
  • 经验教训归档
  • 符号约定汇总

CLAUDE.md

  • 提示词引擎
  • 写作风格规则
  • 数学符号约定
  • Git 提交习惯
13 / 69

MEMORY.md 详解

核心功能

  • 跨会话持久 — 关闭后重启仍保留
  • 项目进度 — 记录当前阅读位置
  • 经验教训 — 错误记录避免重复
  • 符号约定 — 统一文献符号

数据结构

{
  "project": "因果推断",
  "progress": "第3章 / 18章",
  "lessons": ["符号混淆问题"],
  "conventions": {
    "potential_outcome": "Y_i(1)"
  }
}
14 / 69

CLAUDE.md 详解

核心功能

  • 提示词引擎 — 每次会话自动加载
  • 写作风格 — Stein 风格 motivation
  • 符号约定 — 数学符号规范化
  • 规范规则 — LaTeX/Git/引用

示例规则

期望:\mathbb{E}X
概率:\mathbb{P}(A)
独立性:A \Perp B
15 / 69

Skills 系统

24 个领域特定技能

16 / 69

Skill System Overview

阅读与笔记 (6)

latex-notes, skim-jump, reading-progress, interactive-qa, obsidian-cli, literature-notes-template

研究与引用 (4)

gs-search, paper-references-generator, literature-reference-manager, citation-bibliography-generator

图表提取 (4)

pdf-figure-extractor, figure-extractor, gemini-image-analyzer, minimax-vision

写作与模板 (4)

beamer-chinese-presentation, homework-workflow, chapter0-template, note-content-verifier

开发与AI (6)

frontend-slides, auto-commit-push, latex-label-ref-verifier, latex-debug, gemini-browser-chat, r-expert

17 / 69

阅读与笔记 Skills

Reading & Notes

18 / 69

阅读与笔记 Skills 概览

latex-notes

Stein 风格 motivation 写作

skim-jump

PDF ↔ 笔记双向联动

reading-progress

阅读进度管理

interactive-qa

交互式问答归档

obsidian-cli

Obsidian 命令行

literature-notes-template

文献笔记模板

19 / 69

latex-notes

描述生成 LaTeX 格式学习讲义
使用场景阅读学术论文时自动生成讲义
效果Stein《傅里叶分析》风格
% 用户注解命令
\newcommand{\userannotation}[2]{%
  \begin{trivlist}
    \item[\textbf{用户注解:}] #1
    \textit{#2}
  \end{trivlist}
}

% 定义环境禁止使用 itemize!
\begin{Definition}[完全随机实验]
设有 $n$ 个样本,其中 $n_1$ 个被分配到治疗组...
\end{Definition}
20 / 69

skim-jump

描述PDF 与笔记双向联动
使用场景Mac 上用 Skim 阅读 PDF
效果Cmd+Shift+点击跳转到笔记
# Skim displayline 跳转命令
/Applications/Skim.app/Contents/SharedSupport/displayline \
  -r -g [行号] "[PDF路径]" "[TeX源文件]"

# 示例:跳转到第 584 行
/Applications/Skim.app/Contents/SharedSupport/displayline \
  -r -g 584 "notes.pdf" "chapters/chapter1.tex"
21 / 69

reading-progress

描述阅读进度管理
使用场景追踪多章节书籍阅读位置
效果进度记录到 JSON
{
  "book": "A First Course in Causal Inference",
  "current_position": {
    "chapter": 3,
    "section": 2,
    "page": 45
  },
  "questions": [
    {
      "date": "2026-03-22",
      "chapter": 3,
      "question": "为什么需要引入潜在结果?"
    }
  ]
}
22 / 69

interactive-qa

描述交互式问答
使用场景阅读中即时提问
效果回答记录到附录
# 每次问答后的自动 Git 提交
git add notes/ .claude/skills/reading-progress/progress.json
git commit -m "QA: 第3章 - 潜在结果定义"

# 或使用脚本
./scripts/commit_notes.sh "更新讲义"
23 / 69

obsidian-cli

描述Obsidian 命令行
使用场景批量创建笔记、搜索
效果笔记 CRUD、属性管理
# 创建笔记
obsidian create name="新笔记" content="# Hello"

# 搜索笔记
obsidian search query="因果推断" limit=10

# 追加内容
obsidian append file="笔记名" content="新行内容"

# 管理任务
obsidian tasks daily todo
24 / 69

literature-notes-template

描述文献笔记模板
使用场景开始阅读新文献时
效果元数据、符号约定
notes/<主题>/
├── <主题>-notes.tex  # 主文件
├── compile.sh        # 编译脚本
├── references.bib    # BibTeX
├── chapters/
│   ├── chapter0.tex  # 文献概述
│   └── chapter1.tex  # 第一章
└── appendix/
    └── qa.tex        # 问答记录
25 / 69

研究与引用 Skills

Research & Citation

26 / 69

研究与引用 Skills 概览

gs-search

Google Scholar 搜索

paper-references-generator

CrossRef API 参考文献提取

literature-reference-manager

文献库批量管理

citation-bibliography-generator

多格式引用生成

27 / 69

gs-search

描述Google Scholar 搜索
使用场景查找相关论文
效果标题、作者、期刊、引用数
// Google Scholar DOM 抓取
const items = document.querySelectorAll('#gs_res_ccl .gs_r.gs_or');
const results = Array.from(items).map(item => ({
  title: item.querySelector('.gs_rt a')?.textContent,
  authors: item.querySelector('.gs_a')?.textContent,
  citedBy: item.querySelector('.gs_fl a[href*="cites"]')
    ?.textContent.match(/\d+/)?.[0] || '0'
}));
28 / 69

paper-references-generator

描述参考文献提取
使用场景扫描 transcript 提取
效果CrossRef API → BibTeX
# 使用方法
python paper_references_generator.py 

# CrossRef API 查询
https://api.crossref.org/works?query=<关键词>

# 输出 BibTeX
@article{author2023,
  author = {Author, First},
  title = {Paper Title},
  year = {2023},
  doi = {10.xxx/xxx}
}
29 / 69

literature-reference-manager

描述文献库管理
使用场景批量管理大量文献
效果文献库扫描,批量 BibTeX
# 扫描文献库
/文献引用管理器 bayesian

# 生成引用库
/文献引用管理器 bayesian --generate-bib

# 处理指定文献
/文献引用管理器 PDFs/bayesian/textbook/Book.pdf
30 / 69

citation-bibliography-generator

描述多格式引用生成
使用场景按期刊要求格式化
效果APA/MLA/Chicago/IEEE/Harvard
from scripts.citation_generator import CitationGenerator

gen = CitationGenerator(style='apa')
citation = gen.cite_book(
    authors=["Smith, John", "Doe, Jane"],
    title="Research Methods",
    year=2020,
    publisher="Academic Press"
)
print(citation)
# Output: Smith, J., & Doe, J. (2020). Research methods. Academic Press.
31 / 69

图表提取 Skills

Figure Extraction

32 / 69

图表提取 Skills 概览

pdf-figure-extractor

600 DPI 高清,Gemini Vision

figure-extractor

数学插图提取,400 DPI

gemini-image-analyzer

图表内容提取,公式识别

minimax-vision

OCR 识别,表格提取

33 / 69

pdf-figure-extractor

描述PDF 图表提取
使用场景提取论文中的 figure
效果600 DPI,边界框识别
# 快速提取 Chapter 2 figures
uv run figure_extractor.py --chapter 2

# 强制重刷
uv run figure_extractor.py --chapter 2 --force

# 仅裁剪模式
uv run figure_extractor.py --chapter 2 --crop-only
34 / 69

figure-extractor

描述数学插图提取
使用场景提取教材中的图表
效果400 DPI,断点续传
# Gemini 边界框识别
PROMPT = f"""看这张教材原图,找出以下 figures 的精确位置:
Figure: Figure X-Y
Bounding Box: x1=0.XX, y1=0.XX, x2=0.XX, y2=0.XX

规则:
- 坐标以图片整体宽高为基准,0.00 ~ 1.00
- 必须包含完整的图注文字
- 四周留 0.02 边距"""

# 裁剪保存
crop = img.crop((int(W * x1), int(H * y1), int(W * x2), int(H * y2)))
crop.save(f"fig_{figure_id}.png", quality=95)
35 / 69

gemini-image-analyzer

描述图像理解
使用场景理解复杂图表含义
效果数学公式识别
# 分析本地图片
echo "请详细描述这张图片的所有内容" | gemini /path/to/image.png

# 分析网络图片
gemini "https://example.com/image.png"
36 / 69

minimax-vision

描述MiniMax 视觉理解
使用场景OCR、表格提取
效果多语言支持
# 命令行分析
python3 ~/.claude/skills/minimax-vision/analyze.py /path/to/image.png

# 自定义问题
python3 ~/.claude/skills/minimax-vision/analyze.py \
  /path/to/image.png "这张图片有什么特别之处?"
37 / 69

写作与模板 Skills

Writing & Templates

38 / 69

写作与模板 Skills 概览

beamer-chinese-presentation

Beamer 演示文稿

homework-workflow

作业规范化

chapter0-template

章节笔记框架

note-content-verifier

笔记校验

39 / 69

beamer-chinese-presentation

描述Beamer 演示文稿
使用场景创建学术报告
效果SYPSTYLE/CambridgeUS 主题
\documentclass[]{beamer}
\usetheme{CambridgeUS}
\usepackage{xeCJK}
\setCJKmainfont{Source Han Serif SC}

\begin{document}
\maketitle
\section{Section Name}
\begin{frame}
  \begin{block}{Block Title}content\end{block}
  \begin{alertblock}{Alert}important\end{alertblock}
\end{frame}
\end{document}
40 / 69

homework-workflow

描述作业工作流
使用场景规范化提交作业
效果Google Drive 集成
> [!exr] Problem 3.1
> **Section 3.2** — *Randomized Block Design*
>
> 完整习题内容...

> [!example] Referenced Background: Section 2.5
> 被引用的背景内容

> [!note] Data Information
> 数据变量说明...
41 / 69

chapter0-template

描述章节模板
使用场景开始新章节
效果动机引入,定义/定理格式
\chapter*{引言:文献概述}\label{chap:introduction}
\addcontentsline{toc}{chapter}{引言:文献概述}

\section{总述}
介绍学习该主题的背景、意义和研究动机。

\section{文献摘要总结}
\subsection{论文标题}
\begin{enumerate}
    \item \textbf{作者:} 作者姓名
    \item \textbf{链接:} \url{https://arxiv.org/abs/xxxx}
    \item \textbf{核心贡献:}
\end{enumerate}
42 / 69

note-content-verifier

描述笔记校验
使用场景提交前检查
效果公式一致性,引用完整
# 检查 label 定义
grep -nE '\\\\label\{[^}]+\}' notes.tex | grep -v '^(eq:|rem:)'

# 检查 cref 引用
grep -nE '\\\\cref\{[^}]+\}' notes.tex

# 对照原论文验证编号
# Theorem 1.1 → label{def:thm:11}
43 / 69

开发与 AI Skills

Development & AI

44 / 69

开发与 AI Skills 概览

frontend-slides

HTML 演示生成

auto-commit-push

Git 自动提交

latex-label-ref-verifier

Label/Ref 检查

latex-debug

LaTeX 调试

gemini-browser-chat

Gemini 数学专家

r-expert

R 语言专家

45 / 69

frontend-slides

描述HTML 演示
使用场景快速创建演示
效果动画丰富,零依赖
<!-- 单文件 HTML 演示 -->
<section class="slide" data-slide="1">
  <h1>标题</h1>
  <p class="reveal">渐入内容</p>
</section>

<style>
.slide { height: 100vh; overflow: hidden; }
.reveal { animation: fadeIn 1s ease-out; }
</style>
46 / 69

auto-commit-push

描述Git 自动提交
使用场景保存工作时自动 commit
效果大文件检查,Co-Authored-By
# 自动提交流程
git status --short
git add -A
git commit -m "更新讲义

Co-Authored-By: Claude Opus 4.6 "
git push origin main
47 / 69

latex-label-ref-verifier

描述LaTeX 引用检查
使用场景检查 \label 和 \ref
效果发现悬空引用
# 提取所有 label 定义
grep -nE '\\\\label\{[^}]+\}' <笔记文件>

# 提取所有 cref 引用
grep -nE '\\\\cref\{[^}]+\}' <笔记文件>

# 对照原论文检查编号一致性
48 / 69

latex-debug

描述LaTeX 调试
使用场景修复编译错误
效果标准流程诊断
# 编译检测
xelatex -interaction=nonstopmode main.tex

# 常见错误处理:
# - Undefined reference → 检查 label
# - Missing $ → 检查公式
# - Extra } → 检查括号配对

# 每次修复后提交
git add -A && git commit -m "fix: 修复 LaTeX 错误"
49 / 69

gemini-browser-chat

描述Gemini Pro 数学专家
使用场景复杂数学定理证明
效果Playwright 集成,Pro 模式
// Playwright MCP 工作流
browser_navigate("https://gemini.google.com")

// 找到输入框
browser_type(element: "question input",
  ref: "e350",
  text: "Solve: 复杂数学问题",
  submit: true)

// 等待响应
browser_wait_for(text: "Gemini said", time: 15)
50 / 69

r-expert

描述R 语言专家
使用场景复现教材 R 代码
效果命令行运行,统计可视化
library(dplyr)
library(ggplot2)

# 数据处理
df %>%
  filter(age > 28) %>%
  select(name, age, salary) %>%
  mutate(salary_bonus = salary * 1.1) %>%
  ggplot(aes(x = age, y = salary)) +
  geom_point() +
  geom_smooth(method = "lm")

# 统计检验
t.test(salary ~ group, data = df)
51 / 69

完整工作流

Complete Workflow

52 / 69

全流程图

PDF → MinerU → Markdown → AI 阅读 → 问答 → 笔记 → 讲义

输入

学术 PDF 文献

处理

AI 深度理解 + 问答

输出

LaTeX 讲义 PDF

53 / 69

阅读阶段

PDF → MinerU → 语义分割 → 逐章阅读

MinerU 转录

  • PDF 高精度转 Markdown
  • 保留数学公式
  • 提取图表引用

逐章阅读

  • 语义分割定位
  • reading-progress 追踪
  • interactive-qa 问答
54 / 69

笔记阶段

问答记录 → LaTeX → 编译 PDF → 归档

latex-notes 生成

  • Stein 风格 motivation
  • 自动交叉引用
  • 用户注解命令

编译归档

  • latex-debug 调试
  • auto-commit-push 提交
  • Git 历史追溯
55 / 69

实际案例

Real Cases

56 / 69

Schubert 演算案例

Schubert Polynomials 的 Positivity 问题

历史脉络

  • Schubert (1879): 计数几何起源
  • Bernstein (1973): 拓扑观点
  • Demazure (1974): 泛性子群
  • Lascoux-Schützenberger (1982): Schubert 多项式

成果

已生成完整讲义笔记

📄 查看讲义 PDF

57 / 69

Subagent 概念

Per-Library Specialized Agents

58 / 69

Subagent 设想

核心思想

为每个文献库配置专属 Subagent,拥有独立的记忆和提示词

独立记忆

每个 Subagent 维护自己的 MEMORY.md

个性化提示词

针对领域的写作风格

领域专长

几何/统计/代码各有专长

59 / 69

Subagent 特性

共性

  • 统一的 CLAUDE.md 基础规则
  • 相同的 Skills 调用方式
  • 一致的 Git 提交习惯

个性

  • 领域特定的写作风格
  • 不同的符号约定优先级
  • 专属的图表处理偏好
60 / 69

Subagent 示例

Geometry Subagent

  • 领域: 几何、计数
  • 专长: 图片解释、图示理解
  • 风格: 注重图形化解释
  • Skills: skim-jump, figure-extractor

统计学 Subagent

  • 领域: 统计、因果推断
  • 专长: R 代码复现
  • 风格: 注重计算验证
  • Skills: r-expert, gemini-browser-chat
61 / 69

Future Work

未来发展方向

62 / 69

Future Roadmap

扩大文献库

覆盖更多数学领域

自动化增强

更多 AI 模型集成

工具集成

深化现有工具链

知识图谱

构建概念关联网络

协作功能

多用户协作支持

Subagent

每个文献库专属代理

63 / 69

Key Takeaways

让研究者专注思考,
而非工具

自动化

重复性工作交给 AI

一致性

符号格式全程规范

可追溯

完整知识演化路径

64 / 69

Skills 总览

24 Skills 5 大类

65 / 69

Skills 总览表

类别 数量 Skills
阅读与笔记 6 latex-notes, skim-jump, reading-progress, interactive-qa, obsidian-cli, literature-notes-template
研究与引用 4 gs-search, paper-references-generator, literature-reference-manager, citation-bibliography-generator
图表提取 4 pdf-figure-extractor, figure-extractor, gemini-image-analyzer, minimax-vision
写作与模板 4 beamer-chinese-presentation, homework-workflow, chapter0-template, note-content-verifier
开发与AI 6 frontend-slides, auto-commit-push, latex-label-ref-verifier, latex-debug, gemini-browser-chat, r-expert
66 / 69

问答环节

欢迎提出想法和建议!

联系邮箱:yueyh@mail2.sysu.edu.cn

67 / 69

相关资源

Vibe Research

让学术研究更高效

基于 Claude Code 的自动化科研工作流

Built with Claude Code

AI 驱动的学术文献阅读与讲义生成

68 / 69

感谢聆听

期待交流

乐绎华 · 中山大学 数学学院

yueyh@mail2.sysu.edu.cn

69 / 69
// Keyboard navigation document.addEventListener('keydown', (e) => { const slides = document.querySelectorAll('.slide'); const currentSlide = Array.from(slides).findIndex(slide => slide.getBoundingClientRect().top >= 0 && slide.getBoundingClientRect().top < window.innerHeight / 2 ); if (e.key === 'ArrowDown' || e.key === 'ArrowRight' || e.key === ' ') { e.preventDefault(); if (currentSlide < slides.length - 1) { slides[currentSlide + 1].scrollIntoView({ behavior: 'smooth' }); } } else if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') { e.preventDefault(); if (currentSlide > 0) { slides[currentSlide - 1].scrollIntoView({ behavior: 'smooth' }); } } });