前言¶
用 DSH 跑任务的人多半遇到过这类回复:结论埋在第一段之后,要看细节得翻好几屏;引用只给一个路径或行号,不贴原文;EXP-7、DEV-1K 这类代号凭空出现,读到结尾才知道是什么;再往下翻,回复里出现”上述”“前面提到”,离开当前会话就断了上下文。
这些不是模型能力问题,是回复风格没有被约束。dsh-plain-talk 就是解决这个问题的插件:在输入框加一个开关,打开后模型按固定规则组织回复——先给结论、控制篇幅、自包含、引用贴原文、代号首次出现先解释。下面介绍它的来源、安装和用法。
这是什么¶
dsh-plain-talk(中文名”说人话”)是 DSH 的回复优化插件,维护者为 lizilong1993,属于模型推理分类,在社区目录中标记为 1 stars。它不改模型,只改写宿主端注入的系统提示词规则,并在浏览器侧重绘输入框控件,属于纯本地的提示词约束方案。许可证为 MIT,npm 版本 0.1.10。
核心功能¶
插件开启后,对回复施加以下几条硬性规则,全部写在系统提示词里:
- 结论先行:第一行直接给答案或判定,不复述问题,不写”我来看看”。
- 默认短:回复不超过 12 行 / 300 字,用户明确要求展开时才放开深度。
- 自包含:不使用”上述 / 前面 / 上一轮”这类回指词;内部代号(如
EXP-7、DEV-1K、run-3)第一次出现写成代号(一句话说明)的形式。 - 引用可读:给出
文件:行号的同时,把对应几行原文贴出来。 - 词汇清单:用户说过的词、项目名、常见术语默认视为已知;”调研 X”的第一轮仍会解释 X,回复交付后才记入清单。内部代号不进清单,每次按未知处理。
此外插件内置一个自检工具 plain_talk_check,接收一条草稿并返回问题清单,规则区段要求模型在完成类回复或超过 12 行的回复发送前调用它。需要说明的是,这是提示词约束,plain_talk_check 只提醒、不拦截发送。
安装与启用¶
安装命令来自插件 README 原文,三种来源任选:
# npm
dsh plugin --profile desktop add dsh-plain-talk
# GitHub
dsh plugin --profile desktop add github:lizilong1993/dsh-plain-talk
# 本地目录
dsh plugin --profile desktop add ./dsh-plain-talk
装完需要重启 DSH。启用方式是:
- 打开任意会话,输入框权限选择器右侧会多出一个笑脸气泡图标。
- 默认关闭(微笑版);点一下变成带三道声波的张嘴笑脸,表示当前会话已开启,只影响当前会话。
- 开关状态写入
$DSH_HOME/plain-talk.json,重启后保持。 - 想让新会话默认开启,在启动环境里设置
PLAIN_TALK_DEFAULT=on。
插件只有一个配置项,即环境变量 PLAIN_TALK_DEFAULT(on / off,默认 off)。
词汇清单¶
词表是 JSON sidecar,路径为 $DSH_HOME/plain-talk-vocab.json,跨会话共享,按用户而不是按项目隔离。
| 类别 | 含义 | 例子 |
|---|---|---|
| 常识词汇 | 内置,不解释 | arXiv、DOI、API、GPU |
| 专业词汇 | 用户用过的领域词 | 扩散模型、AUROC |
| 项目 / 产品名 | 仓库、产品、工作区名 | AcmeService_V2、DataHub_V3 |
| 待归类 | 已记录、未分类 | 其他识别到的词 |
内部代号不进入词表。”调研 X”分两步:第一轮照常解释,回复交付后才写入词表;常识词和内部代号不受影响。维护会话里可用 plain_talk_vocab 工具,支持 list / add / remove / classify,也可以直接改 JSON。
工作原理¶
插件分为宿主端和浏览器端两部分:
- 宿主端
dsh/index.js注册一个系统提示词段落(标识plain-talk,order 55),只有当前会话开关打开时才返回规则正文。 - 浏览器端
lib/client.js注册进conversation.input.left,渲染 18×18 的笑脸按钮。 - 开关状态经 loopback 路由
/plain-talk/state读写,仅监听127.0.0.1/::1,body 不超过 8 KB。 - 状态与词表都是 JSON sidecar,原子写,不写 session 事件。
数据与权限¶
插件只写 $DSH_HOME/plain-talk.json 和 $DSH_HOME/plain-talk-vocab.json,不联网、不上传、不读取凭据;状态文件损坏时按”无记录”处理。注意插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
适用场景与注意¶
适合需要可读、可独立转发、可核对的回复的场景,尤其是涉及实验结论、上线检查、代码变更说明这类要贴给相关方看的任务。不适合追求最大信息密度、希望模型自由组织长文的场景,因为规则会压缩篇幅。
README 给出的测试环境是:DSH desktop profile、headless 运行、模型 command code/deepseek-v4.1-flash(high),日期 2026-11-04,同一提示词、同一工作区,只切换开关。README 中的输出对比显示,开启后结论更靠前、引用贴了原文、代号给出解释,但篇幅和 token 并非单向下降:例如 B1”为什么模型会忘事”字数和 token 都下降,而 B2”merge 与 rebase”字数上升约 5.4%、token 上升约 144%。README 也说明 token 统计覆盖整轮所有模型步(含思考与工具调用),因此与最终回复字数不必然同向,开启时每个请求约多 590 input token。
使用上还有三点:
- 按钮位置依赖
conversation.input.left,宿主改版后可能移到其它左侧控件旁,按钮可能消失。 - 词表按用户共享,不按项目隔离,跨项目词汇会混在一起。
- 规则是提示词约束,模型不遵守时没有强制拦截。
小结¶
dsh-plain-talk 不做复杂的代理编排,只把”结论先行、默认简短、自包含、引用贴原文、代号首现解释”这几条规则固化成系统提示词,再加一个会话级开关和本地词表。它的价值在于把可读性变成默认行为,而不牺牲用户按需展开的能力。插件源码与安装说明见 GitHub 仓库 lizilong1993/dsh-plain-talk,目录页在 https://www.skillhub.cn/plugins/lizilong1993/dsh-plain-talk。
需要说明的是,社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,上述信息以插件 README 与目录页为准。