前言¶
在 DeepSeek Harness(DSH)里做 Agent 或日常对话时,经常会碰到同一句提示词:措辞几乎不变,只有地点、日期、文件名等几个字段在变。每次手打整句,容易打错、容易跑偏,还要去会话列表里翻上次的结果。社区插件 dsh-skillcard(维护者 Thegongyx,分类:工作流)把这类句子冻成模板,用 ${变量} 标出可填空位;选卡片、填变量、执行后,答案在卡片侧就地显示,并保留执行历史。下面介绍它是什么、能做什么,以及如何安装与使用。
这是什么¶
dsh-skillcard 是面向 DeepSeek Harness 的 npm 插件包,简介为:Skill cards for DeepSeek Harness — turn recurring prompts into fill-in cards, run them and get the answer back。中文 README 概括为:把「每天都要重打一遍的那句话」变成一张卡片,填两个空,点执行,答案直接回来。
模板里会变的部分写成 ${变量}(${名称} 与 {{名称}} 均支持),其余措辞固定,同一任务每次提问句式一致。若卡片配置了 skill 字段,会以 /技能名 手势注入,由宿主按技能加载路径处理,与手打 /weather 一类技能名一致。
核心功能¶
措辞稳定与少打字¶
模板冻结固定表述,仅变量变化,减少「越问越跑偏」。侧栏底部 ⚡ 技能卡片 浮层提供卡片选择(含搜索、可见的 /技能名)、变量输入、预览、执行目标与结果;填完即可执行,无需每次重打长句。
三处界面、分工明确¶
- 侧栏 → 技能卡片:管理目录,新建 / 编辑 / 删除,支持 AI 生成与搜索。
- 侧栏 → ⚡(底部):使用流程为选卡 → 填空 → 执行 → 看答案 → 查历史。
- 对话输入框:照常使用;卡片只替你组织话术,不占用输入框。
侧栏面板详情里可选 在浮层里执行,浮层会带着该卡片打开。
执行与会话¶
每次执行会新建一条会话,互不共享上下文。可配置目标包括工作区、模式(Agent preset)、提供商与模型;默认值分别为:最近会话所在工作区、普通/标准 preset(无则退回部署默认)、模型目录默认项。选定 provider/model 后,首轮前通过 session/selectModel 钉在该会话上;会话命名为「卡片 · <标题>」,可点「打开会话」查看完整轨迹。结果通过 session/wait 轮询取回纯文本,浮层内展示(不做 Markdown 渲染);停止、超时、待确认等状态有明确说明。
技能与 Agent 工具¶
卡片 JSON 可含 skill 字段(例如 weather),执行时走宿主 agent/pre-step 与 /name 手势扫描,与手动触发技能一致。
插件向 Agent 注册 skillcard 工具,支持 list / get / create / update / delete。可在对话中要求把自然语言句子收成卡片,由 Agent 抽取变量并保存。
本地数据与配置¶
卡片与历史写在本地,由 Host 独占写入:
| 文件 | 内容 |
|---|---|
<DSH_HOME>/skillcard/cards.json |
卡片库 |
<DSH_HOME>/skillcard/runs.json |
执行历史(最近 300 条;删卡片会连带删对应历史) |
写入采用临时文件加 rename 原子落盘;解析失败会将坏文件改名为 .corrupt-<时间戳> 再报错。
cordis.patch.yml 中可配置:
- id: dsh-skillcard
config:
defaultExpanded: true # 目录默认展开
showSidebarEntry: true # 显示侧栏底部 ⚡ 入口
安装与启用¶
官方 README 给出的安装方式为:
# 方式一:npm
dsh plugin --profile web add dsh-skillcard
# 方式二:本地目录 / tarball
dsh plugin --profile web add ./dsh-skillcard-0.3.0.tgz
package.json 标明运行环境为 Node >=20、DSH >=0.2.2-rc.1;许可证 MIT。安装后需重启 profile 并刷新页面。
插件以当前 DSH 进程权限运行,安装前宜自行查看 GitHub 仓库 源码与 LICENSE,确认符合你的环境与合规要求。DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。
典型用法¶
卡片结构示例¶
README 中的查天气卡片形如:
{
"id": "sc_lqk3j2a1b2c",
"title": "查天气",
"description": "查某地某天的天气",
"template": "使用天气技能帮我查看${地点}在${日期}的天气",
"variables": [
{ "name": "地点", "label": "地点", "example": "深圳" },
{ "name": "日期", "label": "日期", "example": "明天" }
],
"category": "天气",
"skill": "weather"
}
保存时 variables 由模板重新推导,模板与变量列表保持一致。
30 秒上手步骤¶
经过上面的安装与重启后:
- 点左下角 ⚡ 技能卡片(与「远程目标切换」同一排)。
- 选卡片 → 填变量 → 执行。
- 答案出现在浮层下方,并写入该卡的执行历史(可展开、可批量删除)。
对比 README 中的说法:以前需完整输入「使用天气技能帮我查看深圳明天的天气」;使用模板后填「上海」「后天」即可得到同样结构的提问与回答。
适用场景与注意¶
适合谁:需要固定话术、重复查资料、重复触发同一技能路径的 DSH Web 用户;希望少打字、要本地卡片库与执行审计的工作流场景。
已知边界(来自 README「已知边界」):
- 每次执行新建会话,侧栏会出现「卡片 · xxx」会话行。
- 结果以纯文本回显,不引入宿主 Markdown 渲染器。
- 历史写入失败会提示,但不阻塞答案显示。
开发侧说明:运行时产物在 lib/,安装请用 npm 包或 tarball,不要用 link: 链到未构建源码目录。
结尾¶
dsh-skillcard 把重复提示词收成可填空的技能卡片,在选定工作区与模型下执行并就地取回答案,适合把工作流类任务从「每次手打长句」改成「选卡填空」。更多说明与 Issue 见 GitHub:Thegongyx/dsh-skillcard;目录入口:SkillHub · dsh-skillcard。