dsh-humanizer
中文文本人味化 bundle 插件:强制深层改写工作流(十维叙事审计 + 功能路径 + 15 层分布)+ 内容忠实守卫。编辑辅助,非 AI 检测器。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:DEEP-IOS/dsh-humanizer说明文档
阅读完整 README ↗dsh-humanizer
你让模型写了一段中文。读起来很顺,但总觉得哪里不对。dsh-humanizer 是 DeepSeek Harness 的一个插件,管的就是这个"哪里不对"。
它不做词表替换。它给模型一套诊断和改写流程:从叙事结构、语言层次到三轮改写,每一层都有对应的检查方法,每一步都有程序守门。改完的东西,读者看不出是模型写的,内容也没有跑偏。
它不是 AI 检测器。
问题在哪
生成模型写中文,句子可能各不相同,底下的决策却是重复的:怎么开头、怎么举例、怎么收尾、情绪用什么承载、论证走哪条路。重复的次数多了,读者就感觉到了。这种感觉就是"AI 味"。
换词碰不到这一层。把"此外"换成"另外",把"值得注意的是"删掉,模型会在同一个分布里挑出下一批词,路径没变,机器腔还是机器腔。
要改的是路径,不是词。
它改出来的东西长什么样
一段"AI 味"的中文,常见是这样:
夜深了,他独自坐在窗前,望着窗外的城市,心中充满了复杂的情绪。他想起这些年的经历,那些曾经的梦想,如今都已渐行渐远。他不禁感到一丝惆怅,但同时也明白,人生就是这样,总要学会告别。窗外的风轻轻吹过,仿佛也在叹息。他暗暗下定决心,明天,一定要重新开始。
经过这套工作流改完,可能是这样:
烟灰缸里已经堆了三根。他把第四根按灭,又拉开抽屉,里面是那叠没写完的信,最上面一张写着日期,三天前的。
他合上抽屉,没有锁。窗外的城市还亮着,和他没什么关系。
天亮的时候,他出门前把信带上了。
两个版本的事实一样:一个人在夜里想起过去,做了个决定。改动发生在决策层:
| 原版 | 改版 | 改了什么 |
|---|---|---|
| "心中充满了复杂的情绪""他不禁感到一丝惆怅" | 烟灰缸、三根烟头、没写完的信、三天前的日期 | 情绪由物件和行为承载,不再由旁白命名(心理代理→物件自证) |
| "窗外的风轻轻吹过,仿佛也在叹息" | "窗外的城市还亮着,和他没什么关系" | 环境不再映照心理,保持冷漠(环境映心→环境本身) |
| "人生就是这样,总要学会告别" | "和他没什么关系" | 主题升华换成局部判断,不给读者上课(升华→判断有代价) |
| "他暗暗下定决心,明天,一定要重新开始" | "他出门前把信带上了" | 决心宣言换成动作选择,让结果自己说话(宣言→动作落点) |
这个对比是这套工作流的全部追求:句子换了,事实没丢,情绪还在,但读者不再觉得背后是台机器。
怎么改
分两半。
模型做人味。十维叙事审计、十五层语言分析、功能路径诊断、三轮改写、三重审核,这些都是模型的判断。判断依赖语境:这个排比在这里有没有用,这个心理动词要不要换成动作,程序答不了。
程序守内容。三个工具,只做确定性的事:分布画像、内容忠实守卫、工件质量门禁。程序不判断像不像人,只核对数字还在不在、格子填没填。
程序为什么这么少?程序规则是固定规则,规则越多越僵化。把"逐项判断"写成正则,得到的是一台机械替换机,恰好是这套方法最反对的。
十条铁律
这些不是建议,是底线。违反任何一条,这一次作废重来。
- 禁止略读。每个工件逐格填,每格引用原文。不许用"已检查""无异常"填空。
- 禁止概括。不写"整体偏 AI 味"这种总评,要落到某一章、某一层、某一句话。
- 禁止打卡式。改写要逐条引用工件的某一行,复核要真的调 humanize_validate_artifact。
- 禁止"是/否"式判断。写不出原因,等于没判断。
- 禁止英文思考。思考、字段、标签、理由一律中文,原文术语除外。
- 禁止跳章。诊断有固定顺序,缺一章不准进改写。
- 禁止整体化判断。十五层一层层过,十维一维维过,不许合成一个判断。
- 禁止配额化。这是最重要的一条:把任何手法做成每章配额,配额就是新指纹。
- 禁止一次做完。一次一步,做完报"第 N 步完成,下一步第 N+1 步"。
十步
每一步只产出一个工件,过 humanize_validate_artifact 门禁才进下一步。一次做完等于偷工减料。
| 步 | 做什么 | 读 | 产出 |
|---|---|---|---|
| 0 | 接单卡:任务边界 + 内部基线 + 执行表字段 | §06.1/6.2、§11 | 接单卡 |
| 1 | 十维叙事设计,逐维审计(论证文本改走 §08) | §09、§08 | 工件 A |
| 2 | 功能路径图:八类路径逐形态 | §05 | 工件 B |
| 3 | 十五层语言分析:逐细分项 + 句式使用率,不压缩层级 | §04 | 工件 C |
| 4 | 认识与来源图 | §06.4 | 工件 D |
| 5 | 问题清单:合并 A/B/C/D | §06.6 | 问题清单 |
| 6 | 改写轮一:只改材料/叙事/论证 | 工件 A 到 D | 修改记录 |
| 7 | 改写轮二:只改信息焦点/照应/句法 | 工件 A 到 D | 修改记录 |
| 8 | 改写轮三:只改词汇/搭配/虚词 | 工件 A 到 D | 修改记录 |
| 9 | 复核 | §15/§17/§13/§18 | 复核报告 |
| 10 | 交付 | 无 | 改写稿 + 全部工件 |
三轮改写的顺序不能颠倒:先动材料和叙事,再动信息组织和句法,最后动词汇。顺序反了,改出来的是"看着自然、分布依旧"。
方法论
为什么这样设计、与其他同目标产品的区别、每一条论断背后的研究依据,先读 docs/WHY.md。方法正文在 references/,随包分发 19 章,每章回答一个问题,模型执行到哪一步读哪一章。
| 章 | 它回答什么 |
|---|---|
| 01 体系目标与边界 | 这件事同时追求五个目标,也有六件事承诺不了 |
| 02 人类作者感 | 什么让文本背后"有个人",而不是一台无位置的说明装置 |
| 03 复杂度模型 | 复杂度不等于更像人,每一种复杂度都要来自真实需求 |
| 04 十五层语言分析 | 从语素构词到篇章话语,十五层一层层过 |
| 05 功能路径诊断 | 表面不同的句子,底下可能是同一条功能路径 |
| 06 完整诊断流程 | 任务边界、内部基线、篇章任务图、认识来源图、修复尺度 |
| 07 改写决策与候选 | 十步决策顺序,候选要来自不同组织来源 |
| 08 文章类方法 | 论证文本专用:论证图、三段式、模板表达、专业文章保护 |
| 09 十维叙事审计 | 小说的十个维度,加三十项核心信号 |
| 10 三重审核与原理层自检 | 读者盲审、编辑盲审、最小差异对照、留出测试 |
| 11 执行表 | 五张可直接填写的表,强制逐格填 |
| 12 执行提示全文 | 可以直接交给模型的完整提示 |
| 13 禁止与回退 | 十二类禁止逐条讲清原理与误判;回退触发条件与操作规程 |
| 14 检测原理 | 七类检测信号,以及为什么表层换词绕不过它们 |
| 15 完成判据 | 十三条,全部满足才算完成 |
| 16 问题对照库 | 十六类常见问题的证据、误判和处理 |
| 17 复核清单 | 字词、句法、信息、段落、全文五级复核 |
| 18 实战迭代经验 | 章节任务四类轮换、七类高危模式、脚本核验清单 |
安装
一行命令,两种途径任选:
# npm 源(推荐)
dsh plugin --profile web add dsh-humanizer
# Git 源(从 GitHub 拉取,始终最新)
dsh plugin --profile web add "github:DEEP-IOS/dsh-humanizer"
装完重启 web。bundle 层栈在 boot 时合成,Node half 改动需要重启才生效。
使用
对模型说「用 humanizer 处理这段文本」。工作流常驻 system prompt,模型按十步执行,用 humanize_reference 读方法论章节。
| 工具 | 作用 |
|---|---|
humanize_profile(text) | 分布画像:全文与逐段的句长、短长句占比、连词密度、§18 特征字计数、内容锚点 |
humanize_guard(original, rewritten) | 内容忠实守卫:锚点保真 + 禁止条件扫描 |
humanize_validate_artifact(artifact, source) | 工件门禁:拒占位空话、空数组、假证据、短判断 |
humanize_reference(name) | 读取 references/ 章节全文或小节(如 04#4.7) |
命令行冒烟:
node scripts/guard-humanizer.mjs profile ./文本.md
node scripts/guard-humanizer.mjs guard ./原文.md ./改写稿.md
边界
不是 AI 检测器。不输出概率,不识别作者,不要求把文本提交给任何外部检测。不承诺任何检测器给出某个分数。目标只是让文本经得起读者和编辑的眼睛。
开发
pnpm test
确定性层(lib/guard.mjs、lib/reference.mjs)零依赖。测试用 Node 内置的 node:test。
命名
与 dsh-humanize(RLCR 编码工作流)不是同一个项目。本插件处理的是文本。
License
MIT