Skip to content

OpenRaiser/NanoResearch

Repository files navigation

NanoResearch Logo

NanoResearch

中文 English

端到端自主 AI 科研引擎 — 从研究想法到完整论文,全程自动化

Project Stars Issues

Python License Pipeline Execution

快速开始 · 效果展示 · 流水线 · Claude Code · 飞书机器人


🔬 NanoResearch 真正运行计算实验——它不仅生成代码,还能将代码提交到 GPU 集群执行训练,收集真实实验结果,生成论文配图,最终输出一篇有实验数据支撑的完整 LaTeX 论文。论文中的每一个数据、表格、图表都来自实际运行的实验结果,而非 LLM 编造


📖 目录

🔝 返回顶部


📊 论文实测展示

以下为 NanoResearch 自动生成论文中的真实配图,所有数据、曲线、表格均来自实际运行的实验结果,非 LLM 虚构

实验结果
实验结果展示
主结果对比
方法对比 / 主结果
消融与可视化
消融与可视化

以上配图均为流水线自动生成,数据来源于真实训练日志与实验结果。


⚡ CLI 演示

NanoResearch 命令行(CLI) 提供 TUI 全屏界面传统流式日志 两种呈现方式。下方为 CLI 端 TUI 主题与界面 演示视频(配色切换与布局优化)。其他入口(如 Claude Code、飞书机器人)见文档对应章节。

🖥️ CLI / TUI

demo_cli_tui_theme.mp4
演示:TUI 界面、配色主题切换与信息布局优化

🔝 返回顶部


Table of Contents

Why NanoResearch

特性 传统 AI 写作工具 NanoResearch
文献检索 部分支持 ✅ OpenAlex + Semantic Scholar 自动检索
实验设计 ✅ 自动生成实验方案
代码生成 部分支持 ✅ 完整可运行的实验代码
GPU 实验执行 本地 / SLURM 自动训练
结果分析 ✅ 解析真实训练日志
论文配图 ✅ 基于真实数据
论文撰写 大纲/草稿 ✅ 完整 LaTeX 论文
断点续跑 ✅ 任意阶段可恢复
多模型协作 单一模型 ✅ 按阶段路由

🎯 应用场景

  • 科研原型验证 — 快速将研究想法变成完整的实验 + 论文工作空间
  • 自主实验 — 系统自动生成代码、提交 GPU 训练、分析结果
  • Benchmark 批量生成 — 对多个课题批量运行,生成可复现的实验结果
  • 论文初稿辅助 — 基于真实实验数据产出 LaTeX 草稿,加速写作
  • 科研流程审计 — 完整工作空间、中间产物和日志,可追溯每一步

🖼️ 效果展示

告别手动科研

告别手动科研的痛苦循环

不再反复调试失败的实验、手动整理数据、从零写论文——
NanoResearch 将完整科研流程自动化,让你专注于真正的研究创新。

CLI:标准输出与 TUI 模式对比

CLI 支持 传统流式日志(非 TUI)全屏 TUI 面板 两种呈现方式,可按习惯切换。

标准输出(非 TUI)

NanoResearch CLI 标准输出模式

非 TUI:经典终端日志流,便于重定向与脚本集成

TUI 模式

NanoResearch CLI TUI 模式

TUI:结构化面板与状态分区,适合交互式监控

示例输出

框架概览
框架概览
生成论文示例
生成论文示例
主结果
主结果(真实实验数据)
消融实验
消融实验

🔬 流水线

Research Topic
     ↓
 IDEATION → PLANNING → SETUP → CODING → EXECUTION → ANALYSIS → FIGURE_GEN → WRITING → REVIEW
     ↓
 Exported: paper.pdf / paper.tex / references.bib / figures / code / data
📋 各阶段详细说明
Stage 功能 说明
IDEATION 文献检索与创意生成 搜索学术文献、发现研究空白、提出假说、收集必引文献
PLANNING 实验方案设计 将研究想法转化为详细的实验蓝图(数据集、基线、指标、消融)
SETUP 环境准备 准备代码仓库、依赖环境、模型和数据集
CODING 代码生成 生成完整可运行的实验项目(含训练脚本、数据处理、模型定义)
EXECUTION 实验执行 在本地 GPU 或 SLURM 集群上运行训练,支持自动重试和调试
ANALYSIS 结果分析 解析训练日志和指标,生成结构化实验证据
FIGURE_GEN 图表生成 创建架构图、结果对比图、消融实验图
WRITING 论文撰写 基于实验证据和引用撰写 LaTeX 论文
REVIEW 审稿与修订 自动审阅各章节,检测问题并修订
🚀 EXECUTION 阶段核心能力

EXECUTION 阶段是 NanoResearch 的核心差异化能力:

  • 自动提交 SLURM 作业 — 生成 sbatch 脚本,提交到集群,监控作业状态
  • 本地 GPU 执行 — 自动检测可用 GPU,管理训练进程
  • 自动调试与重试 — 训练失败时自动分析错误日志,修复代码并重新执行
  • 实时日志监控 — 追踪训练进度和指标变化
  • 混合执行模式 — 可根据任务复杂度在本地和集群之间自动切换

📦 快速开始

遵循以下步骤,约 5 分钟即可完成从安装到首次运行的完整流程。

步骤一:安装

git clone https://github.com/OpenRaiser/NanoResearch.git
cd NanoResearch
pip install -e ".[dev]"

步骤二:配置

Tip

创建 ~/.nanobot/config.json,替换 base_urlapi_key 为你自己的 OpenAI 兼容 API 端点。

查看完整配置示例
{
  "research": {
    "base_url": "https://your-openai-compatible-endpoint/v1/",
    "api_key": "your-api-key",
    "template_format": "neurips2025",
    "execution_profile": "local_quick",
    "writing_mode": "hybrid",
    "max_retries": 2,
    "auto_create_env": true,
    "auto_download_resources": true,
    "ideation": { "model": "your-model", "temperature": 0.5, "max_tokens": 16384, "timeout": 600.0 },
    "planning": { "model": "your-model", "temperature": 0.2, "max_tokens": 16384, "timeout": 600.0 },
    "code_gen": { "model": "your-model", "temperature": 0.1, "max_tokens": 16384, "timeout": 600.0 },
    "writing": { "model": "your-model", "temperature": 0.4, "max_tokens": 16384, "timeout": 600.0 },
    "figure_gen": {
      "model": "gemini-3.1-flash-image-preview",
      "image_backend": "gemini",
      "temperature": null,
      "timeout": 300.0
    },
    "review": { "model": "your-model", "temperature": 0.3, "max_tokens": 16384, "timeout": 300.0 }
  }
}

环境变量覆盖:NANORESEARCH_BASE_URL / NANORESEARCH_API_KEY / NANORESEARCH_TIMEOUT

步骤三:验证与运行

# 验证配置
nanoresearch run --topic "Adaptive Sparse Attention Mechanisms" --dry-run

# 启动完整流水线
nanoresearch run --topic "Adaptive Sparse Attention Mechanisms" --format neurips2025 --verbose

# 从断点恢复(若某阶段失败)
nanoresearch resume --workspace ~/.nanobot/workspace/research/{session_id} --verbose

# 导出论文
nanoresearch export --workspace ~/.nanobot/workspace/research/{session_id} --output ./my_paper

步骤四:预期输出

完成流水线后,你将得到包含真实实验数据的论文配图与 LaTeX 源码。以下为实测输出示例:

实验结果
实验结果
主结果对比
主结果对比
消融与可视化
消融与可视化

🤖 推荐模型

Stage 任务 推荐模型 经济型
ideation 文献检索 + 假说生成 DeepSeek-V3.2 DeepSeek-V3.2
planning 实验设计 Claude Sonnet 4.6 DeepSeek-V3.2
code_gen 代码生成 GPT-5.2-Codex / Claude Opus 4.6 DeepSeek-V3.2
writing 论文撰写 Claude Opus 4.6 / Claude Sonnet 4.6 DeepSeek-V3.2
figure_prompt 图表描述 GPT-5.2 DeepSeek-V3.2
figure_code 图表绘制代码 Claude Opus 4.6 DeepSeek-V3.2
figure_gen AI 架构图生成 Gemini 3.1 Flash(原生图像生成) Gemini 3.1 Flash
review 审稿 + 修订 Claude Sonnet 4.6 / Gemini Flash DeepSeek-V3.2

说明:所有文本模型通过单一 OpenAI 兼容端点访问。对于不支持 temperature 的模型(如 Codex、o 系列),设置 temperature: nullfigure_gen 使用 Gemini 原生图像生成 API,需设置 "image_backend": "gemini"

💰 预估费用

场景 模型选择 时间 预估费用
仅生成论文(跳过实验) 全部 DeepSeek-V3.2 ~30 分钟 ~$0.5 - $1
仅生成论文(跳过实验) 混合(Claude 写作,DeepSeek 其余) ~30 分钟 ~$3 - $8
完整流水线(含实验) 全部 DeepSeek-V3.2 2 - 5 小时 ~$1 - $3
完整流水线(含实验) 混合(Claude/GPT 代码+写作) 2 - 5 小时 ~$10 - $20

"仅生成论文"模式通过 "skip_stages": ["SETUP", "CODING", "EXECUTION", "ANALYSIS"] 跳过实验阶段。


🧩 Claude Code 模式

除了 Python CLI,NanoResearch 还支持通过 Claude Code 直接驱动研究流水线——无需配置任何 API Key

工作原理

在 Claude Code 集成模式下,Claude Code 本身就是研究引擎:

  • WebSearch 替代外部 API 进行文献检索(arXiv、Semantic Scholar、Google Scholar)
  • Bash 执行实验代码、提交 SLURM 作业、编译 LaTeX
  • 文件读写 生成实验代码、论文和结构化产物

快速开始

git clone https://github.com/OpenRaiser/NanoResearch.git
cd NanoResearch
claude
/project:research "你的研究课题"

可用命令

命令 功能
/project:research <课题> 运行完整 9 阶段流水线
/project:ideation <topic> Stage 1: 文献检索 + 假说生成
/project:planning Stage 2: 实验方案设计
/project:experiment Stages 3-5: 环境准备 + 代码生成 + 实验执行
/project:analysis Stage 6: 实验结果分析
/project:writing Stages 7-8: 图表生成 + 论文撰写
/project:review Stage 9: 多视角审稿 + 修订
/project:status 查看当前流水线状态
/project:resume 从断点恢复流水线
💡 Tips
  • 架构图生成:推荐使用 Nano Banana 系列图像模型生成高质量架构图。Claude Code 模式下可在 figure_gen 阶段通过 Bash 调用图像生成 API。
  • LaTeX 编译:推荐使用 tectonic 替代 pdflatex。安装:conda install -c conda-forge tectonic
  • 断点续跑:所有阶段的产物保存在 manifest.json 中,支持任意阶段恢复。
  • 与 Python CLI 兼容:Claude Code 模式生成的工作空间与 Python CLI 完全兼容,可混合使用两种模式。

Codex Integration

除了 Claude Code,NanoResearch 现在也提供了面向 Codex 的项目级入口。Codex 不需要第二套 pipeline 或额外的 --mode codex 参数;它应直接复用仓库现有的 CLI、workspace、manifest 和 PaperMode 逻辑。

如何使用

# 1. Clone 项目
git clone https://github.com/OpenRaiser/NanoResearch.git
cd NanoResearch

# 2. 在 Codex 中打开仓库
# 3. 让 Codex 先读取 AGENTS.md

Codex 入口文档:AGENTS.md

Codex 会如何理解这个仓库

  • 将仓库视为一个端到端自主科研流水线,而不是普通代码仓库
  • 优先走已有的 nanoresearch CLI / workspace / orchestrator 行为
  • 将用户意图映射到现有的 researchideationplanningexperimentanalysiswritingreviewstatusresume 流程
  • 保持与现有工作空间和 manifest.json 兼容

Survey / Original 模式

Codex 使用与 CLI 相同的 topic 前缀约定:

  • original: Topic
  • survey:short: Topic
  • survey:standard: Topic
  • survey:long: Topic

这些前缀会进入仓库现有的 PaperMode 解析逻辑;Codex 只需要遵循这一约定,而不需要发明新的接口。

Execution Profiles

Profile 说明
fast_draft 轻量级草稿模式,快速迭代
local_quick 优先本地执行,需要时可升级到 SLURM
cluster_full 集群优先,适合重量级实验

模型路由

NanoResearch 通过统一配置层将不同阶段路由到不同模型,让你按任务特性混合搭配,而非强制所有阶段使用同一模型。

可路由的阶段
  • ideation — 文献检索与创意
  • planning — 实验设计
  • experiment — 实验相关
  • code_gen — 代码生成
  • writing — 论文撰写
  • figure_prompt — 图表描述
  • figure_code — 图表代码
  • figure_gen — 图像生成
  • review — 审稿
  • revision — 修订

系统基于 OpenAI 兼容端点构建,支持按阶段覆盖配置。

文献检索 API Keys(可选)

IDEATION 阶段使用 OpenAlex 和 Semantic Scholar 检索学术文献。不配置也能运行(匿名访问),但速率限制较低。

Service 获取方式 Config key Env variable
OpenAlex 免费 openalex_api_key OPENALEX_API_KEY
Semantic Scholar 免费 s2_api_key S2_API_KEY

论文格式

模板从 nanoresearch/templates/ 自动发现。内置模板:

Format 用途
arxiv arXiv 预印本
icml ICML 会议
neurips NeurIPS 会议
neurips2025 NeurIPS 2025
nanoresearch run --topic "Graph Foundation Models for Biology" --format neurips2025

💻 CLI 参考

命令 用途
nanoresearch run --topic "..." 启动新的流水线运行
nanoresearch resume --workspace ... 从上次断点恢复
nanoresearch status --workspace ... 查看各阶段状态和产物
nanoresearch list 列出已保存的研究会话
nanoresearch export --workspace ... 导出论文打包
nanoresearch config 打印当前配置(密钥已屏蔽)
nanoresearch inspect --workspace ... 检查工作空间产物
nanoresearch health 运行环境/配置健康检查
nanoresearch delete <session_id> 删除指定会话
nanoresearch --help

🔝 返回顶部


🍪 示例与 Demo

官方示例与进阶用法,助你快速上手 NanoResearch:

👉 浏览示例与 Demo

快速示例命令
# 完整流水线 + 详细日志
nanoresearch run --topic "Adaptive Sparse Attention" --format neurips2025 --verbose

# 导出并查看
nanoresearch export --workspace ~/.nanobot/workspace/research/{session_id} --output ./paper_out

仅生成论文(跳过实验):在 config 中设置 "skip_stages": ["SETUP", "CODING", "EXECUTION", "ANALYSIS"]

🔝 返回顶部


📂 输出结构

导出的论文目录
my_paper/
├── paper.pdf
├── paper.tex
├── references.bib
├── figures/
├── code/
├── data/
└── manifest.json
完整工作空间(含中间产物)
~/.nanobot/workspace/research/{session_id}/
├── manifest.json          # 流水线状态追踪
├── papers/                # 文献检索产物
├── plans/                 # 实验方案和分析
├── experiment/            # 生成的实验代码 + 结果
├── figures/               # 生成的论文配图
├── drafts/                # 论文草稿和审稿意见
├── output/                # 最终导出(main.tex / main.pdf)
└── logs/                  # 运行日志

💬 飞书机器人

NanoResearch 内置飞书(Lark)机器人,可直接在飞书聊天中触发流水线、查看进度、接收论文——无需打开终端。

配置与启动

1. 安装依赖

pip install lark-oapi

2. 配置

open.feishu.cn 创建自定义应用并获取 App ID 和 App Secret:

export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="xxx"

或写入 ~/.nanobot/config.json

{
  "feishu": {
    "app_id": "cli_xxx",
    "app_secret": "xxx"
  }
}

3. 启动

nanoresearch feishu          # 启动机器人
nanoresearch feishu -v       # 详细日志模式

机器人通过 WebSocket 长连接通信(无需公网服务器或 Webhook URL)。按 Ctrl+C 停止。

支持的命令

命令 描述
/run <课题> 对指定课题启动研究流水线
/status 查看当前任务进度
/list 列出所有历史研究会话
/stop 停止当前运行的流水线
/export 重新导出最近完成的研究
/new 清除对话记忆,重新开始
/help 显示帮助信息

也可以直接自然语言聊天——机器人充当 AI 科研助手,支持对话记忆,流水线完成后自动发送 paper.pdf


🏗️ 项目结构

nanoresearch/
├── nanoresearch/
│   ├── cli.py              # 🖥️ CLI 入口
│   ├── config.py           # ⚙️ 配置管理
│   ├── agents/             # 🧠 各阶段 Agent
│   │   ├── ideation.py     #    文献检索与假说
│   │   ├── planning.py     #    实验方案设计
│   │   ├── coding.py       #    代码生成
│   │   ├── execution/      #    本地/集群执行
│   │   ├── analysis/       #    结果分析
│   │   ├── figure_gen/     #    图表生成
│   │   ├── writing/        #    论文撰写
│   │   └── review/         #    审稿与修订
│   ├── pipeline/           # 🔄 编排器 & 状态机
│   ├── schemas/            # 📋 Pydantic 数据模型
│   ├── prompts/            # 💬 YAML 提示词模板
│   ├── templates/          # 📄 LaTeX Jinja2 模板
│   └── latex/              # 🔧 LaTeX 自动修复
├── mcp_server/             # 🔌 MCP 工具服务
├── skills/                 # 🎯 Claude Code 技能
└── pyproject.toml

❓ 常见问题

NanoResearch 真的会运行实验吗?

是的。流水线会生成可运行的代码,在本地 GPU 或 SLURM 集群上执行,并将实验产物传递给后续的分析、配图和写作阶段。论文中的数据来自真实实验,而非模型编造。

可以断点续跑吗?

可以。工作空间按阶段保存检查点,nanoresearch resume --workspace ... 会从上次未完成或失败的阶段继续。

每个阶段都需要配置模型吗?

不需要。NanoResearch 支持按阶段配置模型路由,也可以全部使用同一个模型。

生成的论文可以直接投稿吗?

建议将其视为高质量初稿,而非最终投稿版本。系统可以生成完整的论文工作空间和编译好的 PDF,但人工审阅和修订仍然必要。

LaTeX 编译推荐什么工具?

推荐使用 tectonic。Conda 安装的 texlive 可能缺少 pdflatex.fmt,导致编译失败且修复困难。tectonic 会自动下载所需的 TeX 包,无需额外配置。

conda install -c conda-forge tectonic

🎯 路线图

  • 9 阶段统一流水线
  • 本地 GPU + SLURM 集群执行
  • Claude Code 集成模式
  • 飞书机器人
  • 多会议论文模板(NeurIPS / ICML / arXiv)
  • 断点续跑与多模型路由
  • 更多 Demo 与教程
  • Benchmark 评估套件
  • Web 端工作空间 UI
  • 更多论文格式支持

🔝 返回顶部


🤝 贡献

欢迎开发者、研究者贡献代码与创意。

👥 社区与交流

加入微信群交流、答疑、协作。扫码加入:

WeChat Group QR Code

Contributors

🔝 返回顶部


📋 环境要求

  • Python 3.10+
  • OpenAI 兼容 API 端点(用于文本模型阶段)
  • 可选:图像模型访问权限(用于部分配图)
  • tectonicpdflatex(用于 PDF 编译)

🙏 致谢


⭐ Star History


📝 引用

如有帮助,请引用:

@software{nanoresearch2026,
  title = {NanoResearch},
  author = {OpenRaiser},
  year = {2026},
  url = {https://github.com/OpenRaiser/NanoResearch}
}

📄 许可证

MIT

🔝 返回顶部


Star Issues Discussions

NanoResearch 仅供教育、研究及技术交流使用。