降 AI 味
去除文本里 AI 生成痕迹、保住人味的 Claude Code 技能
一个可移植的代理技能,能去除文本中 AI 生成的痕迹,使其听起来更自然、更人性化。它采用纯 Markdown 编写,因此可在任何支持技能风格指令的运行环境中运行。
安装
Skills CLI
使用跨代理的 Skills CLI 全局安装,使 Humanizer 在每个项目中都可用:
npx skills add blader/humanizer --global
更新已有的安装:
npx skills update humanizer --global
要全局安装到每个受支持的代理运行环境:
npx skills add blader/humanizer --global --agent '*'
要指定一个已配置的运行环境,传递其代理名称:
npx skills add blader/humanizer --global --agent <agent-name>
省略 --global 可进行项目本地安装,该安装可提交并与协作者共享。安装后,启动新的代理会话或重新加载技能。
Claude Code 插件
Claude Code 用户也可以将 Humanizer 作为插件安装:
/plugin marketplace add blader/humanizer
/plugin install humanizer@humanizer
然后通过 /humanizer:humanizer 调用该技能。
手动安装
任何代理运行环境都可以直接使用该技能,因为运行时产物是 SKILL.md。将其安装到运行环境期望的技能目录中,或者将 SKILL.md 复制到现有的技能文件夹中。
例如:
git clone https://github.com/blader/humanizer.git /path/to/your/skills/humanizer
或者,如果你已经克隆了此仓库:
mkdir -p /path/to/your/skills/humanizer
cp SKILL.md /path/to/your/skills/humanizer/
使用方法
根据你的代理运行环境暴露已安装技能的方式调用该技能。常见形式包括斜杠命令或直接请求:
/humanizer
[在此粘贴你的文本]
请将以下文本人性化:[你的文本]
指向一个文件,该技能会原地重写:
将 docs/launch-post.md 中的散文人性化
声音校准
为了匹配你的个人写作风格,请提供一份你自己的写作样本:
/humanizer
以下是我用于声音匹配的写作样本:
[粘贴 2-3 段你自己的写作]
现在将这段文本人性化:
[粘贴要人性化的 AI 文本]
该技能会分析你的句子节奏、用词选择和独特风格,然后将它们应用到重写中,而不是生成通用的“干净”输出。
概述
基于 维基百科的“AI 写作迹象”指南,由 WikiProject AI Cleanup 维护。这份全面指南来自对数千个 AI 生成文本实例的观察。
该技能还包含一次最终的“明显是 AI 生成的”审计检查以及第二次重写,以捕捉初稿中残留的 AI 痕迹。
重写遵循不虚构原则:绝不添加源文本中不存在的事实、名称、日期或引用。具体性必须来自源文本或作者,而不是来自重写。
维基百科的关键见解
“LLM 使用统计算法来猜测接下来应该出现什么。结果往往倾向于适用于最广泛情况的统计可能性最高的结果。”
检测到的 33 种模式(附前后对比示例)
内容模式
| # | 模式 | 之前 | 之后 |
|---|---|---|---|
| 1 | Significance inflation | “标志着……的关键时刻” | “成立于 1989 年,是更广泛去中心化的一部分” |
| 2 | Notability name-dropping | “被 NYT、BBC、FT 和 The Hindu 引用” | 精简列表;只保留有来源的上下文 |
| 3 | Superficial -ing analyses | “象征着……反映了……展示了……” | 删除,或只保留来源支持的内容 |
| 4 | Promotional language | “坐落于叹为观止的区域之中” | “是贡德尔地区的一个小镇” |
| 5 | Vague attributions | “专家认为它起着关键作用” | 指明真实来源或删除该主张 |
| 6 | Formulaic challenges | “尽管面临挑战……仍在蓬勃发展” | 保留有来源的事实;删除鼓吹性内容 |
语言模式
| # | 模式 | 之前 | 之后 |
|---|---|---|---|
| 7 | AI vocabulary | “实际上……此外……见证……格局……展示” | “也……仍然常见” |
| 8 | Copula avoidance | “充当……以……为特色……拥有” | “是……有……” |
| 9 | Negative parallelisms / tailing negations | “这不仅仅是 X,更是 Y”、“……,不用猜测” | 直接陈述观点 |
| 10 | Rule of three | “创新、灵感、以及洞见” | 使用自然数量的项目 |
| 11 | Synonym cycling | “主角……主要人物……中心人物……英雄” | “主角”(在意思最清晰时重复使用) |
| 12 | False ranges | “从大爆炸到暗物质” | 直接列出主题 |
| 13 | Passive voice / subjectless fragments | “无需配置文件” | 在有助于清晰度时指明行为者 |
风格模式
| # | 模式 | 之前 | 之后 |
|---|---|---|---|
| 14 | Em/en dashes | “机构——而非人民——然而这仍在继续——” | 去掉:改用句号、逗号、冒号或括号 |
| 15 | Boldface overuse | “OKRs、KPIs、BMC” | “OKRs、KPIs、BMC” |
| 16 | Inline-header lists | “**性能:**性能提升了” | 转换为散文 |
| 17 | Title Case Headings | “战略谈判与伙伴关系” | “战略谈判与伙伴关系” |
| 18 | Emojis | “🚀 启动阶段:💡 关键洞察:” | 删除表情符号 |
| 19 | Curly quotes | said “the project” | said "the project" |
| 26 | Hyphenated word pairs | “跨职能、数据驱动、面向客户” | 常见词对去掉连字符 |
| 27 | Persuasive authority tropes | “其核心在于……” | 直接陈述观点 |
| 28 | Signposting announcements | “让我们开始吧”、“以下是需要了解的内容” | 直接进入内容 |
| 29 | Fragmented headers | “## 性能” + “速度很重要。” | 让标题完成工作 |
| 30 | Diff-anchored writing | “此函数被添加以替换……” | 描述它的功能,而不是发生了什么变化 |
| 31 | Manufactured punchlines / staccato drama | “它没有偏好。没有先验。没有怀旧。” | 使用多样化的句子长度和具体的主张 |
| 32 | Aphorism formulas | “对称是信任的语言” | 用实际主张替换公式 |
| 33 | Conversational rhetorical openers | “老实说?这取决于……” | 去掉假装坦诚的铺垫 |
沟通模式
| # | 模式 | 之前 | 之后 |
|---|---|---|---|
| 20 | Chatbot artifacts | “希望这有帮助!如需进一步了解,请告诉我……” | 完全删除 |
| 21 | Cutoff disclaimers | “虽然现有来源中的细节有限……” | 找到来源或删除 |
| 22 | Sycophantic tone | “好问题!你说得完全正确!” | 直接回应 |
填充词与含糊其辞
| # | 模式 | 之前 | 之后 |
|---|---|---|---|
| 23 | Filler phrases | “为了”、“由于……的事实” | “为了”、“因为” |
| 24 | Excessive hedging | “可能或许有可能” | “可能” |
| 25 | Generic conclusions | “未来看起来一片光明” | 具体计划或事实 |
完整示例
(说明注:下面的改写添加了具体细节,如月份和街区,这些细节替代了作者本应提供的内容。在真实对话中,这些细节来自用户;该技能是提问而非凭空捏造。)
改写前(AI 腔调):
我最近在里斯本度过了难忘的五天,听我说——这座城市完全俘获了我的心。从抵达的那一刻起,我就知道我来对了地方。
坐落在塔霍河畔,里斯本鲜活地证明了葡萄牙不屈的精神,丰富的历史与现代活力在这里交织。是的,那些著名的山坡很有挑战性——我的腿确实感受到了!——但每一次攀爬都会以令人屏息的全景回报你,让一切付出都值得。
没有乘坐标志性的 28 路电车,行程就不算完整,它蜿蜒穿过城市最古老的街区。而美食呢?简直神圣。贝伦区的原味蛋挞是备受珍视的国家宝藏,品尝一个还温热的蛋挞是我永远不会忘记的时刻。
但真正让里斯本与众不同的不是风景——而是那种感觉。迈出主广场几步,你会发现一个更安静、更真实的一面:阳光洒满的小巷、迷人的瓷砖墙面、以及友善的当地人过着他们的日常生活,邀请你慢下来,享受每一刻。
当然,必去的圣乔治城堡能俯瞰下方屋顶的壮丽景色。排队可能很长,但对任何历史爱好者或好奇的旅行者来说,绝对值得。
我会再去吗?当然。里斯本不仅仅是一个值得游览的地方——它是一个让人一次又一次爱上的地方。如果你正在梦想下一次旅行,这是一个能留下终生回忆的目的地。✨
改写后(人性化):
去年十月我在里斯本待了五天,到现在心情还颇为复杂。美,确实美。但膝盖受的罪比谁都没提醒过。
那些山坡就是全部故事,却不知怎么从没出现在宣传册上。我住的酒店在阿尔法玛区,拍照很美,但实际体验就是——每次想喝咖啡都得爬一段感觉像六层楼高的楼梯。到第二天,我的小腿已经开始抗议了。我开始规划每条路线时都先考虑哪条路是下坡,这虽然是一种奇怪的游览城市的方式,但可能也是最诚实的。
人人都说要去坐 28 路电车,于是我去了,被挤在一个陌生人的背包旁整整四十分钟,期间三个旅行团在同一个角落拍视频。下次我会步行走那条路线,或者赶在早餐前出发。不过,蛋挞确实值得追捧。我在格拉萨区一家不起眼的小店吃了一个,还热乎着,大约有三十秒的时间,我理解了为什么有人会为了甜点规划一次旅行。
我没想到的是,远离主广场后这座城市会如此安静。从任何广场往上走两个街区,就变成了晾衣绳、碎瓷砖、敞开的窗户,以及把电视音量开大看足球的老人们。这才是我一直念念不忘的里斯本,而不是城堡。
城堡还行。景色不错,队伍很长,我花在排队挪向入口的时间比进去之后看任何东西的时间都多。如果只有两天时间,我会用城堡换一个下午的迷路时光。
我会再去的,但要在春天,而且穿更好的鞋。里斯本不会刻意让你事事顺心。我想我喜欢这一点,即使我的腿不同意。
参考资料
- Wikipedia: Signs of AI writing - 主要来源
- WikiProject AI Cleanup - 维护组织
版本历史
- 2.9.1 - 改进分发和可移植性:移除了不可移植的前置元数据和工具预批准,将全局安装设为文档默认方式,添加了包验证,并从运行时提示中移除了重复的长格式示例。33 种模式不变。
- 2.9.0 - 添加了无虚构规则:改写不得捏造源文本中不存在的事实、名称、日期或引用,并且所有模拟虚构细节的示例均已重新裁剪,仅使用源信息(修复 #187)。将段落计数对等替换为信息优先于形状的规则,使使用者的语音示例优先于长破折号禁令,并添加了调用模式(粘贴文本/文件/嵌入)。33 种模式不变。
- 2.8.3 - 将技能版本从不受支持的顶层前置元数据键移至
metadata.version,以兼容 Agent Skills 和 Claude。33 种模式不变。 - 2.8.2 - 将完整的改写前后示例替换为第一人称的里斯本旅行回顾。改写后的文本保持了与改写前相同的话题、视角和大致长度,同时消除了 AI 痕迹,但并未变得过于简略或口号化。33 种模式不变。
- 2.8.1 - 添加了跨代理安装文档、可选的 Claude Code 插件打包,以及一个紧凑的二手文本误报防护。33 种模式不变。
- 2.8.0 - 新增了风格/节奏模式 #31-33,用于处理人为制造的包袱、格言句式以及对话式修辞开场白;扩展了 #20 以捕捉“继续对话”的聊天机器人结尾语。总计 33 种模式。
- 2.7.0 - 新增了模式 #30(以差异为基础的写作);将 em/en 破折号规则从“过度使用”改为严格禁止;扩展了 #21 以覆盖推测性填空(“保持低调”)。总计 30 种模式。
- 2.6.0 - 清理更新:合并了重复的工作流程部分,将对个性指导的限制限定在需要语音的内容上,移除了模型指纹识别小节,并压缩了实际示例。29 种模式不变。
- 2.5.1 - 添加了被动语态/无主语片段规则,总模式数增至 29 种。
- 2.5.0 - 新增了说服性框架、路标式表达和碎片化标题的模式;扩展了否定平行结构以覆盖尾随否定;收紧了对 em 破折号过度使用的措辞;修正了前置元数据中关于“填充短语”的措辞。
- 2.4.0 - 新增了语音校准:根据示例匹配使用者的个人写作风格。
- 2.3.0 - 新增了模式 #25:连字符词对过度使用。
- 2.2.0 - 新增了最终的“明显 AI 生成”审计以及第二轮改写提示。
- 2.1.1 - 修正了模式 #18 的示例(弯引号与直引号)。
- 2.1.0 - 为全部 24 种模式添加了改写前后示例。
- 2.0.0 - 基于原始维基百科文章内容完全重写。
- 1.0.0 - 初始版本。
许可证
MIT
