humanizer
将 AI 生成文本改写成更接近真人写作风格的 Agent 技能,基于维基百科 35 种「AI 写作痕迹」特征做两轮改写和校验。亮点是规则可溯源可解释,不胡编事实,支持用个人写作样本匹配风格,适合内容运营和需要处理 AI 文本的团队。注意:依赖 Agent Skills 生态,需要 Claude Code 等支持该格式的 agent。
README
Humanizer
Humanizer 重写听起来 AI 味十足的文本,使其读起来像人写的一样,同时不改变原文要表达的意思。由于它本质上就是 Markdown,因此可与任何支持技能(skills)的 agent 配合使用。
工作原理
Humanizer 使用了维基百科上由 WikiProject AI Cleanup 维护的 "Signs of AI writing" 一文中的 35 种模式。它会先进行第一轮改写,此轮不会把原始结构视为不可改变。随即它会针对这些模式以及原文的核心主张对草稿进行核查,再对那些仍不合格的内容进行二次改写。
"LLM(大语言模型)使用统计算法来猜测接下来应该生成什么内容。结果往往会倾向于适用于各种情况的最具统计可能性的结果。"
它不会无中生有编造内容。任何姓名、数字、日期、引语、引文出处或其他事实细节,都必须来自原文或作者本人。对于个人化写作,Humanizer 会保留作者的风格。技术和参考文献类行文则保持中性、简洁。若你提供一段写作样例,Humanizer 会以该样例的风格为准,而不是套用默认的文体规则。
当你直接粘贴文本时,Humanizer 会先展示它的工作过程,然后再给出最终版本。你可以看到第一轮改写的结果,以及任何仍显生硬之处的简短点评。如果是针对某个文件,它只改写其中的行文,代码、数据、frontmatter 和链接目标都会原样保留。
用法
直接调用技能:
/humanizer
[paste your text here]
或用自然语言提出请求:
Please humanize this text: [your text]
若要改写某个文件,请将文件路径交给 Humanizer:
Humanize the prose in docs/launch-post.md
匹配你的个人风格
如果你想让改写后的文章更像你自己所写,请提供一份样例:
/humanizer
Here's a sample of my writing for voice matching:
[paste 2-3 paragraphs of your own writing]
Now humanize this text:
[paste AI text to humanize]
Humanizer 会遵循样例中的行文节奏、用词习惯、标点方式以及在有意为之的特殊表达倾向。
35 种模式
内容模式
| # | 模式 | 写改前 | 写入后 |
|---|---|---|---|
| 1 | 夸大重要性和传承影响 | “marking a pivotal moment in the evolution of...” | “was established in 1989 as part of a wider decentralization” |
| 2 | 过度攀附权威名号来证明其重要性 | “cited in NYT, BBC, FT, and The Hindu” | 仅保留有实际作用且标明来源的背景信息 |
| 3 | 肤浅的 -ing 式分析 | “symbolizing... reflecting... showcasing...” | 仅保留来源信息支持的内容 |
| 4 | 广告推销式语言 | “nestled within the breathtaking region” | “is a town in the Gonder region” |
| 5 | 来源含糊 | “Experts believe it plays a crucial role” | 指出真实来源,或删除该论断 |
| 6 | 格式化的困难和展望套路 | “Despite challenges... continues to thrive” | 保留事实,去掉广告式吹捧 |
语言与语法模式
| # | 模式 | 写改前 | 写入后 |
|---|---|---|---|
| 7 | AI 味文字高频用词 | “Actually... additionally... gated on... quietly... testament... landscape... showcasing” | “also... needs... remain common” |
| 8 | 刻意绕开 is 和 are | “serves as... features... boasts” | “is... has” |
| 9 | "不是 X 而是 Y"句式与戛然而止式结尾 | “It's not just X, it's Y”, “..., no guessing” | 直接点出意思 |
| 10 | 堆砌三连词 | “innovation, inspiration, and insights” | 根据实际需要的含义决定列几项 |
| 11 | 同一对象反复换个说法 / 用同一主语不断开篇 | “protagonist... main character... hero” 或 “She noted... She noted... She filed...” | 统一使用一个称呼,或合并重复的句子 |
| 12 | 虚假的从 X 到 Y 范围罗列 | “from the Big Bang to dark matter” | 直接列出所涉主题 |
| 13 | 被动语态和主语缺失 | “No configuration file needed” | 只要能说清是谁在做,就写明行为主体 |
风格模式
| # | 模式 | 写改前 | 写入后 |
|---|---|---|---|
| 14 | 大量使用破折号(em/en dash) | “institutions—not the people—yet this continues—” | 去掉破折号:可用句号、逗号、冒号或括号替代 |
| 15 | 过度使用粗体 | “OKRs, KPIs, BMC” | “OKRs, KPIs, BMC” |
| 16 | 列表套粗体小标头 | “Performance: Performance improved” | 若列表没有实际增加信息量,就改成规范行文 |
| 17 | 标题字号全大写式处理 (Title case) | “Strategic Negotiations And Partnerships” | “Strategic negotiations and partnerships” |
| 18 | Emoji 表情符号 | “🚀 Launch Phase: 💡 Key Insight:” | 去掉 emoji |
| 19 | 弯引号 | said “the project” |
said "the project" |
| 26 | 连字符词组过度密集 | “cross-functional, data-driven, client-facing” | 只保留语法上必须的那些连字符 |
| 27 | 看似深刻的伪哲理 | “At its core, what matters is...” | 直接点明观点本身 |
| 28 | 宣布下一个内容点的写法 | “Let's dive in”,或 “one thing that bit me” | 直接进入正题 |
| 29 | 标题后又在正文里重复标题的意义 | “## Performance” + “Speed matters.” | 让标题完成它应承担的表达作用 |
| 30 | 写旧版本中更新的过程 | “This function was added to replace...” | 描述它现在本身具备什么功能即可 |
| 31 | 强行制造冲击感与片段化短句 | “It had no preference. No prior. No nostalgia.” | 使用自然的句子长度,写有实质内容的陈述 |
| 32 | 格言式套路语言 | “Symmetry is the language of trust” | 直接陈述具体的论点 |
| 33 | 假装坦诚或直白的开头 | “Honestly? It depends...” | 直接给出答案 |
| 34 | 去回应没人反驳过的挑战 | “This isn't mainly about prompt length...” | 删掉这种没有受众的防御性说法,留下确有依据的论断 |
| 35 | 先假装某个选择在前,再否定之 | “A tempting option would be to..., but” | 不要写这种看似却毫无意义的假选项,保留真实的抉择 |
聊天机器人模式
| # | 模式 | 写改前 | 写入后 |
|---|---|---|---|
| 20 | 正文结束后仍留下聊天机器人应对语言 | “I hope this helps! Let me know if...” | 删去 |
| 21 | 表达知识有限或干脆是猜测的附注 | “While details are limited in available sources...” | 写上已知的事实,若本就不知道则宁可缺失该句论断 |
| 22 | 语气过于迎合 | “Great question! You're absolutely right!” | 直接做出有内容的答复 |
填充词与闪烁其辞
| # | 模式 | 写改前 | 写入后 |
|---|---|---|---|
| 23 | 冗余的填充表达 | “In order to”, “Due to the fact that” | “To”, “Because” |
| 24 | 过分堆砌程度限定词 | “could potentially possibly” | “may” |
| 25 | 千篇一律的正能量结尾 | “The future looks bright” | 用有依据的事实或计划作结 |
完整示例
原文中的月份与街区等细节由作者自行提供。如果缺少这些要素,Humanizer 应主动询问,而不是自行编造。
写改前(AI 味十足):
我最近在里斯本度过了难以忘怀的五天,容我说一句——这座城市彻底征服了我的心。从我抵达那一刻起,我就知道自己来到了一个非同一般的地方。
里斯本坐落于特茹河河畔,是葡萄牙那日久弥新之精神的鲜活见证,这里丰厚的历史与现代动能每时每刻都揉和在一起。的确,那些远近知名的小山丘充满挑战性——我的双腿可深深领教过!——但每爬上一层,那种景色豁然开朗、全景尽收眼底的感觉,总让人觉得一切辛苦都值了。
此次旅行的一大重头戏无疑是乘坐标志性的 28 路电车,一路穿梭过这座城市中最有历史气息的多片街区。而美食呢?更是令人神魂颠倒。贝伦区 Pastéis de Belém 店里那最正宗的葡式蛋挞,是一份举国钟爱的珍贵宝藏。当它还透着热乎气时便咬下一口,那种瞬间我永生难忘。
不过,真正让里斯本如此特别的不仅是风景本身——更是一种氛围。只要你从主要广场往外多走几步,就能发现这里更安静、也更有本真魅力的一面:阳光铺满的巷子、瓷砖装饰的迷人门面,以及街头巷尾照常过着日子的热情当地人。这所有的一切,宛如一声慢下脚步、细细品味每时每刻的邀请。
当然,必去打卡的圣乔治城堡从高处望下去,能看到铺展在脚下屋顶之上壮丽非凡的景象。那里排队可能颇长,但对每位历史发烧友或只是好奇的旅行者来说,这一段体验也绝对物有所值。
我会再次前往吗?一定会。里斯本不是一个“到此一游”的地方——它会让你一次又一次地爱上它。如果你正在憧憬下一次逃离日常的远行,那么这个目的地就是能为你奉上一生难忘回忆的不二之选。✨
写入后:
我去里斯本待了五天,大约是去年十月,到如今对它仍然有种说不清道不明的复杂情绪。那地方确实美。但也比我听过的所有提醒都更伤膝盖。
这座城市的主题其实就是那上上下下的坡,而所有旅行手册对此都只字不提。我住的旅馆在阿尔法玛区,那边拍照的确漂亮,但实际情况就是每天去买杯咖啡,都像在爬一座六层高的大楼梯。到了第二天,我的小腿就已经开始抗议了。之后我每设计一段步行路线时,首先考虑的是哪里是下坡道。对于认识一座城市而言这也许算不上聪明方式,但恐怕是最诚实的。
人人都说一定要坐一次 28 路电车,于是我去坐了。结果整整四十分钟,我被挤得贴在一个陌生人的背包上,同时还有三个旅行团在对着同一个路口录像。如果还有下次,我宁可沿着路线步行,又或者趁早餐前人流还没上来时去坐。不过,这里出品的葡式蛋挞确实值得排场。我是在格拉萨区一家平淡无奇的小店里买了一个,拿到手里还带着温热。那一刻大约有三十秒钟时间,我完全理解了为什么有人会为一份甜点而计划一场旅行。
而真正出乎我意料的是,只要稍微偏离主广场一带,整座城市就进入了一种十分安静的状态。从任何一处中心广场往坡上多走两个街区,你看到的就是晾衣绳、残缺的瓷砖、敞开的窗子,以及几个把电视音量开到最大在看球赛的老人。到现在仍常在我脑海里浮现的,正是这个里斯本,而不是那座城堡。
城堡本身倒也不错。景色很好,可队伍也长得离谱。老实说,我排着队往前挪的时间,比进去后看任何东西的时间都长。如果我只剩两天在里斯本,我会把那趟城堡行换成一下午漫无目的地到处迷路。
我还是愿意再去的,只不过会选择春天,也会穿一双更舒服的鞋。里斯本不会热情过了头来让你事事方便。我想我喜欢的恰恰是这一点——即使我的双腿并不这么认为。
来源
- Wikipedia: Signs of AI writing 是此模式列表的出处。
- WikiProject AI Cleanup 负责维护该页面。
版本历史
查看版本发布记录- 2.11.2 - 移除了插件符号链接以及针对 Claude Desktop 的单独安装包。当前版本的 Claude Code 可直接读取根目录下的
SKILL.md,现在 GitHub 的源码 ZIP 包可在 Claude Desktop 中直接使用。35 种模式无改动。 - 2.11.1 - 增加了一个可直接用于 Claude Desktop 的发布包,其中含有一个普通
humanizer/SKILL.md文件。GitHub 的源码归档仍保留插件符号链接(修复 #224)。35 种模式无改动。 - 2.11.0 - 将所有仓库指南、描述、检查逻辑和技能说明改写为 Plain Language。沿用全部 35 种模式及原有行为。
- 2.10.2 - 为 Claude Desktop 和旧版加载器新增了标准的
skills/humanizer/插件路径。由于该路径链接到根技能,因此仍然只有一份提示语(修复 #202)。 - 2.10.1 - 在 §7 中增加了对
gate、gated、gating一词比喻性用法的处理。同时保留了其实实在在的技术含义,如 feature gating 和 CI quality gates。 - 2.10.0 - 新增模式 #34 和 #35,用于清除遗留于终稿段落中的草稿式思路。为各种真实的限制、反驳和备选方案增加了相应保障(修复 #198)。另外改进了 §24 和最终的改写步骤。当前共 35 种模式。
- 2.9.2 - 将“句子开头重复”判定逻辑归入模式 #11,同时给刻意为之的排比重复留出保护空间(修复 #206)。将 §28 扩大了范围以覆盖更多随笔式的预告语。模式共 33 种。
- 2.9.1 - 改进安装流程与包校验机制。移除了不受支持的 metadata、工具授权机制和一处重复的过长示例。模式共 33 种。
- 2.9.0 - 新增了禁止虚构事实的规则,并逐一更新所有示例以符合该规则(修复 #187)。将“信息真实性”提升到“段落结构”之上;写作样例现在可以覆盖 §14;并新增了三种输出模式。共 33 种模式。
- 2.8.3 - 将版本号迁移到
metadata.version以保证对 Agent Skills 的兼容性。共 33 种模式。 - 2.8.2 - 将主要示例替换为一段第一人称里斯本游记,且保留了原文的主题、视角与细节。共 33 种模式。
- 2.8.1 - 增加了跨 agent 安装方式、Claude 插件文件,以及对引文内容的保护。共 33 种模式。
- 2.8.0 - 新增模式 #31-33,并扩展模式 #20 以覆盖聊天机器人的主动提供帮助型话语。共 33 种模式。
- 2.7.0 - 新增模式 #30,强化对破折号的规则,并扩展模式 #21 以包含无任何依据的推测。此时共 30 种模式。
- 2.6.0 - 合并了重复的工作流描述;将“个性特征”建议限定于适用的内容;不再在文档中作任何模型能力上的猜测;同时精简了主要的完整示例。共 29 种模式。
- 2.5.1 - 新增对被动语态及主语的缺失的核查项。共 29 种模式。
- 2.5.0 - 增加对伪深刻结论、预告式开场、重复标题及省略式否定结尾的识别。收紧了破折号规则,并修正了 frontmatter。共 28 种模式。
- 2.4.0 - 增加写作样例对口匹配功能。
- 2.3.0 - 增加对连字符堆叠词组的核查。
- 2.2.0 - 增加一次草稿复核及第二轮改写。
- 2.1.1 - 修正了弯引号的示例写法。
- 2.1.0 - 为当时的全部 24 种模式添加了示例对照。
- 2.0.0 - 依据维基百科该来源条目重写了本技能。
- 1.0.0 - 首个正式版本。
许可证
MIT
安装
通过 Skills CLI 安装 Humanizer:
npx skills add blader/humanizer --global
若希望仅安装于当前项目中,请去掉 --global 参数。使用 --agent <name> 或 --agent '*' 指定希望安装到的 agent。完成后请重新载入对应 agent 的技能列表。
Claude Code 2.1.142 及以上版本可直接安装此插件:
/plugin marketplace add blader/humanizer
/plugin install humanizer@humanizer
插件调用命令为 /humanizer:humanizer。
在 Claude Desktop 中,请将本仓库下载为 ZIP 文件,再将其作为技能上传。
如需手动安装,将 SKILL.md 放入对应 agent 的 skill 目录即可。