基于八种主流 AIGC 检测算法原理的中文学术文本与图像反制工具
Anti-AIGC-ZH 是一个 Claude Code Skill,专为中文学术写作场景设计。它不是简单的"换词降重"工具,而是从 AIGC 检测算法的底层原理出发,通过反向工程实现精准反制。
核心理念:理解检测原理,才能有效反制。
- 毕业论文(本科/硕士/博士)的 AIGC 检测预处理
- 学术期刊投稿前的 AI 痕迹清理
- 论文图像(流程图、示意图等)的 AI 元数据清除
- CNKI、维普、万方等国内检测平台的针对性优化
本工具同时应用五层改写策略,从 token 级到篇章级全维度覆盖:
DetectGPT 通过检测文本在 log-probability 空间的曲率来判断 AI 生成。AI 文本倾向于选择概率最高的 token,词汇选择过于"最优"。
反制策略:系统性同义词替换,优先选用非高频词,插入学科特定术语,使用非典型但合理的句式。
"采用/使用" → "运用/选用/借助"
"基于" → "鉴于/立足于/依托"
"通过" → "经由/借助/依靠/凭借"
"实现" → "达成/完成/得以实现"
"表明" → "显示/揭示/印证"
Binoculars 用双模型交叉困惑度检测,AI 文本的信息密度分布过于均匀平滑。
反制策略:长短句交替,段内信息密度波动,句式复杂度变化,连接词不规律使用。
量化指标:
- 句长方差 > 5(避免 AI 式均匀句长)
- 每 300 字至少 1 次非常规语序
- 每 1000 字至少 10 种不同连接词
- 同一修饰词在 500 字内不重复超过 2 次
SynthID 在生成时嵌入统计水印。只要 token 替换率超过 30-40%,水印信号就会被有效破坏。
反制策略:重组句子结构,替换核心动词和连接词,消除 AI 高频词汇黑名单。
AI 高频词汇黑名单(部分):
此外、值得一提的是、值得注意的是、不言而喻、毋庸置疑、显而易见、 综上所述、总而言之、旨在、致力于、赋能、助力、深入探讨、全面分析
反制策略:控制核心概念词频率,句首词汇多样化,修饰词密度调节,主被动语态比例控制在 20%-30%。
国内平台(知网、维普、万方)普遍使用微调 BERT/RoBERTa 分类器,学到的特征远超 token 级困惑度,还包括段落展开模式、论证深度分布等篇章级特征。Raidar 方法利用 LLM 重写后的编辑距离判断——AI 文本处于模型"不动点"附近,重写后变化极小。
反制策略(三个维度同时作用):
维度 A — 段落结构多样化(反分类器):
- 连续 5 段至少 3 种展开模式(总分总、例证先行、反驳式、递进式、悬念式)
- 论证深度不均匀,段落长度方差 > 30%
- 学术立场鲜明化,约 30% 的论述使用强判断
维度 B — 引入人类噪声(反重写距离):
- 每 1000 字 3-5 处学科黑话/个人化表述
- 非对称并列结构、长句嵌入插入语
- ≥ 40% 的引用使用非标准整合格式
维度 C — 全局论证弧线设计(反连贯性检测):
- 引入论证张力和回溯,结论留开放性问题
- 相邻段落信息密度差 > 20%
- 20-30% 的段落过渡使用"硬切"而非"软过渡"
C2PA 元数据记录了图像的 AI 生成来源,嵌入在 EXIF/XMP 区域。
# 方法一:使用 exiftool 清除
exiftool -all= image.png
# 方法二:Python PIL 重新保存
from PIL import Image
img = Image.open('input.png')
img.save('output.png')AI 图像的统计指纹存在于像素级模式中,通过后处理可有效扰乱:
from PIL import Image
import numpy as np
img = Image.open('ai_generated.png')
w, h = img.size
# 1. 轻微缩放
img = img.resize((int(w*0.98), int(h*0.98)), Image.LANCZOS)
img = img.resize((w, h), Image.LANCZOS)
# 2. 微量高斯噪声(肉眼不可见)
arr = np.array(img).astype(np.float32)
noise = np.random.normal(0, 2, arr.shape)
arr = np.clip(arr + noise, 0, 255).astype(np.uint8)
img = Image.fromarray(arr)
# 3. JPEG 压缩再转回(破坏频域特征)
img.save('temp.jpg', quality=88)
img = Image.open('temp.jpg')
# 4. 输出(自动清除 EXIF)
img.save('output.png')每次改写都输出完整的三部分报告:
┌─────────────────────────────────────┐
│ 1. AIGC 风险分析 │
│ 逐段扫描,标注风险等级和问题 │
├─────────────────────────────────────┤
│ 2. 改写结果 │
│ 四层策略同时作用,输出完整文本 │
├─────────────────────────────────────┤
│ 3. 自检报告 │
│ token 替换率、句长方差、 │
│ 黑名单命中、技术准确性确认 │
└─────────────────────────────────────┘
| 场景 | 输入 | 处理方式 |
|---|---|---|
| 文本改写 | 学术文本段落 | 四层策略改写 + 自检报告 |
| 图像处理 | 论文图像 | C2PA 清除 + 统计特征扰乱 |
| 全文审查 | 完整论文 | 分段风险评估 + 分批改写 |
论文改写的输出通常很长(动辄数千字),容易触发 Claude Code 的单次输出 token 上限,导致改写结果被静默截断——文件看起来写入成功了,但实际只有开头部分。
本仓库附带 chunked-file-writer Skill,专门解决这个问题:
| 问题 | 症状 | 原因 |
|---|---|---|
| 改写结果被截断 | 文件只有开头几段,后面的段落消失 | 单次 Write 超出 token 上限 |
| 重试无效 | 多次重试结果完全相同 | 始终在同一位置截断 |
| 公式丢失 | LaTeX 公式密集的段落更容易截断 | 公式 token 密度是纯文本的 2-3 倍 |
需要写入文件
│
▼
估算内容 token 量
│
├─ < 2000 tokens ──→ 直接 Write
│
├─ 2000-4000 tokens ──→ 分批写入(Write + Edit 追加)
│
└─ > 4000 tokens ──→ 优先 Agent 子进程
Token 估算参考:
- 中文文本:约 1.5 token/字
- LaTeX 公式:约 3-5 token/字符(比纯文本高 2-3 倍)
- 表格、代码块:约 2 token/字符
- 写入前估算:根据内容量选择写入策略
- 禁止无效重试:同一个截断的 Write 最多重试 1 次,然后切换策略
- 写入后验证:检查文件大小和末尾内容,确认完整性
- Claude Code CLI 已安装
# 安装主 Skill:Anti-AIGC-ZH
mkdir -p ~/.claude/skills/anti-aigc-zh
cp SKILL.md ~/.claude/skills/anti-aigc-zh/SKILL.md
# 安装附带 Skill:Chunked File Writer(推荐)
mkdir -p ~/.claude/skills/chunked-file-writer
cp skills/chunked-file-writer/SKILL.md ~/.claude/skills/chunked-file-writer/SKILL.md安装后,在 Claude Code 中使用 /anti-aigc-zh 即可调用改写功能。chunked-file-writer 会在长文本写入时自动触发,无需手动调用。
在 Claude Code 中输入:
/anti-aigc-zh
请改写以下段落:
本文采用深度学习方法,基于 Transformer 架构,通过大规模预训练实现了
文本分类任务的显著性能提升。此外,实验结果表明,该方法在多个基准数据
集上均取得了优异表现。值得注意的是,与传统方法相比,本文提出的模型具
有更强的泛化能力。
/anti-aigc-zh
这张流程图是用 AI 生成的,请帮我处理一下,确保通过检测。
/anti-aigc-zh
请审查我的毕业论文,标注所有高风险段落。
[粘贴论文全文]
改写过程中严格遵守以下规则:
- 技术术语、公式、数学符号、引用标记、参考文献编号 100% 原样保留
- 代码片段、算法伪代码、路径名 100% 原样保留
- 核心逻辑链和因果关系 不变
- 改写后字数与原文偏差 不超过 ±15%
- 保持学术严谨性,不引入口语化表达
- 不添加原文没有的信息,不删除原文的关键论点
- 图像处理不得改变图表中的数据内容和标注信息
| 算法 | 检测原理 | 核心弱点 | 反制层 |
|---|---|---|---|
| DetectGPT | 困惑度曲率检测 | 词汇选择过于"概率最优" | 第一层 |
| Binoculars | 双模型交叉困惑度 | 信息密度分布过于均匀 | 第二层 |
| SynthID | Token 概率水印 | 水印依赖原始 token 序列 | 第三层 |
| 微调分类器 | BERT/RoBERTa 深度特征分类 | 对篇章级改写鲁棒性差 | 第五层 A |
| Raidar | LLM 重写距离检测 | 人类噪声增大重写距离 | 第五层 B |
| 篇章连贯性 | 全局论证弧线分析 | 依赖 AI 的"过度完美"特征 | 第五层 C |
| C2PA | 图像元数据认证 | 元数据存储在 EXIF/XMP | 图像层 |
| Sentry-Image | 图像统计特征 | 依赖像素级统计模式 | 图像层 |
| 特性 | Anti-AIGC-ZH | 传统降重工具 | 通用改写工具 |
|---|---|---|---|
| 基于检测算法原理 | ✅ 8 种 | ❌ | ❌ |
| 多层策略同时作用 | ✅ 五层 | ❌ 单层 | ❌ |
| 图像反制 | ✅ | ❌ | ❌ |
| 量化自检报告 | ✅ | ❌ | ❌ |
| 学术约束保护 | ✅ | 部分 | ❌ |
| 中文优化 | ✅ | ✅ | 部分 |
anti-aigc-zh/
├── SKILL.md # 主 Skill:AIGC 反制改写
├── skills/
│ └── chunked-file-writer/
│ └── SKILL.md # 附带 Skill:大文件安全写入
├── README.md
└── LICENSE
- 本工具针对中文学术文本优化,英文场景策略有差异
- 单次改写建议不超过 3000 字,超长文本建议分段处理
- 包含大量公式推导的段落,重点改写文字描述,公式保持原样
- 可指定目标检测平台(CNKI、维普、万方、Turnitin)进行针对性调整
- 改写结果保存为文件时,强烈建议同时安装
chunked-file-writer,避免长文本截断
- 运行环境:Claude Code CLI
- 图像处理:Python PIL/Pillow + NumPy
- 元数据清除:exiftool / PIL
欢迎提交 Issue 和 Pull Request。
如果你有以下方面的建议,特别欢迎:
- 新的检测算法反制策略
- 更多的 AI 高频词汇黑名单补充
- 针对特定检测平台的优化方案
- 使用案例和效果反馈