dsh-ottosmother:用私密词表让模型读懂你的「暗语」

前言

在 DeepSeek Harness(DSH)里和模型对话时,有些说法你希望固定成「圈内含义」:你说「滚木」其实想表达「没有」,说「棍母」想表达「不存在」。如果只靠每次在消息里解释,既啰嗦又容易漏;如果把整段规则写进自定义 system prompt,词表多了以后维护也麻烦。

下面介绍社区插件 dsh-ottosmother(维护者 hj9178)。它把词表放进 YAML,通过 一个 system prompt 段落 告诉模型如何读、如何写,并提供图形设置页管理开关和词表文件,不必手改 profile 里的长文本。

这是什么

dsh-ottosmother 是 DSH 的 Cordis 插件,分类上属于模型推理相关能力:在组装 system prompt 时注入名为「私密词表」的段落,内含词条与通用规则。插件 不改用户输入、不包装模型输出、不注册消息钩子,只做提示词注入。

词表与代码分离:包内自带分类词表(glossaries/ 下如 moba、fps、comments、ai、dev、private),个人词表默认放在 ~/.dsh/ottosmother/(设置页可创建并打开目录)。许可证为 MIT。

核心功能

词表格式与热更新

每个词表是一个 YAML 文件,结构如下:

title: 我的词表            # 提示词里的分组标题
description: 说明           # 设置页里显示的说明
terms:
  - word: 滚木
    meaning: 没有
  - word: 棍母
    meaning: 不存在

根节点直接是 { word, meaning } 数组的写法也可被接受。文件 mtime/size 变化后,下一次组装 prompt 时会重新读取,改完 YAML 后下一轮对话即可生效。

注入到模型侧的文本包含词表行与通用规则:按含义理解这些词;需要表达对应含义时,用词表里的词把整句组织得自然,而不是机械替换单个 token;代码、命令、路径、URL、报错原文应保持原样。README 未写死例句,具体语境下的理解交给模型。

设置页

在 harness 带 Web 界面的 profile 中,路径为 设置 → dsh-ottosmother(settings.section 槽位)。页面上可以:

  1. 切换总开关与提醒强度:quiet / normal / strong;
  2. 为每个已加载的词表文件单独开关(关闭的文件仍列出,但不注入);
  3. 查看个人词表目录与包内目录,并用「打开文件夹」在系统文件管理器中定位;
  4. 刷新清单,查看无法读取或 YAML 损坏的警告。

配置通过 configForms 写入,在支持 volatile 配置的 host(schemastery ≥ 3.18.3)上改完即生效,无需重载插件。设置页依赖两条本地 exact 路由(仅 loopback、同源校验,跨站 403,且不通过路由写入词表内容):

路由 方法 用途
/dsh-ottosmother/catalog GET 文件清单、词条数、开关、目录、警告等 JSON 快照
/dsh-ottosmother/reveal POST 创建并在文件管理器中打开词表目录

在 harness 里如何挂上

扩展点 作用
systemPrompt.section 注入段落 dsh-ottosmother/glossary(order 50)
settings.section 渲染上述设置页
webServer 提供 catalog / reveal 路由

插件关闭或词表为空时,该段落返回空字符串,等价于不注入。某个 YAML 损坏时只记一次日志,不会让会话崩溃。无头 profile 仍可获得 prompt 段落,但没有设置页。

安装与启用

将 <profile> 换成你实际使用的 profile 名。安装后需 重启 harness。

从插件名安装:

dsh plugin --profile <profile> add dsh-ottosmother

或从 Release / GitHub 安装(README 示例含 v0.6.0 的 tgz 地址):

dsh plugin --profile <profile> add https://github.com/hj9178/dsh-ottosmother/releases/download/v0.6.0/dsh-ottosmother-0.6.0.tgz
dsh plugin --profile <profile> add github:hj9178/dsh-ottosmother

package.json 当前版本为 0.6.1,运行时要求 Node ≥ 22.19。

典型用法

1、用设置页管理词表

打开 设置 → dsh-ottosmother,按需开启内置分类词表,或在 ~/.dsh/ottosmother/ 下新建 YAML,点刷新后勾选启用。提醒强度可先设为 normal,若希望模型更主动用词表表达,再试 strong。

2、在 profile 里写死配置(可选)

与设置页相同的字段可写在 profile 的 cordis.patch.yml 中,例如:

- insert:
    - id: dsh-ottosmother
      name: 'dsh-ottosmother'
      inject: [systemPrompt]
      config:
        enabled: true
        reminder: normal
        disabledGlossaries: []
        glossaryDirs: []
        userDir: ''
        terms: []

字段含义(与 README 一致):

  • enabled:总开关;
  • reminder:quiet 仅词表加一行说明;normal 说明读与写;strong 明确要求主动使用词表词;
  • disabledGlossaries:关闭的词表 id,如 builtin:moba.yaml、user:mine.yaml;
  • glossaryDirs:额外扫描 .yaml/.yml 的目录;
  • userDir:个人词表目录,空则默认 ~/.dsh/ottosmother;
  • terms:内联词条,在文件词表之后合并(重复项丢弃)。

3、对话时的预期行为

你使用词表中的「暗语」时,模型应按含义理解;它自己表达「没有 / 不存在」等含义时,应尽量用词表词组织句子。README 也写明:是否真的输出「滚木 / 棍母」由模型决定,仍可能直接说「没有」,或在明确要求下改写法;规则只是请求保留代码等原文,并非程序级拦截。

适用场景与注意

适合需要在 DSH 里维持一套稳定「私域用语」、又不想每次手写长 system prompt 的开发者。包内分类词表适合游戏、评论、开发等场景的起步;敏感或团队词表建议放在个人目录,用 disabledGlossaries 控制暴露范围。

安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。插件以 当前 dsh 进程权限 运行,会读取你配置目录下的 YAML 并注入到 system prompt;同一 harness 内其他 LLM 调用(如标题生成)也会收到该段落。社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,安装来源以你信任的渠道为准。

结尾

dsh-ottosmother 用 YAML 词表 + 单段 system prompt,把「读暗语、写暗语」的规则固化进 DSH,并用设置页管理开关与文件。若你正在 harness 里打磨固定术语或圈内说法,可以从安装命令装好插件,在 ~/.dsh/ottosmother/ 放一份词表试一轮对话。

  • 目录页:https://www.skillhub.cn/plugins/hj9178/dsh-ottosmother
  • GitHub:https://github.com/hj9178/dsh-ottosmother
羽毛球分组比赛记分
小程序二维码

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

小夜