OpenDraft 学术论文起草引擎
给一个选题,自动检索真实文献、核查 DOI,并导出 PDF、Word 或 LaTeX 的研究初稿。
- Star 数
- ★ 497
- 最近更新
- 2 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 81/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code · OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 研究生要写硕士论文或博士论文的第一版结构稿,希望先有一份 30–80 页、带真实参考文献的底稿再动笔改写。
- 不适合
- 希望一键产出可提交终稿、跳过人工复核的人
- 只需要轻量文本润色、不需要引用核查的用户
- 源码审查
- 81/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
OpenDraft 是一个开源的 Python 引擎,用 19 个分工明确的 AI Agent 把一句选题扩展成研究论文、文献综述或学位论文章节的初稿,典型产出 10k–20k+ 词、5–80+ 页,耗时约 10–20 分钟。它的核心差异在于引用核查:引擎会去 CrossRef、OpenAlex、Semantic Scholar 检索候选文献,默认只有当一条引用的 DOI 至少被其中两个数据库收录时才保留,单库或查不到的引用会被丢弃并记录原因。每条引用在 bibliography.json 中都带有 verification_status、verification_sources 等溯源字段,另有一套基于论文主题的 CitationClaimVerifier 做“来源是否真的支持该论点”的判断。使用方式有三种:作为命令行工具(opendraft <topic>)、作为 Python 库(from engine.draft_generator import DraftGenerator),或作为 Claude Code / Codex 可加载的 autonomous-research Skill。软件本身 MIT 免费,但你自带模型 API Key,单篇草稿的 API 成本约 $0.35–$3。
引擎按“研究 → 结构 → 写作 → 引用 → 润色 → 导出”六个阶段调度 19 个 Agent。研究阶段调用 CrossRef、OpenAlex、Semantic Scholar API 找候选论文,再按 DOI 逐个回查,默认 require_multi_source=True、min_confirming_sources=2,不足两条库确认的引用被丢弃;引用阶段做去重、质量过滤,并用 CitationClaimVerifier 针对论文主题给出 RELEVANT / IRRELEVANT / UNCERTAIN,报告写入 citation_claim_verification.md 与 .json。产出通过 to_pdf()、to_docx()、to_latex() 导出 PDF、Word 或 LaTeX,支持 57+ 种语言。附带工具还有 opendraft tldr(5 条要点摘要)、opendraft digest(ElevenLabs 语音简报)、opendraft revise(带版本号的草稿修订)、opendraft data(World Bank / Eurostat / Our World in Data 数据抓取)以及 --expose 快速选题模式。
- 研究生要写硕士论文或博士论文的第一版结构稿,希望先有一份 30–80 页、带真实参考文献的底稿再动笔改写。
- 科研人员准备文献综述,需要先快速确认某个选题下是否存在足够可核查的文献(可直接跑 --expose 模式)。
- 要为期刊投稿起草论文,最后需要 LaTeX 源码以便按期刊模板排版。
- 课题组成员想在做正式检索前,先拿到一份带 DOI 书目、可逐条核对的候选文献清单。
- Claude Code 或 Codex 用户希望把研究流程做成一个可读、可改的 Skill,直接让 Agent 执行 18 个 stage。
- 写作者手头有别人的 PDF 论文,想用 opendraft tldr 或 opendraft digest 快速得到要点摘要或 60 秒语音简报。
如何安装或部署这个 Agent?
前置条件:Python 3.10+,以及一个 Gemini API Key。
git clone https://github.com/federicodeponte/opendraft.git
cd opendraft
pip install -r requirements.txt在同一目录创建 .env,填入密钥(默认走 Gemini):
GOOGLE_API_KEY=your-gemini-api-key若要用 PDF 相关读取功能,需要额外安装可选依赖:
pip install opendraft[pdf]如果只想把它当作 Claude Code / Codex 的 Skill 使用,可以不装 Python 引擎:
npx skills add federicodeponte/opendraft --skill autonomous-research切到其他模型时需要额外配置:OpenAI 用 AI_PROVIDER=openai 加 OPENAI_API_KEY,Anthropic 用 AI_PROVIDER=claude 加 ANTHROPIC_API_KEY。如需语音简报,另配 ELEVENLABS_API_KEY。
如何使用这个 Agent?
作为 Python 库调用:
from engine.draft_generator import DraftGenerator
generator = DraftGenerator()
draft = generator.generate(
topic="The Impact of AI on Academic Research",
paper_type="master", # research_paper, bachelor, master, phd
language="en"
)
draft.to_pdf("thesis.pdf")
draft.to_docx("thesis.docx")
draft.to_latex("thesis.tex")作为命令行工具,常用子命令包括:
# 快速选题概览(约比完整草稿快 3 倍)
opendraft "Neural Networks in Healthcare" --expose
# 带指令修订已有草稿,自动生成 draft_v2.md 并导出
opendraft revise ./output "Make the introduction longer and add more context"
# 5 条要点摘要
opendraft tldr paper.pdf -o summary.md
# 60 秒语音简报(需要 ELEVENLABS_API_KEY)
opendraft digest paper.pdf --voice adam作为 Skill 使用时,在 Agent 里连上 Edge 后说一句 Write a paper on <topic> 即可;该 Skill 是 18 个 markdown prompt 加 5 个标准库 Python 脚本的移植实现,不调用本仓库的 Python 引擎,也不连任何托管服务,因此不需要 API Key。
这个 Agent 有哪些优点和局限?
- 默认要求一条引用的 DOI 至少被 CrossRef、OpenAlex、Semantic Scholar 中两个数据库收录,单库结果被丢弃并记录,这一策略是默认而非可选项。
- 溯源做得细:bibliography.json 里每条引用都带 verification_status 与 verification_sources,即使为空也会写出,避免未确认引用看起来像已确认。
- 在“存在性核查”之外还有 CitationClaimVerifier 做论点级判断,并明确说明这是 LLM 判断而非证明,UNCERTAIN 不等于通过。
- 同时提供 CLI、Python 库和 Claude Code / Codex 的 Skill 三种用法,Skill 版无需 API Key、每个 stage 都是可读可改的文件。
- MIT 许可,导出覆盖 PDF、Word、LaTeX,支持 57+ 种语言,模型侧可在 Gemini、OpenAI、Anthropic 之间切换。
- 软件免费但必须自带模型 API Key,单篇草稿的 API 成本约 $0.35–$3,全程依赖联网调用学术数据库与模型。
- 严格确认会显著减少可用引用,管道在引用阶段无引用存活时会抛 PipelineValidationError 直接失败;README 也承认此前引用的引用数量与页数指标是在改为多源确认之前测的,尚未重新测量。
- 多源确认并非三个相互独立的证明:OpenAlex 与 Semantic Scholar 都会摄取 Crossref 元数据,且其中一个来源可能是最初返回候选、未回查的数据库。
- 引擎不查 arXiv 作为引用数据库,引用阶段只能针对论文主题做判断,逐句核查需要草稿存在后另行调用 run_citation_claim_verification()。
- 官方明确它不是一键生成终稿的工具,必须人工复核来源、补自己的分析并符合所在机构的 AI 政策。
这个 Agent 与同类方案有什么区别?
README 明确将本项目与通用 AI 写作工具区分:后者常产出语气自信但引用不可核查的草稿。文中提到的相关项目包括同作者的托管版 OpenPaper(openpaper.dev)、统一模型 API 网关 Edge(getedge.cc),以及作为通用替代方案的 ChatGPT 类写作工具。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| OpenDraft 学术论文起草引擎 当前 | 81 · 表现良好 | 命令行工具免费 + 模型费 | ★ 497 | 2 天前 | Python | Codex · Claude Code · OpenAI API · Claude API |
| PaperJury | 79 · 表现良好 | Agent 插件 / 技能免费 + 模型费 | ★ 1.2k | 1 个月前 | JavaScript | Codex · Claude Code |
| PaperDebugger | 44 · 缺口较多 | 浏览器扩展免费 + 模型费 | ★ 1.5k | 3 个月前 | TypeScript | — |
| PaperOrchestra 技能包 | 62 · 存在缺口 | Agent 插件 / 技能免费 + 模型费 | ★ 673 | 13 天前 | Python | Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
工具本身权限克制:仅写入本地工作目录、按需请求学术数据库与数据 API,Skill 端口为无密钥的提示+脚本,声明不依赖托管服务。引言溯源字段(confirming_sources 与 independently_confirmed_by 之分)数据流透明度突出,扣分点在于用户确认与回滚仅停留在'建议人工审阅'和 revise 版本号层面,无 Agent 交互级确认机制;许可版权人(SCAILE Technologies GmbH)与仓库作者(Federico De Ponte)不一致,归属链条需自行核实。
依赖以范围约束并附注释,发布流水线校验 flat-layout 防回归,测试展示优雅失败(错误状态码、Try: 提示、PipelineValidationError)。扣分:未提供 lockfile/哈希锁定,引文数量等宣传数字自认未在严格确认默认值后重测,README 与 19 个 agent 的结构章节在提供文件中被截断。
受众(研究者、研究生、维护者)、'What OpenDraft is NOT' 边界声明、逐项的验证能力与不验证事项说明都非常充分;但触发与运行环境(引擎与 Skill 行为差异、无 arXiv 客户端)需要读者跨多段比对,扣在环境一致性的显式程度。
信息架构、安装步骤、示例、FAQ、已知限制('measured before multi-source confirmation' 等历史数据标注)与 MIT 许可均到位,属于罕见的高规范度;扣分:CHANGELOG 仅被引用未见内容,安全与维护响应(48 小时)为承诺而非证据,发布者身份未经验证。
输出可直接使用:PDF/DOCX/LaTeX 导出、bibliography. 含逐条验证状态、unconfirmed 来源永不容伪装为 confirmed;多源确认与 claim 级验证带来相对单模型写作工具的明确边际价值;API 成本区间已披露。扣分:严格确认会减少引文并可能使运行失败,成本收益权衡需用户自行调参。
这是本仓库最强维度:逐条 DOI 多库确认、verification_sources 空值也显式序列化、明确区分'存在性证明'与'支持性判断',并自曝 OpenAlex/Semantic Scholar 与 Crossref 元数据不独立。几乎满分,仅因 LLM 判定(IRRELEVANT/UNCERTAIN)依赖标题摘要而非全文而略有保留。
- 引文确认只证明 DOI 存在且被索引,不证明该文献支持正文句子;claim 级判定是语言模型判断且仅读标题摘要,必须人工审阅全文。
- OpenAlex 与 Semantic Scholar 均摄入 Crossref 元数据,'2/3 数据库确认'并非三个独立来源。
- 默认严格确认会减少引文数量并可能触发 PipelineValidationError;README 中引文数量指标为历史数据,未经重测。
- LICENSE 版权人为 SCAILE Technologies GmbH,与仓库署名作者不一致,商用或再分发前请核实归属。
- API 密钥(Gemini/OpenAI/Anthropic/ElevenLabs)由用户自备,请勿提交至版本库,并注意网络请求会向第三方学术与数据 API 发送查询内容。