中文EN

dsh-om-messiah

fun已测通过npmMIT

发送前把提示词改写成机械神教祷文,再让你选择发送祷文还是原文。

下载量 / Downloads
1,111
依赖体积 / node_modules
0.44 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

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-step waterfall —— 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-step waterfall —— 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

链接

GitHub · Homepage · npm

同类插件