360 Secure SkillHub
360 安全技能中心

降AI味

该技能用12条清单识别空泛开头、套话、排比、万能升华等中文AI腔,按定读者、删套话、换细节、调句长、留判断、回读六步改写,并提供仅用Python标准库的套话与句长统计脚本;强调细节须由作者提供,不编造事实,也不用于规避AI使用规定。

po-et
po-et
热度 7.64
最近更新 2026-09-24 18:34:12
分类:创作依赖:代码执行 / 读写文件应用场景:校对润色 / 文案创作 / 博客写作 / 社交媒体

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add reduce-ai-tone
Metadata
name
reduce-ai-tone
description
降AI味——把读着「一股 AI 味」的中文改成像一个具体的人写的:按清单找出空泛开头、套话、排比、万能升华,再按读者和语气逐句改写,附套话与句长统计脚本。当用户说「AI味太重」「去AI腔」「改得像人写的」「读着像机器写的」时使用。
author
Captain
version
0.1.0
display_name
降AI味
display_name_en
Reduce AI Tone
description_zh
降AI味:先用 12 条清单认出中文 AI 腔(空泛开头与总结句、值得注意的是类套话、三段式排比、过度对称、形容词堆叠、万能升华、无来源的研究表明、破折号与冒号标题等),再按定读者、删套话、换细节、调句长、留判断、回读六步改写,附脚本统计套话与句长分布。面向写作质量,不用于规避 AI 使用规定。
description_en
Rewrite Chinese text that reads as machine-generated so it sounds like a specific person wrote it, using a 12-pattern checklist with before-and-after pairs, a six-step rewrite method and a standard-library script that counts stock phrases and sentence-length spread.
tags
["降AI味","去AI味","AI腔","改写润色","中文写作","文风修改","humanize","AI tone","rewrite"]
examples_zh
["这段总结AI味太重,帮我改得像我自己写的","读着像机器写的,全是套话,怎么去掉AI腔","公众号初稿一堆「值得注意的是」「总而言之」,帮我改自然点"]

降AI味

定位一句话:AI 味多半不出在某个词上,出在文字里没有具体的人、具体的事、具体的判断。 删套话只是第一步,还要换上作者自己的细节和立场,读者才会觉得是一个人在跟他说话。

何时用:一段中文读起来空、顺、平,像在哪儿都见过;用户说「AI味太重」「去AI腔」「改得像我写的」。本技能管写作质量。如果目的是让作业或投稿躲过学校、期刊、单位对 AI 使用的规定,不接,理由见最后一节。

先判断:问题在「腔」还是在「空」

动笔前先弄清四件事,答不上来就问用户,别猜:

  1. 文体和场合。 公文、论文、产品说明、公众号、朋友圈、求职信、讲话稿,各有各的规矩。体裁惯例不算 AI 味:通知末尾的「特此通知」、论文结论开头的「综上所述」、说明书里的并列条目,都该留着。
  2. 读者和用途。 谁读?读完要他做什么,批准、购买、转发,还是记住一件事?
  3. 作者的声音。 要一段作者自己写的旧文字或聊天记录,照着它的用词习惯和句子长短来改。
  4. 腔还是空。 先把套话全部划掉,看剩下什么。剩下的都是实话,是「腔」的问题,改写能解决;剩下没几句,是「空」的问题,缺的是素材,得先向作者要细节,改写救不了。

检查点:能用一句话说出「写给谁、读完要他做什么、作者平时怎么说话」,再往下走。

AI 腔识别清单(12 条,附改写前后)

判断标准只有两条:删掉它,意思少没少;换一个题目,它还成不成立。 意思没少、换题照样成立,就是套话。清单里的词不是禁词,全文用一次「总之」没问题,问题在密度和空转。示例里「后」的细节都假定来自作者本人,实际改写时没有素材就写【待补:……】,不许编。

  • 空泛开头 第一句放到任何题目下都成立,如「在当今……的时代」「随着……的发展」。
    • 前:在当今快节奏的社会中,时间管理变得越来越重要。
    • 后:我每天下午三点以后基本做不成正事,消息一条接一条。
  • 空泛总结句 段尾把上文换个说法再说一遍,删掉后段落什么也没少。
    • 前:……由此可见,沟通在团队协作中发挥着重要作用。
    • 后:整句删掉。上文讲清楚的事,不用再总结一遍。
  • 「值得注意的是」「总而言之」类套话 过渡词后面的内容并不比别的句子更值得注意,后面也没有真正在「总」什么。
    • 前:值得注意的是,该方案也存在一定的局限性。总而言之,我们要辩证地看待这个问题。
    • 后:这个方案有个硬伤,样本不到 30 个时,每次跑出来的结果都不一样。
  • 三段式排比 三个同结构短语连用,作者却只能为其中一个举出实例。
    • 前:这次改版提升了效率,优化了体验,降低了成本。
    • 后:这次改版最实在的变化是快,报销从提交到到账由五天缩到两天。体验和成本还没有数据,先不写。
  • 过度对称 利弊各一句,每段都是「观点、解释、举例、小结」,读者看不出作者站哪边。
    • 前:一方面,远程办公提高了灵活性;另一方面,远程办公也带来了沟通挑战。
    • 后:远程办公对我们组利大于弊。真正麻烦的只有找人,以前转身就能问的事,现在要等回消息,有时一等半天。
  • 形容词堆叠 「非常」「极其」「令人难忘」连着用,却没有一个让读者看得见的细节。
    • 前:这是一次非常精彩、极其丰富、令人难忘的交流活动。
    • 后:三天听了九场分享,我记得最清楚的是李老师当场拆了自己一个失败的实验。
  • 万能结尾升华 最后一句贴到任何文章末尾都成立,如「让我们携手……」「相信……一定会越来越好」。
    • 前:让我们携手并进,共同开创更加美好的明天!
    • 后:下周三前我把新排班表发到群里,有冲突的直接找我改。
  • 无来源的「研究表明」 「研究表明」「数据显示」「专家指出」后面没有谁、哪年、多少样本。
    • 前:研究表明,超过七成的年轻人更喜欢线上购物。
    • 后(有出处):〔机构〕〔年份〕对〔样本量〕名〔人群〕的问卷显示……,并附上链接。
    • 后(没出处):我问了身边二十来个同学,网购比逛店多的占一大半。这只是我的观察,不是统计。
  • 滥用破折号 一段里两个以上「——」,多数只是把逗号拉长了。
    • 前:效率——这是我们一直追求的目标——也是我们最大的短板。
    • 后:我们一直想提效率,也一直卡在这儿。
  • 冒号标题 每段开头都是加粗短语加冒号,正文像提纲,句子之间没有连接。
    • 前:降本增效: 通过流程优化,实现成本的有效降低。
    • 后:去年换了报销系统,每单人工核对从 10 分钟降到 3 分钟。
  • 「不是……而是……」与自问自答 先立一个没人提过的靶子再推倒,或者「为什么这么说?因为……」。
    • 前:这不是一个技术问题,而是一个认知问题。为什么这么说?因为……
    • 后:卡住我们的是没人拍板要不要换供应商。技术上,两周就能迁完。
  • 大词叠保险话 「赋能」「抓手」「闭环」「全方位」再加上「在一定程度上」,读完不知道谁做了什么。
    • 前:以数字化为抓手,全方位赋能门店运营,在一定程度上提升了服务质量。
    • 后:门店把纸质签收单换成扫码签收,司机不用再跑回站点交单。

改写流程:六步

开始前先和用户定改写强度。轻:只删套话、拆冒号标题,结构和措辞基本不动,适合正式文件和已定稿的材料。中:再加上换细节、调句长,段落顺序不动,多数情况用这一档。重:按作者口吻重写,可以调结构,只在作者给了足够素材时做。

  1. 定读者和语气。 在书面正式(公文、论文)、书面平实(邮件、报告、说明)、口语亲近(公众号、朋友圈、发言)三档里选一档,全篇不换档。从作者的旧文字里记下三样:常用的词、偏长句还是短句、怎么称呼读者。
  2. 删套话。 按清单逐条标出来,先删「删掉意思不少」的:开头铺垫、过渡套话、段尾总结、结尾升华。删完通读一遍,意思没少就对了。
  3. 换具体细节。 每个抽象判断后面追问一句「比如呢」,答案要落到人、时间、数量、原话、场景之一。细节只能来自作者,用下面五个问题一次问完;实在没有,就写【待补:需要一个……的例子】。
  4. 让句长错落。 长句拆开,碎句合并,一段里有长有短,段落长度也别都一样。读出声来,换气别扭的地方就是要改的地方。
  5. 保留作者自己的判断。 把「有利有弊」「辩证看待」换成作者真实的立场,允许不对称,允许偏心,允许写「我不确定」。作者没表态的地方去问他,不替他站队。
  6. 回读对照。 跑一遍下面的脚本看前后数字,再把改动对照表交给作者核对事实。数字只作参考,最后以读出声顺不顺、像不像作者本人为准。

向作者要细节的五个问题:

1 这件事最近一次发生是什么时候?当时具体是什么情形?
2 能给一个数吗?多少人、多长时间、多少钱、比以前多了多少?
3 有没有谁说过的原话,或者一个你记得很清楚的场景?
4 如果只能选一边,你站哪边?为什么?
5 读者读完这段,你希望他做什么?

整段示例,属于「重」档。作者提供了自己的情况(三个月没读完书、通勤四十分钟、试过飞行模式),所以能改成第一人称的叙述。两段分别存成 draft.txt 和 revised.txt,可以拿来试脚本。

改写前(draft.txt):

在当今信息爆炸的时代,阅读习惯正在发生深刻的变化。随着短视频的普及,越来越多的人习惯了碎片化的信息获取方式。值得注意的是,这种变化既带来了机遇,也带来了挑战。

一方面,碎片化阅读让知识获取更加便捷、高效、灵活;另一方面,它也在一定程度上削弱了人们深度思考的能力。研究表明,长期碎片化阅读会导致注意力下降。

**核心观点:** 阅读不是一种消遣,而是一种能力。我们要以更开放的心态、更坚定的信念、更务实的行动,重建深度阅读的习惯。

总而言之,深度阅读至关重要。让我们携手并进,共同开创全民阅读的美好未来!

改写后(revised.txt):

我已经三个月没读完一本书了。每天通勤有四十分钟,全刷了短视频。

上周想重读一本以前很喜欢的小说,翻了二十页就去看手机,前后看了六次。我开始怀疑自己是不是读不进长东西了。

后来试了个笨办法:上地铁就把手机调成飞行模式,只带纸书。第一天读了八页,第四天读了三十多页。

能坚持多久我不知道。但这周,我读完了一本。

自检脚本:套话与句长分布

只用 python3 标准库。统计六类套话的命中次数和每千字密度、句长分布(平均、中位、变异系数、相邻两句长度接近的比例)、破折号、冒号小标题、顿号三连和排比候选。它量的是表面信号,不是 AI 检测器:人写的文字也可能命中很多,数字低也证明不了任何事。提示里的阈值(变异系数低于 0.35、破折号每千字超过 3 处、冒号小标题 3 行以上)是经验值,只供参考。词表按自己的领域增删,PATTERNS 里一类一行,写的是正则。

# 保存为 ai_tone_check.py;只用标准库。统计的是表面信号,不是「AI 检测器」
import re
import statistics
import sys

PATTERNS = {
    "空泛开头": r"在当今[^,。]{0,8}|随着[^,。]{1,15}的(?:发展|普及|进步|到来)|在[^,。]{1,15}的(?:大)?背景下|众所周知",
    "过渡套话": r"值得注意的是|需要指出的是|不难看出|由此可见|与此同时|事实上|首先|其次|此外",
    "总结升华": r"总而言之|总的来说|综上所述|总之|让我们|携手|共同(?:开创|创造|书写|迎接)|未来可期|美好未来",
    "无源引用": r"研究(?:表明|显示|发现)|数据(?:表明|显示)|专家(?:指出|认为)|有调查显示",
    "空洞大词": r"赋能|抓手|闭环|打造|全方位|多维度|深度融合|至关重要|不可或缺|举足轻重",
    "对举保险": r"不是[^。!?]{1,20}而是|不仅[^。!?]{1,20}(?:而且|更|还)|在一定程度上|某种意义上|一方面",
}

# 冒号小标题:加粗标签、列表项标签、行首 6 字以内的标签
HEAD = (r"(?m)^\s*(?:[-*+]\s+)?\*\*[^*\n]{1,12}(?:[::]\*\*|\*\*[::])"
        r"|^\s*(?:[-*+]|\d+[.、])\s*[^\s::,。*]{1,8}[::]|^[^\s::,。*#]{1,6}[::]")


def main():
    text = open(sys.argv[1], encoding="utf-8").read() if len(sys.argv) > 1 else sys.stdin.read()
    size = len(re.sub(r"\s", "", text))
    per_k = lambda n: n * 1000 / max(size, 1)
    print(f"正文 {size} 字(不含空白)\n\n[套话]    次数  每千字  命中")
    found = False
    for name, pat in PATTERNS.items():
        hits = re.findall(pat, text)
        if hits:
            detail = "、".join(f"{h}×{hits.count(h)}" for h in dict.fromkeys(hits))
            print(f"  {name}  {len(hits):>4}  {per_k(len(hits)):>6.1f}  {detail[:50]}")
            found = True
    if not found:
        print("  (无)")

    sents = [s for s in (re.sub(r"\s", "", x) for x in re.split(r"[。!?!?;;…\n]+", text)) if len(s) >= 2]
    lens = [len(s) for s in sents]
    cv = 0.0
    if len(lens) >= 2:
        mean = statistics.mean(lens)
        cv = statistics.pstdev(lens) / mean
        near = sum(abs(a - b) <= 3 for a, b in zip(lens, lens[1:])) / (len(lens) - 1)
        print(f"\n[句长] {len(lens)} 句  平均 {mean:.1f}  中位 {statistics.median(lens):.0f}  "
              f"最短 {min(lens)}  最长 {max(lens)}  变异系数 {cv:.2f}  相邻两句长度差≤3字 {near:.0%}")
        for lo, hi in ((1, 10), (11, 20), (21, 30), (31, 45), (46, 999)):
            n = sum(lo <= x <= hi for x in lens)
            print(f"  {lo:>2}-{hi if hi < 999 else '':<3}字 {'█' * n} {n}")

    dash = text.count("——")
    heads = len(re.findall(HEAD, text))
    stacks = re.findall(r"(?:[^\s,。、;:!?]{1,4}、){2,}[^\s,。、;:!?]{1,4}", text)
    print(f"\n[其他] 破折号 {dash} 处({per_k(dash):.1f}/千字)  冒号小标题 {heads} 行  "
          f"加粗 {text.count('**') // 2} 处  顿号三连 {len(stacks)} 处  {' / '.join(stacks[:3])}".rstrip())

    rows = []
    for s in re.split(r"[。!?!?\n]+", text):
        parts = [p.strip() for p in re.split(r"[,、;,;]", s) if p.strip()]
        for a, b, c in zip(parts, parts[1:], parts[2:]):
            if len(b) == len(c) >= 3 and any(x == y == z for x, y, z in zip(a[-len(b):], b, c)):
                rows.append(f"{a},{b},{c}")
                break
    if rows:
        print("\n[排比候选](三个并列小句,逐条人工判断)")
        for r in rows[:5]:
            print("  ·", r)

    tips = []
    if len(lens) >= 5 and cv < 0.35:
        tips.append("句长偏整齐:拆一两个长句,把几个短句并成一句")
    if per_k(dash) > 3:
        tips.append("破折号偏多:多数可以换成逗号或句号")
    if heads >= 3:
        tips.append("冒号小标题多:想想哪些可以写成完整句子")
    if tips:
        print("\n[提示](经验阈值,只供参考)\n  " + "\n  ".join(tips))


if __name__ == "__main__":
    main()
python3 ai_tone_check.py draft.txt
python3 ai_tone_check.py revised.txt

本机实测上面两段:改写前套话 14 处(空泛开头 2、过渡 1、总结升华 5、无源引用 1、大词 1、对举保险 4),10 句,变异系数 0.22,另有排比候选 1 条、顿号三连 1 处;改写后套话 0 处,8 句,变异系数 0.44。按行断开的诗歌、歌词、对话记录不适合看句长统计。

最常见的错误

  1. 拿编造的细节换掉空话。 这是最严重的错。「后」里的数字、人名、经历必须来自作者,没有就留【待补】。
  2. 只换同义词。 「总而言之」改成「总的来看」,「赋能」改成「助力」,换汤不换药。
  3. 为了像人故意加错别字、口头禅、表情和网络梗。 这不是降 AI 味,是降质量。
  4. 矫枉过正。 句子全砍成短句,成了另一种单调;或者把正式文体改成口水话。
  5. 删掉了体裁要求的格式语。 公文结构语、论文摘要的固定格式、合同条款的措辞,都不在本技能的删除范围。
  6. 改掉作者的立场。 把作者的「我倾向 A」改成改写者觉得对的 B,或者把作者的「我不确定」改得斩钉截铁。
  7. 把「AI 检测分数」当目标。 这类分数不是写作质量的标准,改写只对读者负责。

输出契约

  1. 改写稿全文,按事先定好的强度(轻、中、重)改,开头注明用的是哪一档。
  2. 改动对照表,三列:原句、改为、命中清单第几条;只列改动大的句子,最多 15 条。
  3. 【待补】清单,每条写清需要作者补什么,例如「第 2 段需要一个具体数字:改版前报销平均几天到账」。
  4. 前后数字(跑了脚本时附上):套话次数、变异系数,改写前后各一行。
  5. 不动的东西:事实、数据、引文、专有名词原样保留。发现疑似错误,单独列出来提醒,不自行改。

边界与不做什么

  • 本技能面向写作质量。不用于规避学校、期刊或单位对 AI 使用的规定;机构要求披露 AI 使用时,应如实披露,改得再像人写的,也改变不了用过 AI 这件事。用户明说目的是让作业、论文或投稿躲过 AI 检测、瞒过老师或编辑时,不提供改写,说明原因即可。
  • 不代写要求本人独立完成的作业、考试答案和申请文书,可以指出问题、示范一两句,整篇要作者自己完成。
  • 不承诺、也不去测试任何「AI 检测」工具的结果;脚本数字只反映文风信号,证明不了文字是谁写的。
  • 不编细节、数据、引文和经历,不改原文的事实主张;要改立场,先问作者。
  • 学术诚信、署名、AI 使用披露的具体要求,以任课老师、导师、期刊编辑部或单位的书面规定为准,拿不准就去问他们。