DeerFlow SLR 技能 BibTeX 引文模板全解析:为 arXiv 预印本生成规范、可直接编译的 LaTeX 引用
2026/9/7 7:36:59 网站建设 项目流程

DeerFlow SLR 技能 BibTeX 引文模板全解析:为 arXiv 预印本生成规范、可直接编译的 LaTeX 引用

【免费下载链接】deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.项目地址: https://gitcode.com/GitHub_Trending/de/deer-flow

本文围绕 DeerFlow 内置技能systematic-literature-review的 BibTeX 引文模板 展开。该技能面向"系统文献综述(SLR)"场景:跨多篇论文检索 arXiv、结构化提取元数据、主题综合,并按 APA / IEEE / BibTeX 三种风格输出报告。本文聚焦其中的 BibTeX 分支——从"为什么 arXiv 必须用@misc而非@article"这一最易踩坑的规则讲起,逐字段拆解条目写法、继承报告骨架模板,并结合 SKILL.md 与 arxiv_search.py 源码,说清每个字段的数据来源与规范化逻辑。读完你可以理解为什么模板这样设计,并能在实际综述报告里直接产出可复制进.bib文件的条目。

一、模板在 SLR 工作流中的定位:只在 Phase 4 读取"一份"模板

先交代上下文。systematic-literature-review技能存放于 skills/public/systematic-literature-review/,其目录结构为:

skills/public/systematic-literature-review/ ├── SKILL.md # 技能定义:元信息 + 五阶段工作流 ├── scripts/ │ └── arxiv_search.py # arXiv 检索客户端,输出结构化论文元数据 JSON ├── templates/ │ ├── apa.md # APA 7th 引文模板 │ ├── ieee.md # IEEE 数字序号引文模板 │ └── bibtex.md # BibTeX 引文模板(本文主角) └── evals/ ├── evals.json └── trigger_eval_set.json

按照 SKILL.md 的定义,整条综述流程分成五个阶段:Plan(确认主题/范围/格式/输出位置)→ Search arXiv(检索)→ Extract(子代理并行抽取元数据)→ Synthesize and format(主题综合与格式化)→ Save and present(落盘与呈现)。BibTeX 模板服务于 Phase 4 的格式化环节,它决定两件事:

  1. 报告的引用正文写法\cite{key})与.bib条目的字段规范
  2. 报告正文的结构骨架(执行摘要、方法学、主题、共识与分歧、缺口、逐篇批注)。

需要强调的是 SKILL.md 中的一条纪律:只读取与用户要求格式匹配的那一个模板文件,而不是三个都读(见 SKILL.md 的 Phase 4 小节)。也就是说:

  • 用户要 APA 或未指定格式 → 读 templates/apa.md;
  • 用户投稿 IEEE 会议/期刊或明确要求 IEEE → 读 templates/ieee.md;
  • 用户提到 BibTeX、LaTeX、natbib、biblatex,或想要机器可读的参考文献 → 读 templates/bibtex.md

bibtex.md本身也明确了触发条件:"Use this template when the user mentions BibTeX, LaTeX, wants machine-readable references, or is writing a paper that will be typeset with a LaTeX citation style (natbib, biblatex, etc.)"——即只要用户要做 LaTeX 排版论文、需要被 natbib/biblatex 解析的引用,就走 BibTeX 分支。这一"按需取单模板"的设计,也从 evals/evals.json 的评测用例中得到印证:eval #2("Survey recent papers on graph neural networks for drug discovery. 5 papers, BibTeX format.")明确期望 "The BibTeX template file (templates/bibtex.md) was read, not apa.md or ieee.md",且输出条目必须是@misc并带eprintprimaryClass字段。

环境提示:该技能作为 DeerFlow 的公开技能(public skill)分发,运行时被挂载到沙箱的/mnt/skills下(SKILL.md 中的检索命令即为python /mnt/skills/public/systematic-literature-review/scripts/arxiv_search.py ...)。

二、最关键的规则:arXiv 论文必须用@misc,而不是@article

模板开头就用一个醒目的"Critical"段落给出本分支最核心、也最容易出错的规则:

arXiv 预印本必须写作@misc,绝不能用@article

为什么这条规则被抬高到如此位置?模板列出了三点原因:

  1. 字段契约不匹配@article类型强制要求journal字段,而 arXiv 不是期刊,是预印本服务器。把 arXiv 写成journal = {arXiv}在技术上就是错的,部分书目样式(bibliography style)会因此报错或渲染不一致。
  2. @misc才是预印本的正确归宿@misc专门用于没有正式刊载渠道的文献,如预印本、技术报告等,它原生接受howpublishedeprint字段——eprint恰好是 arXiv 引用真正需要的承载字段。
  3. 何时才能换回@article/@inproceedings:只有当论文已经正式发表在同行评审的期刊/会议上,且你手上有该出版渠道的元数据时,才切换到对应类型。而在本技能的流水线中,"我们手上只有 arXiv 元数据",因此始终输出@misc

这一点同样被evals.json固化为验收标准:"The report contains BibTeX entries using@misc, not@article"。在整条工作流里,论文的唯一来源是 arXiv 检索(见下节),所以理论上不存在"已经正式发表"的信息路径——这与模板"在本工作流中我们只有 arXiv 元数据,永远输出@misc"的结论互为印证。

三、逐字段拆解@misc条目:每个字段该填什么

3.1 标准骨架与真实示例

模板给出如下@misc骨架:

@misc{citekey, author = {LastName1, FirstName1 and LastName2, FirstName2 and ...}, title = {Title of the Paper}, year = {YYYY}, eprint = {ARXIV_ID}, archivePrefix = {arXiv}, primaryClass = {PRIMARY_CATEGORY}, url = {https://arxiv.org/abs/ARXIV_ID} }

并配了一个完全真实的例子(字段值均来自该论文的 arXiv 元数据):

@misc{vaswani2017attention, author = {Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N. and Kaiser, {\L}ukasz and Polosukhin, Illia}, title = {Attention Is All You Need}, year = {2017}, eprint = {1706.03762}, archivePrefix = {arXiv}, primaryClass = {cs.CL}, url = {https://arxiv.org/abs/1706.03762} }

第二个模板内示例devlin2018bert则展示了"标题含专有名词时用双层花括号保护大小写"的写法:

@misc{devlin2018bert, author = {Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina}, title = {{BERT}: Pre-training of Deep Bidirectional Transformers for Language Understanding}, year = {2018}, eprint = {1810.04805}, archivePrefix = {arXiv}, primaryClass = {cs.CL}, url = {https://arxiv.org/abs/1810.04805} }

3.2 逐字段规范速查

模板对每个字段都给出了精确规则,汇总如下表:

字段规则示例
引用键 cite key<首作者姓><年份><标题首词>,全小写、无标点;同一报告内必须唯一vaswani2017attention
author姓, 名 and 姓, 名 ...——作者之间用单词and(不是逗号);LaTeX 只认这一分隔符;姓在前、逗号、再给名Vaswani, Ashish and Shazeer, Noam and ...
特殊字符对 LaTeX 敏感字符转义或用花括号包裹,如Łukasz{\L}ukaszé{\'e};不确定就把整个名字包进花括号以保留大小写Kaiser, {\L}ukasz
title含缩写/专有名词需保留大写时,用双层花括号包住对应部分;否则单层花括号即可title = {{BERT}: ...}
year取论文published字段中的 4 位年份2017
eprint裸 arXiv 编号:不带arXiv:前缀、不带版本后缀1706.03762
archivePrefix字面量{arXiv}{arXiv}
primaryClass取论文categories列表中的第一个类别(论文的主学科),如cs.CLcs.CVstat.MLcs.CL
url论文元数据里的完整abs_urlhttps://arxiv.org/abs/1706.03762

3.3 这些字段与 arXiv 检索脚本的输出一一对应

bibtex.md里每个字段的取值规则都不是拍脑袋——把它们和 scripts/arxiv_search.py 的解析逻辑对照,会发现模板字段规则 = 检索脚本输出的字段子集

  • 脚本把 arXiv Atom feed 的每个<entry>解析成含id / title / authors / abstract / published / updated / categories / pdf_url / abs_url的字典(见 arxiv_search.py 的_parse_entry)。@misc条目中的authortitleyear(取自published)、primaryClass(取categories[0])、url(取abs_url)全部直接映射自这些输出字段,无需再做外部检索。
  • 关于eprint必须是"裸编号、无版本后缀"的规则,源码给出了更底层的证据:arXiv 响应的<id>实际是完整 URL(如http://arxiv.org/abs/1706.03762v5),脚本为此专门写了_normalise_arxiv_id(见 arxiv_search.py),逻辑为:先取出/abs/之后的部分(兼容hep-th/9901001这类历史编号),再剥离v\d+版本后缀,得到1706.03762。SKILL.md 的 Notes 里也再次强调:"Theidfield is a bare arXiv id (e.g.1706.03762), not a URL and not with a version suffix."——可见"裸 id"这一约定从检索阶段就被强制保证了。
  • 关于primaryClass:脚本用显式的命名空间映射(NS_MAP,见 arxiv_search.py)逐个读取<atom:category>term属性得到categories列表,模板据此要求取第一个类别作为主学科分类。

这条"检索脚本输出 → BibTeX 字段"的对应链条,正是模板能稳定产出可用条目的底层保障:因为上游已经做好 URL 归一化、类别收集、日期切片,下游只需按既定规则机械填充。

四、BibTeX 报告的独特之处:正文用\cite,参考文献独立成.bib

模板明确指出,BibTeX 报告与 APA / IEEE 分支有两处结构性差异:

  1. 参考文献是独立的.bib文件,正文用 LaTeX 风格的\cite{key}引用,编译时由 bibtex/biblatex 解析该文件来生成参考文献表;
  2. 由于当前输出介质仍是 Markdown,因此正文中把\cite{key}原样(verbatim)写出,同时把全部.bib条目放在文末的一个 fenced code block 中,方便用户直接复制存盘。

对应的报告结构模板(占位符用法保留自原文档)如下:

# Systematic Literature Review: <Topic> **Date**: <YYYY-MM-DD> **Papers surveyed**: <N> **Scope**: <arXiv search query, category, time window> **Citation format**: BibTeX ## Executive Summary <3-5 sentences. Use \cite{key} form for citations, e.g. "Transformer architectures \cite{vaswani2017attention} have become the dominant approach."> ## Methodology This review surveyed <N> arXiv papers retrieved on <YYYY-MM-DD> using the query `<query>`<, filtered to category <cat>><, published between <start_date> and <end_date>>. Metadata extraction was performed by language-model agents, with cross-paper synthesis performed by the lead agent. All citations in this report use BibTeX cite keys; the corresponding `.bib` entries are at the end of this document. **Limitations of this review**: arXiv preprints are not peer-reviewed; coverage is limited to arXiv. ## Themes ### Theme 1: <Theme name> <Paragraphs describing the theme. Cite with \cite{key} form: "The original transformer architecture \cite{vaswani2017attention} introduced self-attention, which was later extended in \cite{dai2019transformerxl}."> ### Theme 2: <Theme name> <...> ## Convergences and Disagreements **Convergences**: <e.g. "Multiple papers \cite{key1,key2,key3} agree that X is necessary."> **Disagreements**: <...> ## Gaps and Open Questions <...> ## Per-Paper Annotations ### \cite{vaswani2017attention} — "Attention Is All You Need" (2017) **Research question**: <1 sentence> **Methodology**: <1-2 sentences> **Key findings**: - <bullet> - <bullet> - <bullet> **Limitations**: <1-2 sentences> ### \cite{devlin2018bert} — "BERT: Pre-training of Deep Bidirectional Transformers" (2018) <...> ## BibTeX Bibliography Save the entries below to a `.bib` file and reference them from your LaTeX document with `\bibliography{filename}`.

该骨架与 APA 分支的结构(见 apa.md,同为 Executive Summary / Methodology / Themes / Convergences and Disagreements / Gaps / Per-Paper Annotations / References)保持对齐,只是把"References 列表"换成了"BibTeX Bibliography 代码块",把正文里的(Author, Year)文内引用换成了\cite{key}。这也与 SKILL.md 的要求一致:报告必须"do more than list papers",至少要给出 3–6 个主题、跨论文的共识(Convergences)与分歧(Disagreements)、文献未覆盖的空白(Gaps);若论文集太杂不足以支撑主题综合,要在报告里明说,不许伪造主题。

五、文末 BibTeX 代码块的正确打开方式

报告结尾的 BibTeX Bibliography 小节,把所有条目的集合放进一个bibtex语言围栏代码块(真实落盘时为普通围栏,模板文档里那对被转义的反引号只是"模板本身也处于 Markdown 代码块中"的自我嵌套处理):

@misc{vaswani2017attention, author = {Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N. and Kaiser, {\L}ukasz and Polosukhin, Illia}, title = {Attention Is All You Need}, year = {2017}, eprint = {1706.03762}, archivePrefix = {arXiv}, primaryClass = {cs.CL}, url = {https://arxiv.org/abs/1706.03762} } @misc{devlin2018bert, author = {Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina}, title = {{BERT}: Pre-training of Deep Bidirectional Transformers for Language Understanding}, year = {2018}, eprint = {1810.04805}, archivePrefix = {arXiv}, primaryClass = {cs.CL}, url = {https://arxiv.org/abs/1810.04805} } ... more entries, one per paper ...

使用方拿到这份报告后的落地流程很直接:

  1. 把该代码块整体复制保存为<report-name>.bib
  2. 在 LaTeX 主文档中用\bibliography{<filename 不带 .bib>}声明引用库;
  3. 正文中已有的\cite{key}即会在编译时与.bib中的键一一解析;
  4. 若使用 biblatex,可用\addbibresource{<filename>.bib}加载。

由于条目类型被统一为@misceprint/archivePrefix/primaryClass/url齐备,natbib、biblatex 及绝大多数 arXiv 感知的书目样式都能正确渲染成带 arXiv 编号与链接的引用条目。

六、定稿前的质量检查清单

模板在末尾给出了一份 check 清单,用于任何一份报告落盘前逐项核对。它既是给 LLM 自检用的,也可以视为"BibTeX 正确性"的可执行定义:

  • 每条文献都是@misc而非@article(本工作流只有 arXiv 元数据);
  • 引用键在同一报告内唯一;
  • 引用键符合<首作者姓><年份><标题首词>规则且全小写;
  • author字段作者之间使用单词and,而非逗号;
  • 作者名中的 LaTeX 特殊字符已转义或用花括号包裹;
  • eprint是裸 arXiv 编号(无arXiv:前缀、无版本后缀);
  • primaryClass取自论文第一类别;
  • 正文每个\cite{key}都在参考文献区有对应的@misc条目(无悬空引用);
  • 参考文献区整体置于bibtex围栏代码块内,方便用户直接复制进.bib文件。

对照 evals.json 中 BibTeX 场景的评测期望(读取 bibtex 模板而非其他两者、输出@misc、每条含eprintprimaryClass、报告含主题综合而非逐篇罗列),可以看出这份清单同时就是评测通过标准的外化——清单里的每一项,几乎都能在评测的expectations里找到对应断言。

七、从模板到生产级使用:几点实操建议

结合上游工作流,再给几个让 BibTeX 分支真正好用的注意点:

  1. 键命名先行,全报告一致:cite key 规则(<姓><年><标题首词>,如vaswani2017attention)应在 Phase 4 综合阶段就贯穿正文\cite与文末.bib,一旦键不一致就会产生悬空引用——这正是检查清单第八条要拦截的失败模式。
  2. title大小写保护只针对必需处:像{BERT}: ...这样仅在首个缩写处用双层花括号即可,不要把整个标题都套双层括号,否则会影响部分样式对标题的句首大写化处理。
  3. 作者特殊字符宁可过度保护:模板的建议是"不确定就把该名字整个用花括号包起来",例如{Łukasz}。这样做牺牲一点排版灵活性,换取 BibTeX 解析绝不报错。
  4. 不要拿pdf_urlurl:模板要求urlabs_url(论文摘要页)。APA 模板的质量检查里也写了 "arXiv URLs use theabs_urlform... notpdf_url",两种格式对读者/审稿人的体验差别明显。
  5. 数据来源单一化author/year/primaryClass/eprint/url全部来自arxiv_search.py输出的同一条元数据,不要混入人工记忆或二手信息——这正是本技能"只在 arXiv 检索、绝不复造元数据"纪律的自然延伸。

结语

DeerFlow 的 bibtex.md 模板 篇幅不长,却精确地封住了 arXiv 引用最常见的两个坑:类型用错@articlevs@misc)与字段填错eprint是否裸编号、primaryClass取哪一类别、作者分隔符用不用and)。它在技能五阶段流水线中承上启下——上游arxiv_search.py的原子字段设计让"裸 id / 首类别 / abs_url"等约定从源头成立,模板再把它们翻译成 LaTeX 生态认可的@misc语法;下游用独立的.bib代码块交付,确保每份综述报告都能被 natbib/biblatex 直接消费。需要 APA 或 IEEE 风格时,读者可以分别对照同目录下的 apa.md 与 ieee.md,并在 SKILL.md 查看完整的工作流约束与使用边界。

【免费下载链接】deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.项目地址: https://gitcode.com/GitHub_Trending/de/deer-flow

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

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

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

立即咨询