dsh-humanizer:生成前注入人味风格约束 + AI 味检测报告

前言

DeepSeek Harness(DSH)的插件化设计允许在模型推理流程中插入自定义逻辑。在构建智能体或进行模型调优时,模型输出往往带有过于刻板的“AI味”,例如高频使用“赋能”、“闭环”等空转词汇,或使用过于完美的排比结构。dsh-humanizer 插件提供了一套解决方案:在生成前通过 System Prompt 注入具体的写作约束,同时在生成后通过纯代码逻辑对文本进行“AI味”检测与打分。

插件简介

dsh-humanizer 是一个运行在 DSH 中的 Bundle 插件,由开发者 liuwenji007 维护。

它通过 dsh.bundle.patch 机制将风格注入逻辑集成到 DSH 的 Profile 中,并利用 dsh.profile.bundles 实现配置的层叠与复用。该插件不依赖外部 LLM 进行检测,而是通过本地正则匹配和统计逻辑完成,因此具备“零 token”消耗和“结果可复现”的特点。

核心功能

1. 生成前风格约束注入

当插件启用时,它会向模型的 System Prompt 中注入一段正向写作规则。这些规则旨在打破 AI 常见的模板化输出:
* 要求内容具体,避免空洞。
* 强调观点明确,不进行无意义的结论升华。
* 禁止使用 Emoji 装饰。
* 保持句子长短错落,避免机械的排比结构。

2. AI 味检测报告

插件提供了一个基于纯代码的检测工具。它通过分析文本中的特定模式,判断内容的“AI味”浓度。检测结果是确定性的,不涉及任何猜测或模糊判断。

3. 工具复用

除了在 DSH 上下文中自动生效,开发者也可以直接在 Node.js 环境中复用其核心检测逻辑。

安装与启用

这是一个 Bundle 插件,安装后会自动进入 Profile 的 Bundles 链路。

安装命令:

dsh plugin --profile <profile名> add link:/abs/path/to/dsh-humanizer

注意:npm 仓库中的 dsh-humanizer 包名已被其他作者占用(仅做写作润色)。本插件尚未发布到公共 npm,目前推荐通过上述本地或源码路径安装。发布后包名将使用作用域名 @liuwenji007/dsh-humanizer。

配置

在 Profile 的 cordis.patch.yml 中配置 dsh-humanizer,默认开启风格注入:

- id: dsh-humanizer
  config:
    enabled: true        # 是否注入人味风格 system prompt(默认 true)
    domain: copywriting  # 写作域:copywriting / general(默认 copywriting)
    voice: ''            # 可选:提供 2~3 段写作样本,用于「声音校准」
字段 类型 默认值 说明
enabled boolean true 设为 false 时仅禁用风格注入,detect_ai_flavor 工具仍可使用。
domain string copywriting 决定注入的定位语风格。
voice string '' 填入非空字符串时,会将样本挂入 Prompt,模仿特定写作节奏。

使用方式

1. 自动生效(风格注入)

当 enabled 为 true 时,每次模型生成前都会自动附带上述风格约束。这种方式是在生成阶段控制质量,而非生成后改写。

2. 手动检测(对话式)

在 DSH 会话中直接调用检测工具。对模型说:“帮我测测这段文字有没有 AI 味”。系统会返回类似以下的报告:

AI 味分数: 100/100 — 明显 AI 味(高密度模式命中)
命中模式: 6 条
  · 空转词汇 ×3 "赋能" "闭环"
  · Emoji 装饰 ×2 "🚀" "💡"
  · 总结腔 ×2 "总的来说" "未来可期"

3. 直接复用检测逻辑(代码级)

不通过 DSH 交互,直接在代码中引入检测逻辑:

import { detectAiFlavor } from 'dsh-humanizer/lib/patterns.js';

const r = detectAiFlavor('你的文本');
// 返回值示例:
// {
//   score: 85,
//   verdict: 'ai', // 'human' | 'mild' | 'ai'
//   hits: [
//     { name: '空转词汇', count: 3, samples: ['赋能', '抓手'] }
//   ]
// }

检测规则与判定逻辑

插件内置了 22 条可枚举规则(含 10 条中文和 12 条英文),包括:
* 空转词汇:如“赋能”、“闭环”、“抓手”。
* 空洞套话:如“值得注意的是”、“综上所述”。
* 拔高措辞:如“意义深远”、“pivotal”。
* 时代背景腔、否定平行结构、导览腔(“让我们/Let’s dive in”)、总结腔、排比三连、Emoji 装饰、公文腔等。

分数计算与判定:
* 每条规则有权重(1–3),累加 count × weight 得到原始分。
* 按文本长度进行密度归一化到 0–100 分。
* 80 字下限:少于 80 字的文本按 80 字计密度,避免单次命中直接导致分数爆表。
* 判定阈值:
* ai:分数 ≥40,或 命中≥4 条且 ≥25。
* mild:分数 ≥15,或 命中≥2 条。
* human:其余情况。

边界与局限

插件基于字面匹配,本质是一把“尺子”而非“裁判”,使用时需注意以下局限:

  1. 引用与用词混淆:分不清用户是在“使用”这些词,还是在“引用/举例”它们。
  2. 正则无法完全区分:无法区分列举/排比结构是自然的修辞还是套话,存在一定程度的误报(例如英文中的三连形容词)。
  3. 密度导向:分数对文本密度敏感。虽然已加入 80 字下限缓解,但在超短文本中,单项命中仍可能导致分数偏高。

建议将其作为辅助参考,而非绝对标准。

总结

dsh-humanizer 将“风格”交给 System Prompt(生成前约束),将“判断”交给代码(检测工具)。它适用于需要控制输出语调、进行 AI 味度分析或构建特定人设的 DSH 用户。安装前建议检查源码与许可证,确保符合本地环境要求。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜