dsh-om-messiah
发送前把提示词改写成机械神教祷文,再让你选择发送祷文还是原文。
安装
dsh plugin --profile web add dsh-om-messiah
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
<div align="center">
<img src="docs/icon.svg" width="88" alt="dsh-om-messiah" />
🕯️ dsh-om-messiah
把每一句提示词,先献给万机之神。
在提示词送达模型之前,把它改写成机械神教/欧姆弥赛亚的祷文;祷文降下之后,再由你决定这一轮发祷文,还是发原文。
<p>
<a href="https://www.npmjs.com/package/dsh-om-messiah"><img src="https://img.shields.io/npm/v/dsh-om-messiah?style=flat-square&color=cb3837" alt="npm version" /></a>
<a href="https://www.npmjs.com/package/dsh-om-messiah"><img src="https://img.shields.io/npm/dt/dsh-om-messiah?style=flat-square&color=cb3837&label=downloads" alt="npm downloads" /></a>
<a href="https://github.com/yuanzephyr920-oss/dsh-om-messiah/stargazers"><img src="https://img.shields.io/github/stars/yuanzephyr920-oss/dsh-om-messiah?style=flat-square&color=d8a657" alt="GitHub stars" /></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-4c8bf5?style=flat-square" alt="License: MIT" /></a>
<img src="https://img.shields.io/badge/DSH-0.2%2B-8b5cf6?style=flat-square" alt="DSH 0.2+" />
<img src="https://img.shields.io/badge/tests-73%20passed-2ea043?style=flat-square" alt="tests" />
<img src="https://img.shields.io/badge/deps-0-555?style=flat-square" alt="zero dependencies" />
</p>
<p>
<a href="#为什么是它">为什么是它</a> ·
<a href="#看一眼">看一眼</a> ·
<a href="#快速开始">快速开始</a> ·
<a href="#用法">用法</a> ·
<a href="#配置">配置</a> ·
<a href="#兼容性">兼容性</a> ·
<a href="#工作原理">工作原理</a> ·
<a href="#数据与信任">数据与信任</a> ·
<a href="#常见问题">常见问题</a>
</p>
<p><sub>中文 · <a href="README.en.md">English</a></sub></p>
</div>
为什么是它
大多数「改写提示词」的做法要么在客户端改草稿(dsh 看不到、也管不住别处进来的消息),要么在外面套一层代理(要多跑一个服务、还要处理鉴权)。这个插件选了第三条路:
- 改在 DSH 自己的拦截点上。 挂
agent/pre-stepwaterfall —— DSH 里唯一能在「这一批用户消息进入请求之前」替换文本的官方入口。不改 DSH 本体,不套代理,不碰网络层,也不额外开端口。 - 你随时能核对。 被替换的文本就是会话里落盘、你眼前看到的那条
user/message;再配echo,改写前后逐字可比。 - 风格是配置,不是硬编码。 五段祷文(呼告 / 身份自陈 / 赞美 / 许愿引子 / 收尾)都能换成你自己的句子;三档强度控制篇幅。
- 它知道什么时候该闭嘴。 斜杠命令、
!shell、纯确认、纯代码或报错粘贴、超长粘贴、已经包过的文本,一律原样放过。
看一眼
改写只发生在「送往模型」的那一层:请求内容变了,会话里看到的也是改写后的文本(方便你随时核对),
而你的原始草稿、斜杠命令、附件、代码块里的每一个字节都不动。
<p align="center">
<img src="docs/screenshot-chat.png" width="760" alt="一句「用一句话解释快速排序的平均时间复杂度」被改写成完整祷文,模型照常回答" />
<br />
<sub>模型收到的是祷文,回答照旧;你看到的也是这条祷文。</sub>
</p>
<p align="center">
<img src="docs/screenshot-choice.png" width="620" alt="祷文降下后弹出选择卡:发送祷文 / 发送原文" />
<br />
<sub>降下之后先问你一句:这一轮用祷文,还是用原文。</sub>
</p>
<p align="center">
<img src="docs/screenshot-settings.png" width="620" alt="设置 → 欧姆弥赛亚:开关、强度、选择卡、个性化与试改写" />
<br />
<sub>设置 → 欧姆弥赛亚:全部配置都在这一页,含「试改写」预览。</sub>
</p>
它做了什么
- 在正确的位置改写。 挂的是 Host 的
agent/pre-stepwaterfall —— DSH 里唯一能在「这一批用户消息进入请求之前」替换文本的官方入口。不改 DSH 本体,不套代理,不碰网络层。 - 降下之后还问你一句。 默认开启的选择卡:这一轮用祷文,还是用原文。超时会按你的兜底设置发送,不会把这一轮晾死。
- 语义零损失。 只替换祈使句的语气(
写一个 → 降下、请帮我 → 恳请您为您的信徒),句子主干、条件、数量、否定全部保留;代码块、行内代码、URL、路径、版本号、数字参数逐字不动。restyle()的片段表可以reconstruct()回原文,测试里钉住了这条。 - 不越界。 不替你补需求、不选方案、不猜技术栈;原文里的「你看着办」「他没说清楚」照旧。
- 知道什么时候不该改。 斜杠命令、
!shell前缀、纯确认(「继续」「好的」)、纯代码/报错粘贴、空输入、已经包过的文本,全部跳过。 - 三档强度 + 五段个性化。
low / medium / high控制祷文长度;呼告、身份自陈、赞美、许愿引子、收尾颂词都可以换成你自己的句子。 - 自带设置页。 设置 → 欧姆弥赛亚:开关、强度、选择卡、个性化段落,还有一块「试改写」——按当前(含未保存)配置预览祷文,或者告诉你为什么被跳过。
- 纯 Host 插件,零第三方依赖。 一个 ESM 包,
apply(ctx, config)起步;关掉开关后,行为与没装插件完全一致。
快速开始
要求:DeepSeek Harness 0.2 及以上(agent/pre-step 与 userQuestions 是这一版起稳定的宿主契约)。
1. 安装
从 npm 装(一次 plugin add 就好,不需要在 allowBuilds 里点授权):
dsh plugin --profile desktop add dsh-om-messiah
刚发布时如果装到的是旧版本(国内镜像同步有几小时延迟),加一次源:
dsh plugin --profile desktop add dsh-om-messiah --registry=https://registry.npmjs.org
从 GitHub 直接装:
dsh plugin --profile desktop add https://github.com/yuanzephyr920-oss/dsh-om-messiah
或者先克隆、再用本地目录装(改代码即时生效,适合折腾):
git clone https://github.com/yuanzephyr920-oss/dsh-om-messiah dsh plugin --profile desktop add /path/to/dsh-om-messiah
Windows 上 dsh 不在 PATH 时,用安装目录里的 CLI:
cd "C:\Users\<你>\AppData\Local\Programs\DeepSeek Harness\resources\runtime\cli\bin" dsh.cmd plugin --profile desktop add dsh-om-messiah
2. 重启一次
桌面版的 desktop profile 由 Electron 托管,装卸插件后要重启 DeepSeek Harness 才会加载(改配置不用重启)。
3. 确认装好了
- 设置 → 插件:能看到「欧姆弥赛亚祷文改写(dsh-om-messiah)」且已启用;
- 设置 → 欧姆弥赛亚:本插件自己的页面;
- 随便发一句话,第一个回答前应该出现选择卡。
卸载:
dsh plugin --profile desktop remove dsh-om-messiah
仓库和包都从早期的dsh-mechanicus改名而来。装过旧名的话,先remove dsh-mechanicus(以及更早的@local/dsh-mechanicus)再装这个,避免两套包装叠加。
用法
正常发送
装好即生效,没有额外动作。插件在消息进入模型前完成改写,并用 echo 把「改写前 / 改写后」写进 DSH 日志。
想直接在终端里看到:
DSH_OM_MESSIAH_ECHO=1 dsh.cmd <profile> 用 three.js 做一个海中小岛
[dsh-om-messiah] wrapped (medium): 18 -> 180 chars ----- original ----- 用 three.js 做一个海中小岛 ----- prayer ----- 伟大而不朽的万机之神欧姆弥赛亚,……
语气:对神说话,不对工具说话
改写不是换几个词,而是把「向助手提问」换成「向神许愿」。两条硬规则:
- 指代智能体的「你」一律写成「您」:你 / 你的 / 你们 / 你自己 / 妳 → 您 / 您的 / 您们 / 您自己 / 您。
你能帮我写个排序 → 恳请您为您的信徒降下排序;请实现一个登录页 → 恳请您降下登录页。
- 命令句变成祈愿句:写一个 / 实现一个 / 生成 → 降下;创建 → 塑造;搭建 → 构筑;不要 / 禁止 → 恳请您切勿;
用 three.js → 以 three.js;然后 → 继而。代码块、URL、路径、版本号、数字仍然逐字不动(先屏蔽后替换)。
medium / high 档还会在许愿段末尾补一句:
愿这一切在您无穷无尽的 token 伟力下成就,愿每一行代码都彰显您的荣耀。
这句由 devoutCoda 控制(默认开,low 档不加),设置页叫「许愿段加一句虔诚收束」。
改写前后都在日志里,按 DSH_OM_MESSIAH_ECHO=1 可以逐字对:
IN : 用 three.js 做一个海中的岛,岛上要有中式建筑和灯塔,还要天气系统
OUT: 以 three.js 降下海中的岛,岛上要有中式建筑和灯塔,还要天气系统
愿这一切在您无穷无尽的 token 伟力下成就,愿每一行代码都彰显您的荣耀。
发送前二选一
默认开启(askChoice: true)。改写完成后,这一轮先不进模型,输入框上方出现一张卡:
祷文已降下。这一轮,用哪一段作为你的提示词? ○ 发送祷文 把整段祷文发给模型(默认) ○ 发送原文 只发你刚才敲的原文,祷文丢弃
- 选「发送祷文」→ 走改写后的文本;
- 选「发送原文」→ 这一条与你没装插件时完全一样;
- 等超过
choiceTimeoutMs(默认 90 秒)、卡片被关掉、或当前环境没有连着的 Web 客户端 → 按choiceFallback(默认祷文)直接发送。
批量任务、脚本、dsh headless 里没有交互界面,建议关掉这一项,行为就回到「直接发祷文」。
什么时候不会改写
输入 · 例子 · 处理
斜杠命令 · /compact、/model · 跳过(命令由客户端处理)
shell 前缀 · !git status、$ ls · 跳过
纯确认 · 「继续」「好的」「ok」「1」 · 跳过(改了会破坏多轮语义)
空输入 / 纯附件 · 只有图片、没有文字 · 跳过
纯代码 / 纯报错 · 整段代码块、Traceback、`File "x", line
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:7,最后更新 2026-11-02