☰
从实验数据到NeurIPS/ICML格式论文:NanoResearch写作引擎架构与LaTeX模板定制指南
2026/10/14 14:44:00 网站建设 项目流程

【免费下载链接】NanoResearch

🦞+🔬 NanoResearch: The Autonomous AI Research Assistant

项目地址:https://gitcode.com/gh_mirrors/na/NanoResearch
点击查看免费下载

🔬NanoResearch 写作引擎(Writing Engine)是这款自主 AI 科研引擎中把"真实实验数据"变成"会议格式论文"的核心模块。它基于实验结果构建证据包(Grounding Packet),逐节撰写 LaTeX 内容,再套用NeurIPS / ICML / arXiv 格式模板渲染并自动编译,最终产出可直接投稿结构的paper.pdf与paper.tex——论文中的每个数字都来自实际运行的实验,而非模型编造。

一、写作引擎在流水线中的位置

NanoResearch 的 9 阶段流水线为:IDEATION → PLANNING → SETUP → CODING → EXECUTION → ANALYSIS → FIGURE_GEN → WRITING → REVIEW。写作引擎正是WRITING阶段的执行者,它的输入包括:

输入来源阶段用途
实验结果experiment_resultsEXECUTION主结果、消融数据
实验分析experiment_analysisANALYSIS指标解读与结论支撑
图表产物figure_outputFIGURE_GEN架构图、结果图、消融图
文献池papersIDEATIONIntroduction / Related Work 引用

二、证据包机制:为什么数据不会被编造

写作入口 writing_agent.py 的第一步就是构建Grounding Packet(定义见 _types.py),由 grounding.py 完成。这个结构化证据包包含:

  • main_results/ablation_results:主结果与消融结果
  • comparison_with_baselines:与基线的对比
  • main_table_latex/ablation_table_latex:预构建的 LaTeX 表格骨架
  • evidence_gaps:证据缺口——论文无法支撑的结论会被显式标记

💡 关键设计:写作阶段只读取真实执行结果。如果某类实验没有产物,系统会缩小证据范围或写入 Limitation / Future Work,而不会补一个"看起来合理"的 synthetic 数值。

三、逐节写作:从 Stage Planner 到 Section Writer

写作流程被拆成几个清晰的子模块(位于 nanoresearch/agents/writing/):

  1. Stage Planner(stage_planner.py):先生成一份"写作计划",落盘为plans/paper_structure_plan.json;
  2. Section Writer(section_writer.py):按init.py 中定义的PAPER_SECTIONS逐节生成——Introduction、Related Work、Method、Experiments、Conclusion。每个章节都附带精细的写作指令,例如 Method 要求"每个组件一个\subsection+ 编号公式 + 复杂度分析",Introduction 要求经典三段式结构且贡献点不超过 3 条;
  3. Citation Manager(citation_manager.py):把文献池转成 cite key 映射并生成references.bib,章节内引用只能使用已提供的 cite key,杜绝"幻觉引用";
  4. Context Builder(context_builder.py):为每节组装最精简的上下文,避免无关信息干扰生成。

值得注意的是,写作引擎区分original research(原创研究)与survey(综述)两种论文模式,分别使用不同的章节清单(PAPER_MODE_SECTIONS),一套引擎即可产出两种体裁。

四、LaTeX 模板定制指南

4.1 模板在哪里

所有模板集中在 nanoresearch/templates/,系统通过 templates/init.py 自动发现格式——只要某目录下存在paper.tex.j2,就会被识别为可用格式。当前内置 5 种:

格式目录用途
neurips/NeurIPS 会议格式
icml/ICML 会议格式
arxiv/arXiv 预印本
survey/综述论文
base/通用基础模板(含分节模板)

4.2 模板长什么样

以 neurips/paper.tex.j2 为例,它使用自定义 Jinja2 分隔符,避免与 LaTeX 命令的{}、#冲突:

<# 块语法: <% %> ;变量: << >> ;注释: <# #> #> \usepackage[final]{neurips_2024} \title{<< title >>} \author{<%- for author in authors %> << author >><% if not loop.last %> \and <% endif %> <%- endfor %>} <% for section in sections %> \section{<< section.heading >>}\label{<< section.label >>} << section.content >> <% endfor %> \bibliographystyle{plainnat} \bibliography{references}

[icml/paper.tex.j2](https://link.gitcode.com/i/e28905bdbd5cb6c30a3d47c41e2730d9)结构几乎一致,只是换成了\usepackage{icml2024}与 ICML 的 bibstyle——改一处即可切换会议风格。

4.3 三步定制新模板

  1. 在templates/下新建目录(如colm2026/),放入paper.tex.j2;
  2. 把该会议的.sty/.cls/.bst文件一并放入目录——get_style_files()会自动把它们复制进编译目录,无需手动管理;
  3. 运行时用--format colm2026或在~/.nanoresearch/config.json中设置"template_format": "colm2026"即可生效(默认值见 config.py 中的template_format字段)。

五、自动编译与 LaTeX 自修复

渲染由 latex_assembler.py 完成,包含三层保障:

  • 图表自动放置(latex_figure_placement.py):章节正文不需要手写\begin{figure},图会自动插入到对应\ref{fig:...}引用附近;
  • LaTeX 文本消毒(_latex_helpers.py):转义危险字符、清理 LLM 的思考残留,防止编译炸裂;
  • 编译-修复循环:_compile_pdf编译失败时,会把错误日志反馈给 LLM 自动修复.tex并重试,最多MAX_LATEX_FIX_ATTEMPTS = 3轮,且修复前自动备份原文件为.tex.bak,彻底失败时回滚。

⚠️ 编译工具推荐tectonic(conda install -c conda-forge tectonic),它会自动拉取所需 TeX 宏包,省去手动装 texlive 的坑。

六、快速上手:一条命令跑通

配置好~/.nanoresearch/config.json(base_url+api_key)后:

# 指定 NeurIPS 2025 格式运行完整流水线 nanoresearch run --topic "Adaptive Sparse Attention" --format neurips2025 --verbose # 中途失败后从断点恢复 nanoresearch resume --workspace ~/.nanoresearch/workspace/research/{session_id} # 导出论文包(paper.pdf / paper.tex / references.bib / figures/) nanoresearch export --workspace ~/.nanoresearch/workspace/research/{session_id} --output ./my_paper

运行过程中可用nanoresearch status --workspace ...查看各阶段产物,导出目录即为可直接投稿结构的paper.pdf、paper.tex、references.bib、figures/与manifest.json。

七、总结

NanoResearch 写作引擎的三层设计值得借鉴:证据包让数字有出处、逐节生成 + 引用白名单让行文不跑偏、Jinja2 模板 + 自动修复编译让格式切换零成本。想深入定制,建议按此顺序阅读源码:

  • 证据与接地:grounding.py、grounding_tables.py
  • 章节提示词:agents/writing/init.py 中的PAPER_SECTIONS
  • 渲染与编译:latex_assembler.py
  • 模板入口:templates/neurips/paper.tex.j2、templates/icml/paper.tex.j2

把实验数据真正写进论文,而不是让模型"想象"数据——这正是 NanoResearch 写作引擎的核心价值。📄

【免费下载链接】NanoResearch

🦞+🔬 NanoResearch: The Autonomous AI Research Assistant

项目地址:https://gitcode.com/gh_mirrors/na/NanoResearch
点击查看免费下载

相关推荐

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

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

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

立即咨询