wanshuiyin/Anti-Autoresearch

GitHub: wanshuiyin/Anti-Autoresearch

面向机器生成学术论文的审稿侧完整性取证工具,通过确定性规则引擎检测论文内部的数据矛盾、引用幻觉和实验造假等 27 种 hack-pattern。

Stars: 1 | Forks: 0

# Anti-Autoresearch 🛡️ [![Parent ARIS stars](https://img.shields.io/github/stars/wanshuiyin/Auto-claude-code-research-in-sleep?style=flat&logo=github&logoColor=white&color=gold&label=Parent%20ARIS%20%E2%98%85)](https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep/stargazers) · [![ARIS Report arXiv:2605.03042](https://img.shields.io/badge/ARIS%20Report-arXiv%3A2605.03042-b31b1b?style=flat&logo=arxiv)](https://arxiv.org/abs/2605.03042) · [![ARIS · HF Daily #1](https://img.shields.io/badge/ARIS%20%F0%9F%A4%97%20HF%20Daily-%231-ffcc4d?style=flat)](https://huggingface.co/papers/2605.03042) · [![ARIS on PaperWeekly](https://img.shields.io/badge/ARIS%20on-PaperWeekly-red?style=flat)](https://mp.weixin.qq.com/s/tDniVryVGjDkkkWl-5sTkQ) · [![ARIS in awesome-agent-skills](https://img.shields.io/badge/ARIS%20in-awesome--agent--skills-blue?style=flat&logo=github)](https://github.com/VoltAgent/awesome-agent-skills) · [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=flat)](LICENSE) · [![README 中文](https://img.shields.io/badge/README-%E4%B8%AD%E6%96%87-blue?style=flat)](README_CN.md) **针对研究论文的实质性完整性取证 —— 尤其是机器生成的** **(autoresearch / AI-Scientist 式)输出。** 自动研究已大行其道,提交至审稿堆中的机器生成内容比例正快速增长——而其中很大一部分**站不住脚**:表格与正文不符,缺失基线对比,开源代码无法复现其自身论文的结论。审稿人、领域主席和诚实的作者越来越需要**验证**这些,而不仅仅是怀疑。这正是本仓库致力于填补的空白。

学术界容忍不可靠的自动研究已经太久了——
Anti-Autoresearch 是最终能揪出它的利器。

## 🚀 快速开始 ### Agent 工作流(常规使用) Anti-Autoresearch 作为一个 Claude Code 技能工作流运行——Python 工具是该工作流*内部*的确定性核心,而非通常的交互界面。 ``` # 1) 安装 skills + workflow(全局,或指定项目的 .claude/skills dir) git clone https://github.com/wanshuiyin/Anti-Autoresearch.git ./Anti-Autoresearch/tools/install_anti_autoresearch.sh # → ~/.claude/skills # 改为 project-local:./Anti-Autoresearch/tools/install_anti_autoresearch.sh ./.claude/skills # 2) 接入 cross-model reviewer(最终状态:Claude Code 暴露 mcp__codex__codex) claude mcp add codex -- codex mcp-server claude mcp list # 3) 审查论文 claude > /anti-autoresearch ~/papers/submission ``` 运行后会将 `REPORT.md` + `report.json` + `claims.json` 以及各技能对应的 `*.findings.json` 写入论文所在目录。请将代码/结果产物与论文放在一起以解锁 L2 级检查;根据设计,仅基于 PDF/源码的运行在可观测性上存在限制。 ### 确定性核心(CI / 离线 / 零依赖) 这将绕过 Agent 层,仅执行经过评估测试的确定性检查——适用于 CI、回归测试或没有跨模型审稿人的环境(Python 3 标准库,无需安装任何内容): ``` # 在 clean + corrupted fixtures 上验证 pipeline(即 regression gate) python3 eval/run_eval.py # clean / delta_inflate / dup_table / headline_inflate → 全部 PASS # injected-defect recall:100%(3 种 deterministic patterns) · clean FP:无 python3 tests/test_adjudicator.py # gate unit tests (the anti-slop guarantee) # 或者在真实论文上手动运行 spine: python3 tools/build_claim_ledger.py --paper-id mypaper --latex main.tex sections/*.tex \ --observability-level 1 --out claims.json python3 tools/check_numeric_consistency.py --ledger claims.json --out findings.json python3 tools/adjudicate_findings.py --findings findings.json --ledger claims.json \ --paper-id mypaper --observability-level 1 --out report.json --md REPORT.md # --ledger 是 REQUIRED:finding 必须引用原话 ledger span,否则 fails closed 到 info。 ``` ## 🎯 存在的意义 机器生成的论文和审稿意见现在在学术文献中已占据可观的份额,而领域主席真正关心的问题很少是“*这段文字是不是由 LLM 写的?*”(人类也会写出不诚实的论文;LLM 也能写出诚实的论文)。真正的问题是:**这篇论文是否自相矛盾,以及它是否有自身证据的支持?** 这正是 autoresearch 流水线出错的地方——它们会产生**局部**自洽的幻觉:摘要中出现了一个任何表格都没报告过的数据,本应是“16% 的提升”根据实际操作数算出来只有 6%,引用了一篇根本不支持该主张的文献,方法描述与实际评估方式完全不符。 这些问题在声明的可观测性级别下是可以被检查出来的。具体而言,分类法 v0.2 列出了 **6 大类共 27 种 hack-pattern**(数值自洽性 · 方法/范围 · 基线完整性 · 实验完整性 · 引用完整性 · 外观/表层信号)——这是本仓库的**覆盖词汇表**,而非一个包含 27 个检测器的基准测试。 包含检测信号和假阳性案例的完整目录位于[分类法](references/hack-pattern-taxonomy.md)中。以下是十个具有代表性的示例(✓ 表示目前已由确定性评估把控): - `HP-NUM-INFLATE` — 摘要声称达到了 85.3%,但表 2 中的数据从未超过 84.7%。✓ - `HP-DELTA-ERROR` — 从 73.1 到 78.0 宣称的“16% 的提升”实际上只有 6.7%。✓ - `HP-DUP-TABLE` — 两个表格包含了完全相同的有序数字——通常是复制粘贴凑字数。✓ - `HP-METHOD-DRIFT` — 方法章节声称“无标签”;但评估中悄悄使用了金标签校准。 - `HP-SCOPE-INFLATE` — 标榜“全面”的评估结果只是基于两个数据集、单一领域,或许还只跑了一次随机种子。 - `HP-MISSING-BASELINE` — 宣称达到了 SOTA,但表格中却根本找不到显而易见的近期基线对比。 - `HP-FAKE-GT` — (L2) 所谓的“参考”目标其实是模型输出,却被当作真实值报告。 - `HP-PHANTOM-RESULT` — (L2) 核心数据指向的结果文件或 metric key 根本不存在。 - `HP-SUSPICIOUS-REGULARITY` — (L2) 不同行之间的数据差异呈现出极为工整的偏移量——在断定其造假前请先检查文件。 - `HP-CITE-HALLUC` — DOI / arXiv id / 发表期刊或会议 / 作者列表根本不存在。
……完整列出的另外 17 个(涵盖所有 6 大类) **A · 数值自洽性** - `HP-AGG-DRIFT` — 论文宣称是“跨随机种子的平均值”,但实际数据却用了表现最好的种子。 - `HP-DENOM-DRIFT` — 某张表格对所有任务取平均;结论中却悄悄只使用了适用子集的数据。 - `HP-UNIT-DIR-MISMATCH` — 点数悄悄变成了百分比,或者把“越低越好”的指标当成“越高越好”来大肆宣扬。 - `HP-CAPTION-MISMATCH` — 图注声称 N=5 且为方法 B;但图表显示两者皆非。 - `HP-APPENDIX-CONTRA` — 附录重跑了同一个指标,但结果却与正文矛盾。 **B · 方法与范围** - `HP-ABLATION-ATTRIB` — 论文将效果归功于组件 X,但所有的消融实验都将 X 与 Y 捆绑在一起。 - `HP-THEOREM-SCOPE-DRIFT` — 摘要兜售一个普适性定理;但实际上几乎全是由假设条件在起作用。 **C · 基线完整性** - `HP-WEAK-BASELINE` — 新方法获得了充分的调参和计算资源,而基线模型显然没有。 - `HP-SIG-OVERLAP` — 仅以微弱优势“超越”,且带有重叠的误差条或未展示随机种子。 **D · 实验完整性**(需要代码/结果 — L2) - `HP-SELF-NORM` — (L2) 得分接近 1.0 是因为除以了模型自身输出的最大值。 - `HP-DEAD-METRIC` — (L2) 存在一个没有被任何地方调用且没有产出结果的 metric 函数,却被拿来讨论。 **E · 引用完整性** - `HP-CITE-CONTEXT` — 真实存在的论文,却张冠李戴:引用它来支持一个它明确表示不涉及的主张。 **F · 外观与表层信号**(上限设为 `minor` —— 绝不作为定论) - `HP-THIN-FLOAT` — 一项“广泛的实证研究”不知为何只有两个表格和一张孤零零的图表。 - `HP-LLM-FIGURE` — 所谓的“图表”只是模型生成的装饰性图片,而非真正的数据图或示意图。 - `HP-PAGE-PADDING` — 超大尺寸的浮动图表、重复的文本或空洞的文字只是在凑页数。 - `HP-JARGON-STUFF` — 堆砌密集的专业术语,而周围的论证却几乎毫无实质内容。 - `HP-AI-FLAVOR` — 套话过渡句和千篇一律的段落节奏;这只能作为背景参考,而非证据。
**这并非假想。** 摘自 NeurIPS 2026 周期一位公开审稿人账号的内容(仅作说明用,非引用),其中有一批问题几乎与本仓库编码的分类法一一对应: 第四个案例用一句话概括了本仓库的立论:**表面的精美绝不等同于内容的诚实。** ## 🔒 如何保持公正(防范“LLM-slop”的设计) 对于此类工具,最直接的质疑就是:“*让 LLM 给另一个 LLM 写的论文打分纯粹是噪音。*” 我们有三个结构性的防御措施,而不仅仅是一句免责声明: 1. **证据账本。** 一次确定性的扫描会将论文转换为 `claims.json` ——带有锚定文本范围和哈希值的声明。每一条发现(finding)都必须引用一个 `claim_id` 和逐字对应的文本范围。**没有锚定范围 -> 绝对不能成为高严重性级别的发现。** 2. **LLM 绝不打分。** 审计员(Auditor)仅*提议*发现;**确定性裁决器**(`tools/adjudicate_findings.py`,纯规则驱动)负责给出定论。相同的发现 -> 必然得出相同的定论,最终决策中完全排除了模型的参与。 3. **可观测性级别。** 每次运行都会声明其所能观测到的范围(L0 仅有 PDF -> L2 包含仓库代码+结果);在仅有 PDF 的运行中,需要代码验证的发现会被**自动降级**。你永远不能仅凭一份 PDF 就断言“造假”。详见 [references/observability-levels.md](references/observability-levels.md)。 **外观 / AI 风格信号设有独立的防火墙。** AI 风格的行文、重复的表格、LLM 生成的图表和注水页数只会作为*高假阳性背景信息*上报:裁决器将 `presentation-signals` 以及分类法 F 中的每一个 `pattern_id` 硬性限制在 `minor` 级别,因此它们最多只能达到 `SOFT_FLAGS` ——绝不会成为判定学术不端的定论。这种限制是直接在代码中强制执行的(位于 `tools/adjudicate_findings.py` 中的 `SURFACE_ONLY_SKILLS`),而不仅仅是口头承诺。 此外,**评估工具**(`eval/`)会在每次变更时,在干净的 + 合成人造错误的测试夹具上证明确定性核心的有效性——衡量的是假阳性率/召回率,而不是主观感觉。 ## 🏗️ 架构 ``` input (pdf | pdf+latex | pdf+repo+results) │ ▼ [evidence-ledger] artifact_manifest.json (+ observability level) + claims.json ← deterministic │ ▼ fan out auditors (each reads the ledger, emits span-anchored findings): consistency-audit flagship · paper vs itself · ARIS paper-claim-audit citation-forensics exists? correct? right context? · ARIS citation-audit baseline-comparison-audit missing/weak/mistuned baselines · ARIS paper-claim-audit experiment-forensics L2: fake GT / self-norm / phantom · ARIS experiment-audit presentation-signals surface/AI-flavor · auxiliary, capped at minor adversarial-case-builder evidence-bound memo, no verdict · ARIS kill-argument │ ▼ [adjudicate_findings.py] rules, not a model → REPORT.md + report.json ← deterministic ``` | 路径 | 用途 | |------|------| | `skills/` | 七个审计员技能(由 LLM 提议发现,文本范围锚定) | | `workflows/anti-autoresearch/` | 端到端编排器 | | `tools/` | 确定性核心骨架:manifest/可观测性推导 · 账本构建器 · 数值检查 · 裁决器 | | `schemas/` | JSON 契约:claims · finding · report · artifact manifest | | `references/` | hack-pattern 分类法(核心贡献)· 可观测性级别 · 审稿人独立性 · 取证契约 | | `eval/` | 干净的 + 合成人造错误的测试夹具,以及回归测试工具 | | `tests/` | 裁决器的门禁单元测试(防范 LLM 垃圾输出的不变量) | | `docs/` | 相对于现有工作的定位 · 局限性 | ## ⚠️ 诚实的局限性 - **取证 ≠ 学术不端的实锤。** 输出结果仅为*提供给人类审查的红旗*,绝非指控。 - **仅 PDF(L0)只能捕捉不一致性和表面特征,无法发现所有造假**——它无法验证外部真实情况或运行代码。 - **确实存在假阳性**(合理的整数凑整、单随机种子的初步实验、刻意确定的范围选择)。因此我们设置了分级、FP 风险标签以及评估测试工具——而不是简单的二元“有罪”判定。 - **本分类法是一个不断完善的文档。** 了解这些信号的恶意行为者可能会绕过它们;这是一张安全网,而非绝对的保证。详见 [docs/limitations.md](docs/limitations.md)。 ## 🧬 出处:衍生自 ARIS [**ARIS — Auto Research in Sleep**](https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep) 是一个 AI 研究 Agent 技能平台,能够运行端到端的研究流水线 (文献 -> 想法 -> 实验 -> 论文)——并且**内置了完整性护栏**,这正是它能够成为该审计工具可靠基础的原因: - 🛡️ **三层审计堆栈**确保了 ARIS *自身*输出的诚实性: `experiment-audit`(伪造的真实值/分数归一化/虚假结果)、 `result-to-claim`(该主张是否有科学依据?),以及零上下文的 `paper-claim-audit` + `citation-audit`(报告的数据和引用的文献是否站得住脚?)。Anti-Autore 正是将这些同样的审计机制**向外**指代。 - 🔬 **跨模型对抗性审查**是核心准则:执行者和审稿人必须来自不同的模型家族,因此没有任何 LLM 会评判自己的输出。 Anti-Autoresearch 继承了这一点*并*将其强化——在这里,模型仅仅负责**提议** 发现;由确定性的裁决器做出决定。 **同一枚硬币的两面。** ARIS 展示了如何*负责任地*进行自动研究; 而 Anti-Autoresearch 则致力于标记那些不负责任的自动研究。一个公开发布自身审计堆栈的生成器清楚地知道这些流水线会在哪里出问题——因为它正是从内部设计防范这些失败的。这就是本仓库带来的独特视角。 **技能映射关系** —— Anti-Autoresearch 的技能是 ARIS 审计技能的复制与重构,专为**第三方审计未知提交内容**而设计,而非让作者检查自己的工作:`consistency-audit` <- `paper-claim-audit`、 `experiment-forensics` <- `experiment-audit`、`citation-forensics` <- `citation-audit`、 `baseline-comparison-audit` <- `paper-claim-audit`、`adversarial-case-builder` <- `kill-argument`,外加全新的 `evidence-ledger` 核心骨架和 `presentation-signals`。 ## 📖 引用 Anti-Autoresearch **衍生自 ARIS** 并重用了其审计 DNA。如果本 仓库对您的研究 / 论文 / 审稿有所帮助,请引用 ARIS 的方法学 论文: ``` @article{yang2026aris, title={ARIS: Autonomous Research via Adversarial Multi-Agent Collaboration}, author={Yang, Ruofeng and Li, Yongcan and Li, Shuai}, journal={arXiv preprint arXiv:2605.03042}, year={2026} } ``` ## ⚖️ 许可证 MIT —— 详见 [LICENSE](LICENSE)。
标签:AI生成检测, Claude Code技能, Homebrew安装, 内容伪造检测, 学术审查, 学术诚信, 自动化科研, 质量保证, 逆向工具