| name | novelist-humanize |
| description | 去 AIGC / 去 AI 味——把读起来"像 AI 生成"的小说正文改回"像人写的", 降低 AIGC 检测特征同时提升可读性。当用户说"去AI味/降AIGC/这段太AI了/去机器味/人味润色/过检测"时调用; 也被 novelist-write / novelist-rewrite 的生成后收尾链引用。去味时**先运行时发现并依次执行用户已安装的所有 humanizer 类 skill(动态发现, 不硬编码路径)**, 再用本插件 humanizer agent 补小说特化去味(对话破坏/情感呈现)。诊断三层 AI 味(统计指纹/通用tells/小说特有)。只改文字纹理, 不动剧情设定。 |
| user-invocable | true |
| argument-hint | [可选范围; 缺省=最近写/重写的章自动去味] |
| arguments | ["去AI味范围"] |
novelist-humanize — 去 AIGC / 去 AI 味
把"像 AI 生成"的正文改回"像人写的"。目标不是骗过检测器, 是真·提升人味与可读性——检测器本身误报率高(非母语英文作文误报达 61%), 锚定真人味比锚定某检测器弱点更稳。只改文字纹理层, 不动剧情/设定/人物关系。
AI 味三层(诊断靶子)
层 1 — 统计指纹(检测器看什么)
| 指标 | AI 特征 | 改写方向 |
|---|
| 困惑度 perplexity | 太可预测(逐 token 高概率采样) | 引入低概率但合理的词/意象(专名/方言/不常见动词), 抬局部困惑度 |
| 突发性 burstiness | 句长方差小, 像节拍器 | 制造句长突发性(单点性价比最高): 长短句暴力交错, 段中插两三字独立句 |
| 句式回归均值 | 过分工整 | 句式不重复: 陈述句后跟疑问/感叹/省略 |
注: 现代检测器(GPTZero/Turnitin)是学习型分类器, 不止看 perplexity——单破坏统计指纹不够, 必须同时改风格层 tells(层2/3)。
层 2 — 通用 tells(肉眼+分类器都吃)
- 三段式/三点排比 — 见三连排比就砍, 留一组或打散成不对称; 删「首先/其次/再次/最后」整套。
- 机械过渡词 — 删「然而/此外/值得注意的是/总而言之/不难发现」, 删后通顺就别加回。
- 空泛抽象+拔高 — 删「标志着/彰显/重要的一步/毋庸置疑」, 用具体替代(专名/数字/感官细节)。
- 否定式平行 — 「不是X而是Y」「不仅X更是Y」是最常见单一 tell, 删伪反转直接陈述 Y, 整篇最多留一两处真张力。
- 破折号滥用 / 翻译腔长定语 — 破折号改逗号句号; 「一个…的…的…」长定语拆短句, 被动改主动。
- 跑步机效应(信息密度低) — 删重述/铺垫性总结, 一段只推进一件新事。
层 3 — 小说特有 AI 味(与提升文学质量重合度最高)
- 对话太规整 — 人人完整句不打断不结巴。加对话破坏: 打断/噎住/答非所问/停顿/口头禅, 让说的≠想的(留潜台词)。
- 告诉而非呈现 + 情感喂饭 — 删「她很愤怒」式标签与解释, 用动作/身体语言/没说出口的话呈现, 情绪埋伏式冒出。
- 节奏匀速无起伏 — 紧张处连短句, 抒情处放一个长复句; 朗读自检, 读起来卡的地方就是 AI 味。
- 描写套路 / 形容词堆砌 / 陈词意象 — 强动词换掉「形容词+副词」堆叠; 用角色专属、出人意料的具体细节替代通用描写; 见熟套意象就换。
- 过度全知 / 视角无杂质 — 允许不完美: 保留无关细节、半成型反应、视角人物的偏见, 故意不解释某些东西(人类式跳跃留白)。
工作流(按序)
- 定范围(免输入) — 用户给了范围用之; 未给 → 默认本次/最近新写或重写的章, 不追问。
- 取文风基准 — 读本书
novelist-craft 选定的叙事镜片, 去味要服务该风格, 不是套通用模板。
- 发现并接力外部 humanizer 类 skill(必做, 运行时动态发现) — 去 AIGC 不只靠本插件方法, 必须复用生态里所有去 AI 味能力:
- 发现: 扫描当前已安装的可用 skill 列表, 凡名称或描述匹配
humanizer / humanize / 去AI味 / 去AIGC / 降AI / deaigc / AI 检测 的, 全部列为去味工具。禁硬编码路径——按运行时可用 skill 列表发现, 用户装了哪些就用哪些。
- 依次执行: 对目标正文, 逐个调用发现到的外部 humanizer skill(一个跑完再跑下一个, 接力去味); 每个都是真实调用(
Skill 工具或其约定入口), 不是口头宣称。
- 无外部 skill: 一个都没发现 → 跳过本步, 仅用 step 4 本插件 humanizer agent(降级提示「未发现外部 humanizer, 仅用内置」)。
- 派本插件 humanizer 做小说特化补充(可改, 范围受限) — 外部 humanizer 多为通用文本去味, **小说专属 AI 味(对话破坏/情感呈现/视角杂质/叙事节奏)**靠本插件 agent 补。真实
Agent tool_use 派 humanizer, 6 字段 prompt: 目标(去 X 范围残余 AI 味) / 已知(三层诊断要点 + 文风基准 + references/research/01-deaigc.md + 外部 humanizer 已处理过) / 范围(只改文字纹理, 禁改剧情/设定/走向) / 输出格式(逐条: 位置+改前+改后+命中特征#) / 验收(可读性不降、不伤风格一致性) / 失败处理(过度去味 → 撤回)。
- 熔铸/指纹互消(高 AI 味段落专用) — 对改完后人味分仍 ≤95 的段落,用指纹互消法打散 AI 公约数:
- 对目标段落生成 5 份独立改写(同一 agent 5 次,每次不看前次输出,prompt 强制「重新开始」)
- 对比 5 份找共同出现 ≥ 3/5 的词汇/句式/意象 = AI 公约数(高概率路径)
- 在最终版本中主动替换这些公约数为任一版本中出现但非共有的低频表达
- 结果必须经 score_aitaste.py 验证人味分提升后才采用
- 改写顺序(给 agent 的) — 先砍 tells(过渡词/排比/华丽词)→ 再制造节奏 burstiness → 最后注入具体细节与口语毛刺。
- AI 味人味分 + 棘轮 — 改写前后各算一次人味分(客观: tells 计数 + 句长方差, 用本 skill 自带脚本):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/novelist-humanize/scripts/score_aitaste.py <章节文件>
人味分 = 100 − tells惩罚 − 匀质惩罚(越高越像人写)。棘轮: 改后人味分必须 > 改前, 否则白改/改坏了 → 回退重改。目标 >95(≤95 报「AI 味偏重」)。前后分跨外部+内置全部去味后一并计。
- 报告 + 落盘 — 清单存
元数据/校对报告/<日期>-deaigc-<范围>.md(注明用了哪些外部 humanizer + 内置); 正文就地改。章节状态可推进「定稿」(收尾链最后一环)。
修改阈值(宁缺毋滥)
每段先判"有没有 AI 味", 有才改。某段已自然无明显 AI 特征 → 保留原文, 不为改而改。过度去味伤可读性与一致性, 把改写当外科手术不当地毯式轰炸。
与 proofread 的边界
- proofread = 文字对不对(错别字/语法/标点)。
- humanize = 文字像不像人写(AI 味/匀质/陈词/模板腔)。
- 二者都在文字层、都不碰剧情, 但目标正交; 收尾链里 proofread 先(改对)→ humanize 后(改活)。
失败模式(触发 → 一线修复 → 仍失败兜底)
| 触发 | 一线修复 | 仍失败兜底 |
|---|
| 范围过大 | 分章去味再汇总 | 仍大 → 优先处理状态「已校对」的新章 |
| 过度去味伤可读性 | 撤回该处, 只改明确 AI 味点 | 反复失衡 → 缩小授权, 只破坏统计指纹层 |
| 去味改了剧情/对话内容走向 | 撤销该改动, 重申只改纹理层 | 反复越界 → 缩范围重派 |
| 把有意风格化(精确修辞/有意排比)当 AI 味删 | 保留风格, 只改无意的匀质/套路 | 拿不准 → 标出请用户定 |
| 为降检出率改到支离破碎 | 可读性优先, 回退过度改写 | —— 检测器误报高, 不值得过度优化 |
| 发现到外部 humanizer skill 但跳过没调 | 必依次真实调用, 接力去味 | 跳过 = 浪费生态能力, 仅内置覆盖不全 |
| 硬编码某 humanizer 路径 | 运行时按可用 skill 列表动态发现 | 写死路径在别人机器上不存在 |
反例黑名单(命中=错, 重来)
| # | 禁做 | 改为 |
|---|
| 1 | 借去 AI 味改剧情/设定/对话走向 | 只动文字纹理, 剧情交 check/rewrite |
| 2 | main 自己逐段改不派 agent | 派 humanizer(真实 Agent tool_use) |
| 3 | 口头说"已去味"无 Agent 调用 | 宣称≠调用, 必有真实 tool_use |
| 4 | 只换词破坏统计指纹, 不改风格 tells | 三层一起改, 单破坏 perplexity 不够 |
| 5 | 把有意风格化表达当 AI 味抹平 | 保留风格, 只改无意匀质/套路 |
| 6 | 为过检测把通顺正文改到支离破碎 | 可读性优先于检测器分数 |
| 7 | 地毯式逐段都改 | 宁缺毋滥, 每段先判有无 AI 味再改 |
| 8 | 只用本插件方法, 不发现/不接力外部 humanizer skill | 运行时动态发现所有 humanizer 类 skill 依次执行, 再用内置补小说特化 |
| 9 | 硬编码外部 humanizer 路径 | 按运行时可用 skill 列表发现, 用户装啥用啥 |
反AI-创作黑名单(文字层具体禁令,命中即改)
标点禁令
| 禁 | 改为 |
|---|
连续两个以上感叹号 !! | 一个或改为句号收 |
| 破折号作为"补充说明"(——指的是……) | 直接新句说明,删破折号 |
| 句末省略号营造"沉默感"(她沉默了……) | 用行为/身体反应替代 |
| 分号列举三项以上 | 拆成两句或用逗号重排 |
禁用句式
| 禁用句式 | 原因 | 替代 |
|---|
不是X,而是Y / 不仅X,更是Y | 伪反转,AI 最爱 | 直接陈述 Y,省掉对比前缀 |
首先……其次……最后…… / 第一……第二……第三…… | 三段排比机械感 | 打散成不等长叙述,去掉序号词 |
值得注意的是 / 不难发现 / 毋庸置疑 / 总而言之 | 分析腔过渡词 | 直接进下一句,不加过渡词 |
(人名)深吸一口气 / (人名)心跳加速 / 热血沸腾 / 眼眶湿润 | 情感喂饭模板 | 用具体动作/感官细节:手指扣紧椅背 / 喉咙发干 |
不禁 / 不由得 引出反应 | 多余修饰,AI 高频 | 直接写反应,删引导词 |
| 以形容词+名词堆叠开头的景物描写 | 匀质高概率 | 动词开头:飞鸟掠过 / 雨打铁皮 |
| 对话后带"他/她说" + 解释语气的副词(她冷静地说/他愤怒地吼道) | 告诉不呈现 | 用动作标签替代(她把杯子推到桌边 / 他的椅子腿刮出一声响) |
禁用描写套路
| 模板描写 | 替代方向 |
|---|
| 夕阳西下 / 朝霞满天 / 繁星点点 | 具体气象+角色感知(风吹过腐叶气味的那个下午) |
| 眼神深邃 / 气质非凡 / 风度翩翩 | 一个奇怪具体的细节(领口绽开的线头/总摸右耳的习惯) |
| 心如刀割 / 五味杂陈 / 百感交集 | 身体层:胃缩紧/嘴里发苦/手不知道该放哪里 |
| 沉默是金 / 时光荏苒 / 岁月如梭 | 禁用,无替代,直接删 |
诚实边界
- 检测器不可靠: Stanford 测 7 个检测器, 非母语英文作文误报率达 61%。别把"过检测"当唯一目标——它连人类原创都常误杀。
- 军备竞赛无终局: 检测与规避持续对抗, 今天有效的手法明天可能失效; 本 skill 锚定"真·人味"而非某检测器当下弱点。
- 去味 ≠ 提升文学质量: 只换词不懂角色会出戏。最可靠工作流 = chapter-writer 生成 + humanize 精修; craft 手法(呈现/变速/分层对话)比自动改写更管用。
- 正确目标不是"100% 像人", 是"好到读者不在乎"。
调研来源
references/research/01-deaigc.md — 检测器原理(GPTZero perplexity/burstiness、Raschka 综述)+ 通用 tells(Wikipedia: Signs of AI writing)+ 小说手法 + 局限(Stanford 误报研究、Krishna/Sadasivan 规避论文)
被 novelist-write / novelist-rewrite 收尾链引用(生成→检查→校对→去AIGC→定稿); 派 humanizer agent; 与 proofread 边界正交; 只改纹理不动剧情。