dsh-humanize:让推理模型交付的内容像人写的一样

前言

在复杂任务中,擅长工程推理的模型往往会在 prose 中堆砌机器式术语,给读者增加阅读负担。把大量风格与修辞约束直接塞进主提示词,会分散模型的推理注意力,拖慢任务执行。dsh-humanize 是 deepseek-harness 的一个插件,它把逻辑推理与文本润色分离:在写入时标记面向人的内容,由独立的审查模型按 PROSE.md 规则逐条标注,再在需要时合并修改。

插件定位与维护者

dsh-humanize 是 deepseek-harness 的一个插件,用于把推理模型的输出从“机器风格”改写为“像人写的一样”。由维护者 Lry722 在 GitHub 上维护。

工作原理

插件将逻辑推理与文本润色分离:
- 写入时标记:模型写入文件时声明 human_facing,仅面向人的写入触发审查。
- 单一风格契约:使用 PROSE.md 定义 prose 风格规范。
- 逐条标注:审查模型对照 PROSE.md 中的规则进行标注,并指向违规的表达。
- 延迟合并:审查在后台运行,主会话继续推进;用户在需要时合并标注。

安装与启用

从 GitHub 安装:

dsh plugin --profile web add github:Lry722/dsh-humanize

本地开发时,链接当前目录:

dsh plugin --profile web add link:/path/to/dsh-humanize

安装后需重启 dsh。

配置项

在插件列表中打开 dsh-humanize 并编辑配置。底部显示标注暂存目录与审查请求记录的路径,各路径旁有复制按钮。配置项说明如下:

  • reviewProvider 与 reviewModel:审查所用的模型,从主机模型目录中选择,默认使用会话所用的模型。
  • reviewReasoningEffort:审查模型的推理努力级别,从该模型支持的级别中选择,默认使用模型自身的默认值。
  • mergeProvider 与 mergeModel:合并子代理所用的模型,与审查模型有相同的控制项;合并子代理覆盖 /humanize、/humanize-loop 以及压缩触发的合并,默认使用会话所用的模型。两项需一起设置,仅设置其一则两项均跟随会话模型。
  • mergeReasoningEffort:合并子代理的推理努力级别,默认使用主会话的推理努力级别。
  • reviewConcurrency:并发审查的最大请求数,在写入审查、批量审查与重审查之间共享,最小 1,默认 3。
  • reviewRetries:失败后的重试次数,最小 0,最大 3,默认 1。
  • reviewIntervalSeconds:两次审查之间的最小时间间隔(从上次审查结束起算),最小 0,最大 3600,默认 60。设为 0 则不等待直接审查。
  • loopMaxRounds:循环合并的最大轮数,最小 1,最大 10,默认 3。
  • mergeOnCompaction:在上下文压缩结束时是否合并项目内所有暂存标注,默认 true。关闭时仅对 /humanize 或 /humanize-loop 执行合并。
  • storageDir:暂存标注的存储位置,留空则使用默认 ~/.dsh/humanize。

审查与合并模型部分各有测试按钮,可发送最小请求以确认 provider、model 与 reasoning effort 响应。合并模型测试按钮需要两项都设置。

审查请求记录存储在系统临时目录,具体路径在配置页面底部显示。无法解析的审查响应会在审查请求记录旁写入原始响应用于比对。

使用方法

在待审查的文件所在目录或其父目录中放置 PROSE.md。用户级规范放在 ~/.dsh/PROSE.md。规范按目录堆叠,作用域越窄优先级越高。

PROSE.md 的 front matter 可使用 .gitignore 语法声明覆盖范围:

---
include:
  - "*.md"
  - "docs/**/*.txt"
  - "!drafts/"
---

include 属于整个规范链;若任一层级声明,仅匹配的文件进入审查。若未声明,规范适用于所有文件。

PROSE.md 必须包含一级标题 # Rules。其下的编号行作为审查规则。其他一级标题(如定义、术语表)作为补充上下文原样传递给审查与合并。

# Rules

1. 写作要平实。
2. 避免在句中使用括号。

# Explanation

Abuse: xxx

仅 # Rules 下的编号行参与全局编号,其他编号保持原样。缺少 # Rules 标题的规范会以错误方式通过审查。

二进制文件(如图片、压缩包、字体、构建产物)通过采样开头跳过审查。批量审查会报告跳过的文件数。

模型写入文件时需声明 human_facing:面向人的内容传 true,纯代码或数据传 false。未声明则视为 false 并记录警告。

每次审查后,下一次写入审查默认等待 1 分钟。间隔内的写入会合并到下次审查。

审查仅关注本次写入变更的区域。同一文件的审查串行执行。来自不同会话或子代理的写入分别排队,队列按代理保留,不相互覆盖。合并运行时,发起合并的代理对该文件的审查被中止或丢弃,其他代理对同一目标文件的审查同样处理。批量审查与合并重审查跳过等待,立即执行。

标注暂存在 ~/.dsh/humanize/annotations/,路径与被审查文件对应。标注可手动编辑。暂存按规则分组,每个规则标题携带规则编号作为提示。暂存内容不包含文件名,下次审查按文本匹配规则。存储位置可在设置页面更改。

使用 /humanize <path> 合并指定文件或目录的标注,未指定则使用当前工作目录。合并在独立上下文中运行,完成后主会话收到摘要。合并后清除对应文件的暂存标注,并触发对这些文件的再次审查(重审查)。重审查产生的标注也暂存在原位置。合并结果出现在主会话摘要中。

适用场景与注意事项

  • 适合需要为复杂推理任务提供“像人写的一样” prose 的开发者与团队。
  • 插件以当前 dsh 进程的权限运行,安装前应检查源码与许可证。

总结

dsh-humanize 通过分离推理与润色、延迟合并标注,让推理模型专注于逻辑工作,同时让交付内容更易读。使用 PROSE.md 定义风格契约,由审查模型逐条标注,再按需合并。适合需要兼顾工程推理与可读 prose 的场景。

目录页

https://www.skillhub.cn/plugins/Lry722/dsh-humanize

GitHub

https://github.com/Lry722/dsh-humanize

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

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

Xiaoye