前言¶
DeepSeek Harness (DSH) 的生态理念是“一切皆插件”。上游工具 ponytail(“懒散资深开发模式”)原生适配了 Claude Code、Codex 等环境,但 DSH 的代理架构缺少其依赖的 UserPromptSubmit 生命周期钩子。dsh-plugin-ponytail 在 DSH 现有的扩展点(如 systemPrompt.context)上重建了这一层,将 Ponytail 的规则、技能和命令集成到 DSH 中,无需修改上游代码或向仓库注入文件。
插件定位¶
本插件是 dsh-plugin-ponytail,由 BorisLoveDev 维护,采用 MIT 许可证。它将 Ponytail 的“懒散资深开发”模式转化为 DSH 的原生能力,核心价值在于为特定项目提供一套常驻的规则集和技能列表,并通过命令行接口控制模式强度。
核心功能¶
插件在 DSH 的扩展点上注册了三项内容:
- Always-on 规则:通过
systemPrompt.context()实现,规则会针对每个提示重新计算并生效。 - 技能提供者:通过
skills.registerProvider()注册六个ponytail*技能。这些技能仅在 Ponytail 模式开启时可见。 - 命令接口:注册
/ponytail命令,用于切换模式状态或查看状态。
安装¶
使用官方注册表安装:
dsh plugin --profile web add dsh-plugin-ponytail
若通过本地路径安装:
dsh plugin --profile web add /path/to/dsh-plugin-ponytail
安装后,插件会作为 dsh.bundle.patch 注入,通常需要在下次启动时生效。如果宿主开启了 patchReload: live,则无需重启即可加载。
项目配置¶
插件以项目根目录下是否存在 .ponytail/ 目录作为激活条件。
- 创建目录结构:
mkdir -p .ponytail/skills
- 放置规则文件(上游的
AGENTS.md):
# rules.md
- 放置技能文件(上游的
skills/内容):
# skills/*/SKILL.md
- 设置初始模式状态:
printf 'full\n' > .ponytail/state
模式命令与用法¶
通过 /ponytail 命令控制模式强度或查看状态:
- 查看状态:
/ponytail status - 切换模式:
/ponytail lite
/ponytail full
/ponytail ultra
/ponytail off - 持久化默认值:
/ponytail default lite
state 文件存储当前模式。切换模式后,下一条提示生效。
插件支持上游的“停止手势”机制。在消息中输入 stop ponytail 或 normal mode 即可将当前项目切换为 off 状态。仅有提及该短语而未完全匹配则不会触发。
与其他插件的差异¶
生态中存在另外两个 Ponytail 插件,功能侧重点不同:
- dsh-ponytail:将规则注入为全局系统提示,并注册技能。适用于需要所有会话生效的场景。
- dsh-ponytail-skills:仅提供技能,不注入规则。模型需自行选择加载技能,规则不强制生效。
- dsh-plugin-ponytail:本项目。它结合了规则注入和技能提供,但仅对包含
.ponytail/目录的项目生效。它使用磁盘上的.ponytail/state保存状态,确保会话恢复后模式不丢失。
注意事项¶
- 互斥安装:
dsh-ponytail和dsh-plugin-ponytail都注册了/ponytail命令,安装第二个会失败。请根据需求选择一个。 - 无额外产物:插件不会在项目中创建
AGENTS.local.md或.agents/skills中的符号链接。唯一的产物是项目目录下的.ponytail/。 - 目录查找逻辑:插件从会话工作目录向上遍历文件系统,直到找到
.ponytail/目录。这意味着嵌套仓库中的会话也会继承该目录的规则。 - 源码检查:由于插件以当前进程权限运行,安装前建议查阅源码与许可证。
结语¶
如果需要在特定项目中强制应用 Ponytail 规则并保持状态持久化,dsh-plugin-ponytail 提供了基于文件系统的轻量级方案。
- 目录页: https://www.skillhub.cn/plugins/BorisLoveDev/dsh-plugin-ponytail
- GitHub: https://github.com/BorisLoveDev/dsh-plugin-ponytail