dsh-ask-template:用 /ask 零模型调用写入五段结构化提问模板

前言

在 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)。

DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

裸 /ask 的工作方式

敲 /ask 且后面没有空格参数时,全程不碰模型:

  1. / 命令源在裸 token /ask 上命中本插件的 action 型命令贡献;
  2. 消费 /ask 词,执行纯客户端回调,不提交任何消息;
  3. 回调通过 ctx.sessions.scope(sessionId) 取会话作用域,再用 ctx.conversation.input.for(actx).setDraft(模板) 把空白模板写入输入框草稿;
  4. 你填完按回车——此时才是普通用户消息,模型只看到填好的五段表。

/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/ 目录即可。

典型用法

  1. 在 DSH Web 会话输入框输入 /ask,不要在 /ask 后加空格或参数,直接回车。
  2. 输入框出现五段模板草稿;从「【背景情况】」起填写必填段,按需改选填段。
  3. 确认内容后回车发送,模型按你填好的结构化信息作答。

若输入框里已有文字,执行 /ask 会整段替换为模板,替换前会有提示,旧草稿不保留。

适用场景与注意

适合谁

  • 经常提「带背景 + 约束 + 输出格式」类问题,希望首轮就信息完整;
  • 希望减少一次「模型弹表」往返,更愿意在本地草稿里编辑后再发。

已知限制(README 原文)

  • setDraft 后光标停在草稿末尾(「【已有尝试】」的 未提供 之后),要填第一段需自己点上去;契约暂无「带光标位置写草稿」入口。
  • 命令与 skill 共用同一套五段字段,改字段需两边一起改。

安全提醒

客户端插件在浏览器侧执行回调并改写输入草稿;安装前请从 GitHub 核对 lib/client.js 等行为是否符合预期。

结尾

dsh-ask-template 把结构化填表从「模型弹表」拆出一条 零模型调用 的 /ask 路径,与可选 skill ask-user 字段一致,按习惯二选一即可。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye