前言¶
在 DeepSeek Harness (DSH) 中,通过代码硬编码注册命令较为繁琐。dsh-commands 插件提供了一种基于文件系统的解决方案,通过扫描 Markdown 文件自动注册斜杠命令,简化了命令管理的流程。
插件概述¶
- 名称:
dsh-commands - 所有者:EtbyStudio
- 核心价值:将 Markdown 文件直接映射为可执行的斜杠命令,支持 YAML frontmatter 描述和热重载。
安装与启用¶
该插件需要 DSH 版本 0.2.0-rc.2。安装命令如下:
dsh plugin add @etby-studio/dsh-commands
安装完成后,插件会在启动时扫描配置目录下的 Markdown 文件,将其注册为命令。
配置与文件格式¶
插件会在 <dshHome>/commands 目录下扫描 Markdown 文件。文件的结构决定了命令的行为:
- 命令名:文件名(去掉
.md后缀)即为命令名。命名规则为小写 ASCII 字母、数字、下划线或连字符。 - 描述:必须在 YAML frontmatter 中包含
description字段,用于在命令发现 UI 中显示。 - 正文:文件主体内容作为指令,在命令执行时提交给模型。
示例文件内容:
---
description: Execute the plan
---
## Steps
1. Review the plan
2. Create a task list
执行与热重载¶
- 执行机制:插件不会隐式提交到模型。当触发命令(如
/name)时,它会读取当前文件正文,并根据参数配置将指令和参数附加到用户消息中。 - 参数支持:
- 类型化参数会追加在正文后的空行处(例如:
/name <description>)。 - 如果正文中包含
$ARGUMENTS占位符,参数将替换该占位符。
- 类型化参数会追加在正文后的空行处(例如:
- 热重载:插件使用 Chokidar 监听目录变化。添加、修改或删除命令文件会自动更新注册表,无需重启 DSH。
注意事项¶
- 优先级:文件命令优先级较低。如果已有插件通过程序化方式注册了同名命令,文件命令会被跳过并发出警告。
- 文件有效性:包含以下情况的文件会被跳过并记录警告:缺少 frontmatter、描述为空、命令名无效或正文为空。
- 观察者配置:支持配置观察者行为,包括轮询模式、稳定性阈值(
watchStabilityThresholdMs)以及符号链接跟随(watchFollowSymlinks)。