前言¶
在 DSH(DeepSeek Harness)Web 里向模型提复杂需求时,若背景、约束、输出格式写不全,首轮回答往往要来回补问。社区里常见做法是走 skill,让模型调用 ask_user_question 逐项弹表——功能完整,但会多一次模型往返。若你更习惯自己在输入框里一次性填好再发送,就需要一条不经过模型的本地路径。下面介绍客户端插件 dsh-ask-template(维护者 maboloshi):在输入框敲裸 /ask 并回车,浏览器把固定五段空白模板写进草稿,全程 0 次模型调用;填完再按回车,与普通用户消息无异。
这是什么¶
dsh-ask-template 是 DSH 客户端类插件(当前 GitHub 星标 0),版本 0.1.0,MIT 许可。仓库同时交付两半能力,共用同一套五段字段:
| 半 | 载体 | 手势 | 谁在弹表 | 模型调用 |
|---|---|---|---|---|
| 客户端命令(本插件主体) | DSH 客户端插件 | 裸 /ask + 回车 |
浏览器本地写草稿 | 0 次 |
配套 skill ask-user |
技能文件 | /ask-user 或 / 菜单 |
模型调 ask_user_question |
有 |
想省模型往返、自己打字填——用 /ask;想让 agent 在对话里逐项问、点选即可——用 /ask-user(skill,需单独放置 SKILL.md)。
- 目录页:https://www.skillhub.cn/plugins/maboloshi/dsh-ask-template
- 源码:https://github.com/maboloshi/dsh-ask-template
DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
裸 /ask 的工作方式¶
敲 /ask 且后面没有空格参数时,全程不碰模型:
/命令源在裸 token/ask上命中本插件的action型命令贡献;- 消费
/ask词,执行纯客户端回调,不提交任何消息; - 回调通过
ctx.sessions.scope(sessionId)取会话作用域,再用ctx.conversation.input.for(actx).setDraft(模板)把空白模板写入输入框草稿; - 你填完按回车——此时才是普通用户消息,模型只看到填好的五段表。
/ask 参数…(带空格)不命中命令,会照旧当普通文本发出,skill 那条路仍可用。
五段模板¶
【背景情况】
【核心问题】
【约束与要求】
【输出格式】
未提供
【已有尝试】
未提供
必填三段(背景、核心问题、约束与要求)留空等你填;选填两段预填 未提供,不动即表示该项最终取值为「未提供」,无需删改。
实现侧要点(维护者参考)¶
- 浏览器半为手写 CJS 闭包 bundle,无 React、无构建步骤、无运行时依赖,改完刷新页面即生效。
- 回车命中
action时,提交机器记为handled且不产生 effect,草稿不会被「提交后清空」逻辑吃掉。
安装与启用¶
插件以当前 dsh 进程权限运行;安装前请自行查看仓库源码与 LICENSE(MIT)。
1. 客户端命令(插件)¶
本地 link 安装(README 原文):
dsh plugin --profile web add link:<本仓库路径>
该命令经 pnpm 安装,并自动把 dsh-ask-template 追加进 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles,装完刷新 DSH Web 页面。
发布后也可从 npm 源安装:
dsh plugin --profile web add dsh-ask-template
2. 配套 skill ask-user(可选)¶
若需要模型驱动的弹表路径,将 README 中的 front matter 与说明存为:
~/.agents/skills/ask-user/SKILL.md
(仓库内路径约定为 skills/ask-user/SKILL.md。)skill 原曾叫 ask,改名是为了把裸 /ask 手势让给客户端命令,避免 / 菜单出现两行同名。
卸载¶
dsh plugin --profile web remove dsh-ask-template
skill 侧删除 skills/ask-user/ 目录即可。
典型用法¶
- 在 DSH Web 会话输入框输入
/ask,不要在/ask后加空格或参数,直接回车。 - 输入框出现五段模板草稿;从「【背景情况】」起填写必填段,按需改选填段。
- 确认内容后回车发送,模型按你填好的结构化信息作答。
若输入框里已有文字,执行 /ask 会整段替换为模板,替换前会有提示,旧草稿不保留。
适用场景与注意¶
适合谁
- 经常提「带背景 + 约束 + 输出格式」类问题,希望首轮就信息完整;
- 希望减少一次「模型弹表」往返,更愿意在本地草稿里编辑后再发。
已知限制(README 原文)
setDraft后光标停在草稿末尾(「【已有尝试】」的未提供之后),要填第一段需自己点上去;契约暂无「带光标位置写草稿」入口。- 命令与 skill 共用同一套五段字段,改字段需两边一起改。
安全提醒
客户端插件在浏览器侧执行回调并改写输入草稿;安装前请从 GitHub 核对 lib/client.js 等行为是否符合预期。
结尾¶
dsh-ask-template 把结构化填表从「模型弹表」拆出一条 零模型调用 的 /ask 路径,与可选 skill ask-user 字段一致,按习惯二选一即可。