원클릭으로
academic-paper-writer-pro
// 基于规范目录结构的学术论文排版助手。支持 PDF / .doc / .docx / .md 多种输入格式,自动选择 OCR 管道、重排版管道或 MD 直转管道。包含环境清理确认、断点恢复、智能配图裁剪、逐单元增量生成 DOCX、双单元质量核查、中间状态保存和 BibTeX 参考文献管理。所有中间文件放 resources/,最终产物放 outputs/。
// 基于规范目录结构的学术论文排版助手。支持 PDF / .doc / .docx / .md 多种输入格式,自动选择 OCR 管道、重排版管道或 MD 直转管道。包含环境清理确认、断点恢复、智能配图裁剪、逐单元增量生成 DOCX、双单元质量核查、中间状态保存和 BibTeX 参考文献管理。所有中间文件放 resources/,最终产物放 outputs/。
基于代码仓库、笔记、实验数据或论文要求,全自动智能撰写学术论文初稿的主线管线。强制分章逐批检索代码、分步输出,内置规避上下文超限机制和人工审核卡点,无缝衔接格式化引擎。内置严格的学术 Prompt 准则与多模态图表检索能力。
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of "Word doc", "word document", ".docx", or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a "report", "memo", "letter", "template", or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
使用多模态大模型逐页读取长文档图片,精确提取文本、LaTeX公式和独立科研配图。支持环境清理、断点恢复、全局编号管理、失败页标记与部分重跑。逐页生成DOCX并每两页核查质量。本 Skill 专用于 Pipeline A(OCR 管道),处理 PDF 输入。中间产物全部放在 resources/,最终交付物放在 outputs/。Pipeline B / C 定义在主 SKILL.md 中。
| name | academic-paper-writer-pro |
| description | 基于规范目录结构的学术论文排版助手。支持 PDF / .doc / .docx / .md 多种输入格式,自动选择 OCR 管道、重排版管道或 MD 直转管道。包含环境清理确认、断点恢复、智能配图裁剪、逐单元增量生成 DOCX、双单元质量核查、中间状态保存和 BibTeX 参考文献管理。所有中间文件放 resources/,最终产物放 outputs/。 |
[!IMPORTANT] 本文件是主路由入口 + Pipeline B/C 定义 + 排版格式规范库。Pipeline A(OCR 管道)的详细规范请参见
ocr_kb/SKILL.md。 所有管道的 DOCX 生成均使用docx/SKILL.md中定义的方法(docx-js 创建新文档 / unpack-edit-pack 编辑现有文档)。
[!IMPORTANT] 所有中间文件和生成产物必须严格遵守以下目录结构,禁止在项目根目录下放置任何生成文件(包括
.md、.py、.docx等)。
项目根目录/
├── resources/
│ ├── pages/ # Pipeline A: 切分出的单页 PNG 图片
│ ├── figures/ # 所有管道: 配图(裁剪的或提取的)
│ ├── md/ # 所有管道: 提取/拆分结果
│ │ ├── page_N.md # Pipeline A 按页
│ │ └── section_N.md # Pipeline B/C 按章节
│ ├── scripts/ # 所有 Python 辅助脚本(可跨任务复用,清理时不删除)
│ ├── compiled_paper.md # 最终汇总的完整 Markdown
│ ├── config.json # 任务配置(源文件、格式、管道类型),整个任务期间不变
│ └── checkpoint.json # 运行时进度(当前单元、计数器、失败项),随处理进度更新
├── outputs/ # 最终交付的 .docx / .bib 文件 + 核查点中间版本
├── ocr_kb/ # Pipeline A: OCR 工作流 Skill
│ └── SKILL.md
├── docx/ # Word 文档操作 Skill(DOCX 生成的技术实现基础)
│ └── SKILL.md
├── pdf/ # PDF 操作 Skill
│ └── SKILL.md
├── content_generation/ # Pipeline D: 论文内容智能生成 Skill
│ └── SKILL.md
├── SKILL.md # 本文件(主入口路由 + Pipeline B/C + 排版规范库)
└── <source>.* # 用户提供的原始文件 (.pdf / .doc / .docx / .md / 项目代码目录)
[!CAUTION] 以下四项检查必须在执行任何写作或排版动作之前全部完成,不可跳过。
在每次启动处理时,必须首先对比用户本地的 skill 版本和现在的最新版本:
git fetch origin && git status -uno)检测本地仓库状态。"检测到
academic-paper-writer-pro技能存在最新版本,是否需要帮您自动更新?回复 更新 进行升级,或 跳过 继续当前任务。"
git pull 或 npx skills add https://github.com/tfboy1/academic-paper-writer --skill academic-paper-writer-pro),待更新完成后再进入下一步。检测 resources/ 下的 pages/、md/、figures/ 以及 resources/checkpoint.json 是否存在旧文件。
"检测到上次任务的中间文件(N 个页面/章节、M 个 Markdown、K 张配图)。是否删除以避免干扰?回复 删除 清空,或 保留 继续上次任务。"
resources/pages/*、resources/md/*、resources/figures/*、resources/checkpoint.json、resources/config.json。resources/scripts/ 不删除(脚本可复用)。resources/checkpoint.json,进入断点恢复流程(见 §1.3)。扫描项目根目录下的所有支持格式文件(.pdf、.doc、.docx、.md):
管道自动选择规则:
| 扩展名 | 管道 | 进度单位 | 核心 Skill |
|---|---|---|---|
.pdf | Pipeline A — OCR 管道 | 页 (page) | ocr_kb/SKILL.md |
.doc / .docx | Pipeline B — 重排版管道 | 章节 (section) | docx/SKILL.md + 本文件 §3.2 |
.md | Pipeline C — MD 直转管道 | 章节 (section) | docx/SKILL.md + 本文件 §3.3 |
| 无 / 目录 | Pipeline D — 内容生成管道 | 章节 (section) | content_generation/SKILL.md |
检查 resources/checkpoint.json 是否存在且合法:
status == "suspended":
向用户展示上次进度(已完成单元数 / 总单元数,管道类型),询问:
"检测到上次任务(Pipeline X,已完成 N/M 个单元)。是否从断点继续?回复 继续 从第 N+1 个单元开始,或 重新开始 清空所有中间文件。"
status == "completed":正常启动新任务。要求用户把需要排版的文稿和格式要求放入本目录下:
.pdf、.doc、.docx 或 .md)。.docx 模板或 .pdf 指南(如 IEEE 模板)。.bib 文件。如果有,必须优先使用。[!IMPORTANT] 在拆分内容或提取文字之前,必须先完成格式规范解析,确定所有排版参数。
如果用户提供了 .docx 模板(config.template_file 非空):
docx/SKILL.md 的 unpack 方法打开模板config.json 的 format_params 字段如果用户指定了格式名称(如"IEEE"、"APA"):
config.json 的 format_params 字段如果两者都有:模板优先,预设参数作为兜底。
确保 resources/(含子目录 pages/、md/、figures/、scripts/)和 outputs/ 存在,不存在则自动创建。
创建或读取 resources/config.json(详细格式见 ocr_kb/SKILL.md §0.5),记录源文件路径、文件类型、管道类型、格式规范和排版参数,使后续续作无需重复指定。
[!IMPORTANT] Pipeline A 的全部详细规范定义在
ocr_kb/SKILL.md中。本节仅做高层描述。
resources/scripts/split_pdf.py 将 PDF 分割为单页 PNG。ocr_kb/SKILL.md 的规范逐页提取 + 逐页追加 DOCX。page_N.md → compiled_paper.md → 最终 DOCX。DOCX 生成方式:使用 docx/SKILL.md 中的 docx-js 创建新文档,按 §6 格式规范库中的参数配置样式。
适用场景:用户已有 Word 文档,需要按新的格式规范(如 IEEE)无损排版。为了绝对保留原文原生复杂公式(OMML)、图表和批注,本管道严禁使用 Markdown 中转提取方案,必须采用底层 XML 外观平移(Unpack-Edit-Pack)。
如果输入是 .doc(旧格式),先转换为 .docx:
python docx/scripts/office/soffice.py --headless --convert-to docx <input.doc>
python docx/scripts/office/unpack.py <input.docx> resources/unpacked/
此步骤不触碰主体内容逻辑。编写局部脚本直接从底层“换肤”:
word/styles.xml):针对格式规范(如 IEEE),将 styles.xml 内的全部核心样式强制替换为预设样式名称及字体。<w:sectPr>:在 word/document.xml 内,定位节区配置块,强制挂载双栏设定(如 <w:cols w:num="2" w:space="360"/>)及要求的纸张尺寸(如 US Letter: <w:pgSz w:w="12240" w:h="15840"/>)。<w:pStyle>:遍历所有 <w:p>,通过文字特征或旧样式的权重判定其所属层级,将其挂载为 IEEE 标准的 Heading1、Normal。这确保绝不触碰封装在同层段落内的公式结构 <m:oMath>。对重构后的外观进行无缝打包验证:
python docx/scripts/office/pack.py resources/unpacked/ outputs/<name>_final_<date>.docx --original <input.docx>
这彻底废弃了高风险 Markdown 中转生成法,成就 100% 内容与排版无损保留!
[!CAUTION] 绝对禁止使用 Pandoc 进行 Markdown 到 Word 的一键直转! Pandoc 会丢失所有针对中国学位论文或顶会要求的高度定制化格式(如三线表渲染、首行缩进强绑定等)。必须且只能严格调用
docx/SKILL.md中定义的docx-js(Node引擎) 或底层的unpack -> edit XML -> pack脚本。
适用场景:用户已有 Markdown 格式的论文,需要转为带格式的 Word 文档。
按 §2.2 解析目标格式规范,确定所有排版参数。
.md 文件,按一级标题(# ...)拆分为多个章节。resources/md/section_N.md。resources/config.json(pipeline: "C", unit_type: "section")。resources/checkpoint.json(current_unit: 1,计数器归零)。如果 Markdown 中包含 mermaid 代码块,在注入 Word 之前,必须执行独立的高清渲染管线:
resources/figures/fig_N.mmd 文件。puppeteer-config.json(内容:{"args": ["--no-sandbox", "--disable-setuid-sandbox"]})。npx mmdc -i resources/figures/fig_N.mmd -o resources/figures/fig_N.png -b transparent -p puppeteer-config.json。.mmd 文本内的语法残缺,随后重试编译指令,直至高清 .png 成功产出。严禁在此步骤静默跳过或残留乱码!,以便下一步原生嵌入。使用 docx/SKILL.md 中的 docx-js 创建新 DOCX 文档(必须通过代码映射所有样式!),按 §6 的格式参数配置样式,然后逐章节转换内容:
$...$ → 原生 OMML(通过 ocr_kb/scripts/latex_to_omml.py,接口见 ocr_kb/SKILL.md §0.7)$$...$$ → OMML 公式段落,编号靠右对齐checkpoint.json 的 global_equation_countdocx/SKILL.md Tables 章节,强制输出学术三线表)global_table_count → 检查图片文件是否存在resources/figures/(如不在其中),全局编号global_figure_count# → Heading 1,## → Heading 2,...)checkpoint.json。section_N.md 已在拆分时创建,合并为 resources/compiled_paper.md。outputs/<name>_final_<date>.docx。适用场景:用户没有完整的论文草稿,只有代码、实验数据或笔记,希望基于现有项目素材智能生成符合学术格式的论文初稿。
详情操作规范见 content_generation/SKILL.md,主要流程概览:
resources/md/section_N.md。以下规则不分管道,强制执行:
| 规则 | 说明 |
|---|---|
| 逐单元处理 | 不论是页还是章节,每完成一个单元就追加到 DOCX 并更新 checkpoint |
| 每 2 单元核查 | 对照源文件确认无信息丢失或格式错乱 |
| 每 4 单元悬挂 | 保存中间版本,通知用户发送"继续"刷新上下文 |
| needs_review 清零门禁 | 最终汇总前,needs_review 必须为空 |
| 中间版本保留 | 核查点版本不删除,以便回退 |
| 全局编号 | figure / table / equation 三个计数器全局递增,跨单元不重置 |
.bib 文件。.bib,不要自行编造或搜索文献。标记所有缺失的引用(列出引用标记名),通知用户手动补充。outputs/references.bib 中生成参考文献文件。[!IMPORTANT] 以下细则适用于所有管道,具体参数受 §6 格式规范库中的预设值或用户模板覆盖。DOCX 的技术实现统一参考
docx/SKILL.md。
当 config.template_file 非空时:
docx/SKILL.md 的 unpack 方法打开模板,提取 word/styles.xml 中的样式定义,然后用 docx-js 创建新文档时复制这些样式。当 config.template_file 为空时:
| 参数 | 默认值 | 说明 |
|---|---|---|
| 宽度策略 | 等比缩放至栏宽的 80% | 单栏论文 = 页面内容宽度×80%;双栏论文 = 栏宽×95% |
| 位置 | 行内嵌入,居中对齐 | 不使用浮动定位 |
| 图注格式 | "Figure N: 说明文字" | 图下方,居中,比正文小 1pt,加粗 "Figure N" 部分 |
| 图注与正文间距 | 上方 6pt,下方 12pt | |
| 图片质量 | 原始分辨率,不压缩 |
docx-js 实现参考:docx/SKILL.md Images 章节(§220-232),注意 type 参数必填,altText 三个子字段都必填。
| 参数 | 默认值 | 说明 |
|---|---|---|
| 宽度 | 满栏宽(DXA 单位) | 单栏 = 页面内容宽度;双栏 = 栏宽 |
| 边框 | 细线 #CCCCCC,1pt | |
| 表头 | 加粗,浅蓝底色 #D5E8F0 | 使用 ShadingType.CLEAR(不用 SOLID) |
| 单元格内边距 | 上下 80 DXA,左右 120 DXA | |
| 表注格式 | "Table N: 说明文字" | 表上方,居中,比正文小 1pt |
docx-js 实现参考:docx/SKILL.md Tables 章节(§173-219),必须同时设置 columnWidths 和每个 cell 的 width,且必须使用 WidthType.DXA。
| 参数 | 默认值 | 说明 |
|---|---|---|
| 页码 | 底部居中,阿拉伯数字 | |
| 页眉 | 空(除非格式规范要求) | IEEE 无页眉,学位论文通常有 |
| 首页特殊 | 首页无页眉页码(如格式要求) |
docx-js 实现参考:docx/SKILL.md Headers/Footers 章节(§251-268),使用 PageNumber.CURRENT。
| 参数 | 默认值 | 说明 |
|---|---|---|
| 栏数 | 由格式规范决定(IEEE = 2栏,APA = 1栏) | |
| 栏间距 | 360 DXA(0.25 inch) | |
| 标题/摘要 | 通常跨栏(section break 分隔) |
docx-js 实现:通过 sections 属性设置不同的 section 拥有不同的栏数:
// 标题区域 - 单栏
{ properties: { column: { count: 1 } }, children: [/* 标题、作者、摘要 */] },
// 正文区域 - 双栏
{ properties: { column: { count: 2, space: 360 } }, children: [/* 正文 */] }
| 参数 | 默认值 | 说明 |
|---|---|---|
| 行内公式 | OMML <m:oMath>,与正文同行 | |
| 独立公式 | OMML <m:oMathPara>,居中 | |
| 公式编号 | 靠右对齐,格式 (N) | |
| LaTeX → OMML | 通过 ocr_kb/scripts/latex_to_omml.py |
docx-js / XML 实现参考:docx/SKILL.md Formulas (OMML) 章节(§447-469)。
[!IMPORTANT] 格式预设以独立
.md文件存放在templates/目录下,每个文件包含完整的排版参数表。当用户指定格式名称时,读取对应文件。如果用户提供了.docx模板,模板中的设置覆盖预设。
| 格式名称 | 文件 | 适用场景 |
|---|---|---|
| IEEE | templates/ieee.md | IEEE 会议论文、期刊论文 |
| APA 第7版 | templates/apa7.md | 心理学、社会科学论文 |
| 中国学位论文 | templates/chinese_thesis.md | 国内高校本硕博学位论文 |
| ACM | templates/acm.md | ACM 计算机学会会议、期刊论文 |
| Springer LNCS | templates/springer_lncs.md | 计算机科学讲义等学术专著 |
| NeurIPS | templates/nips.md | NeurIPS 及机器学习相关会议 |
| MLA | templates/mla.md | 人文学科、语言文学领域论文 |
查找规则:
templates/ieee.mdtemplates/apa7.mdtemplates/chinese_thesis.mdtemplates/acm.mdtemplates/springer_lncs.mdtemplates/nips.mdtemplates/mla.md当用户指定的格式不在内置预设中时:
.docx 模板或明确描述格式要求。config.json 的 format_params。templates/ieee.md 作为兜底默认值。如需添加新的格式预设(如 ACM、Springer LNCS 等),只需在 templates/ 目录下新建对应的 .md 文件,按现有模板的表格结构填写参数即可。
排版完成后,必须输出以下结构化完成报告:
【完成报告】
源文件:<config.source_file>
输入类型:<config.source_type>
处理管道:Pipeline <config.pipeline>
格式规范:<config.format_style>
总单元数:<checkpoint.total_units>(<config.unit_type>)
提取公式数:<checkpoint.global_equation_count>
裁剪/嵌入配图数:<checkpoint.global_figure_count>
提取/转换表格数:<checkpoint.global_table_count>
核查点版本数:<outputs/ 中 checkpoint 文件的数量>
最终文件:outputs/<最终文件名>.docx
遗留问题:<needs_review 中的单元编号 / 无>
随后主动向用户确认以下可选增值服务:
[!WARNING] 在执行自动排版和文稿生成时,经常会遇到 Markdown 解析与底层的环境冲突。排版流水管线中必须遵守以下防患规范:
问题:marked.lexer 在处理复杂嵌套段落(如列表内部的加粗 **text**)时,由于默认不会深度递归提取 Inline 级的 tokens,易导致 ** 符号直接作为标点纯文本泄漏到 DOCX 输出中。
规范:在构建 docx-js 的段落(Paragraph)文本挂载时,完全摒弃 AST 的样式标记匹配,统一改用前置自定义正则表达式(如 text.split(/(\*\*[\s\S]*?\*\*)/g))来显式切分,并直接映射为 new TextRun({ text: innerText, bold: true })。
问题:npx mmdc 对生成代码极度挑剔。例如 usecaseDiagram 在新版中被废弃不支持,以及在 erDiagram 中实体属性若尾随带有双引号 " 的外侧注释,会直接导致渲染线程死锁与命令行崩溃。
规范:在调用执行环境前,利用替换脚本清洗不合规关键词(把旧语法强转 flowchart),并严格剔除危险引号。为防止 Windows 进程隔离出错,配置文件参数中需挂载 {"args": ["--no-sandbox", "--disable-setuid-sandbox"]}。
问题:在跨平台操作用 Regex 强制提取边界闭合代码块(如 /```mermaid\n([\s\S]*?)```/g)时,一旦遇到 Windows 宿主写入的文件采用 \r\n 回车换行符,匹配将直接失效导致大片丢图。
规范:凡涉猎多行文本切削,务引入容错通配符 \r?\n 作为边界判断器,切勿硬编码单一换行类型。
问题:调用 ImageRun 插入 Buffer 图像流引擎时,若遗漏传入 altText 参数嵌套组合,编译流水线将毫无明确堆栈反馈地隐蔽崩溃(Packer throw catch 不明)。
规范:ImageRun 对象初始化时,务必完全补齐挂载三个不可或缺的安全元数据字段:altText: { title: "x", description: "x", name: "x" },以及静态注明 type: "png"。
问题:fs.writeFileSync 在意图输出刷新目标文档时,若文档恰好处于用户的浏览窗口进程内占用,即触发 EBUSY: resource busy or locked 阻截退出。
规范:自动化脚本的导出端名称,应动态拼接自增式数字角标或是动态流转的时间戳(如 _V3_CLEAN),从系统层面免于强制覆写锁的冲突灾难。
[!CAUTION] 本节机制适用于 Pipeline D(内容生成管道) 在内容写作完毕后、排版组装前的强制拦截点。不可跳过,不可由 Agent 自行判定"无需执行"。
section_N.md 生成完毕后立即触发。Agent 必须逐项自查并输出结构化报告,每项标注 ✅ 通过 或 ❌ 阻断(附具体位置与原因):
| # | 失败模式 | 检查内容 | 中文说明 |
|---|---|---|---|
| 1 | 实现漏洞伪装创新 | 代码解析中是否将 Bug 或遗漏包装为"设计特性" | 严禁将代码错误美化为"创新点" |
| 2 | 实验数据编造 | 测试章节中的性能数据是否有实际代码或日志来源 | 严禁凭空捏造延迟、吞吐量等数字 |
| 3 | 方法论漂移 | 设计章节描述的架构是否与实际代码结构一致 | 严禁描述一套、代码另一套 |
| 4 | 引文幻觉 | 参考文献中是否存在伪造的作者、年份或期刊名 | 标记所有无法验证的引用为 [CITE_UNVERIFIED] |
| 5 | 捷径依赖 | 是否把调用第三方 API 直接等同于"本系统实现了 XX 算法" | 严禁混淆调用与自研 |
| 6 | 空壳章节 | 是否存在少于 300 字的极短章节或大量 [TODO] 占位 | 必须返工扩写 |
| 7 | 重复论述 | 多个章节中是否反复解释同一概念(如每章都重新介绍前后端分离) | 去重并交叉引用 |
❌:严禁将文档移交排版。Agent 必须定位问题章节并自动修复后重跑本清单。✅:生成 resources/integrity_report.md 并继续流程。[!IMPORTANT] 本节要求 Agent 在完成初稿后,切换为审稿人人格进行多维度质量评估。该机制灵感源自同行评审 (Peer Review) 体系,目的在于在没有人类审稿人的情况下,最大程度暴露文本中的逻辑断裂与论证薄弱点。
Agent 必须依次以下列 6 种角色审读全文,每种角色输出独立的简短评语(中文):
| 角色 | 关注维度 | 中文说明 |
|---|---|---|
| 结构审稿人 | 章节逻辑链路、论证递进关系 | 大纲是否清晰?章节之间是否存在逻辑断裂? |
| 技术审稿人 | 算法描述准确性、系统架构合理性 | 技术细节是否经得起推敲?有无明显的工程谬误? |
| 语言审稿人 | 学术措辞、句式多样性、口语残留 | 是否有"的的的"叠用、口语化表达、AI 八股化痕迹? |
| 数据审稿人 | 图表引用完整性、数据自洽性 | 文中引用的图/表编号是否真实存在?数据是否互相矛盾? |
| 格式审稿人 | 标题层级、引文格式、段落缩进 | 是否符合目标学术模板的排版要求? |
| 魔鬼辩护人 | 专门反驳核心论点 | 尝试攻击论文的最弱论点,提出最严厉的质疑 |
| 维度 | 权重 | 评分标准 |
|---|---|---|
| 论证逻辑 (Argumentation) | 25% | 推理链条完整性、因果关联强度 |
| 技术深度 (Technical Depth) | 25% | 是否真正触及代码内核而非表层描述 |
| 语言质量 (Language Quality) | 20% | 避免 AI 套话、句式丰富、术语精准 |
| 图表充实度 (Media Richness) | 15% | 每章至少 1 图 1 表 |
| 格式规范 (Format Compliance) | 15% | 严格对齐目标模板要求 |
在 Pipeline D 的内容生成全过程中,Agent 必须遵守以下铁律:
IRON RULE (铁律):用户提供的项目代码和素材是唯一的事实来源 (Source of Truth)。Agent 禁止使用自身训练数据中的"记忆"来填补任何信息空缺。如果某个技术细节在项目代码中找不到依据,必须标注
[素材缺口]并暂停该段落,而非凭想象补全。
在多轮章节生成中,每当 Agent 开始撰写新章节时(即从 section_N.md 切换到 section_N+1.md),必须在内部 System Prompt 中重新注入以下两条提醒:
当 Agent 在撰写过程中发现需要但用户未提供的技术细节时:
[素材缺口:此处需要 XX 的具体实现代码/数据/配置][!IMPORTANT] 本清单在 §10 自审评议的"语言审稿人"环节中强制执行,用于检测 AI 生成文本中常见的模式化痕迹。
以下词汇在单篇论文中出现超过指定阈值时触发警告:
| 类别 | 高频词示例 | 单篇上限 |
|---|---|---|
| 虚化修饰 | 有效地、显著地、极大地、充分地、深入地 | 每词 ≤ 5 次 |
| 套话开头 | 随着...的发展、众所周知、近年来、值得注意的是 | 每词 ≤ 3 次 |
| 过度承诺 | 完美地、彻底地、毫无疑问、无可争议 | 每词 ≤ 2 次 |
| AI 典型词 | 赋能、闭环、抓手、痛点、沉淀、拉齐、颗粒度 | 每词 ≤ 2 次 |
| 连接词堆砌 | 因此、然而、此外、与此同时、综上所述 | 每种 ≤ 8 次 |
当论文经历多轮"写 → 审 → 改"循环时,Agent 必须记录每轮评分,防止修订过程中某些维度意外退化:
| 轮次 | 论证逻辑 | 技术深度 | 语言质量 | 图表充实度 | 格式规范 | 总分 |
|------|----------|----------|----------|------------|----------|------|
| R1 | 72 | 68 | 75 | 60 | 80 | 71 |
| R2 | 78 | 75 | 73 ⚠️↓ | 70 | 82 | 76 |
| R3 | 82 | 80 | 80 | 75 | 85 | 81 ✅|
⚠️↓ 并在修订报告中说明退化原因。