前言¶
在 DSH 里做智能体辅助开发时,模型往往倾向于直接动手写新代码、加新依赖。仓库里已有实现、标准库能力、一行能写清的逻辑,经常被跳过。要系统性压住这种冲动,单靠会话里临时叮嘱不够稳定,也不便于在团队内统一强度。
下面介绍维护者 58fly 发布的 DSH 工作流插件 dsh-ponytail-58fly(npm 包名同为 dsh-ponytail-58fly)。它在系统提示里挂载一道固定的六步决策阶梯,并通过 off / lite / full / ultra 四档控制约束强度;同时提供六个斜杠技能与可选设置面板。规则思想参考上游 DietrichGebert/ponytail(MIT),实现与技能正文为本仓原创。插件在 SkillHub 目录 归类为「工作流」;社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-ponytail-58fly 是面向 DeepSeek Harness(DSH)0.2.x 的自维护 lazy-mode(ponytail)插件:档位分级引导、与代码围栏相关的提示过滤、六份技能目录,以及 Web 端设置页中的「Ponytail 档位」配置。运行时依赖为零,技能由宿主注册表从包内 skills/ 读取。
宿主版本由 engines.dsh 闸门约束,装错版本会直接装不上,不会静默降级运行。
核心功能¶
六步决策阶梯¶
阶梯进入 system prompt 的固定段,仅在会话创建时渲染一次;切换档位通过尾部 system-reminder 注入完整指令,不会让整个提示词前缀失效(有利于 KV cache)。
动手写代码前,模型按顺序过六道问:
| # | 先问 | 命中就用 |
|---|---|---|
| 1 | 这东西需要存在吗? | 不需要就跳过,一行说明省了什么 |
| 2 | 仓库里已经有了? | 照周围的用法用它 |
| 3 | 标准库或平台原生特性? | 用原生,除非项目自己有约定 |
| 4 | 已装的依赖里有? | 用,绝不新增依赖 |
| 5 | 能写成一眼看懂的一行? | 一行 |
| 6 | 都不行 | 能跑通的最少那份代码 |
四档强度¶
档位只决定强度,不改变阶梯本身:
| 档位 | 行为 |
|---|---|
off |
完全关闭,本会话恢复普通开发模式 |
lite |
按要求做,另附一行「更小的选项」供选择 |
full |
默认,完整阶梯 |
ultra |
额外质疑需求本身;适合需求未定形时,代价是更慢、更啰嗦,可能推翻既有方案 |
六个技能¶
斜杠命令后必须跟半角空格;全角「/」或全角逗号不会触发宿主手势。
| 命令 | 用途 |
|---|---|
/ponytail |
查看或切换档位 |
/ponytail-review |
按六阶审查改动:逻辑、安全、负载、测试、性能、多余代码 |
/ponytail-audit |
全仓审计 |
/ponytail-debt |
盘点 shortcut: 注释标出的技术债 |
/ponytail-gain |
本机效率统计与档位分布 |
/ponytail-help |
用法速查 |
技能描述为中文重写,并保留英文触发词(如 be lazy、yagni),中英文提问均可命中。
配置与优先级¶
Cordis 配置字段(三者均不在插件内写死默认值,由校验与设置面板显式呈现):
| 字段 | 类型 | 说明 |
|---|---|---|
defaultMode |
enum |
off / lite / full / ultra,面板侧缺省表现为 full |
skillDir |
string |
相对 $DSH_HOME;缺省路径为 $DSH_HOME/ponytail-58fly/skills |
locale |
enum |
zh / en,已声明,当前无消费点 |
改默认档位三条等价路径,优先级为:环境变量 > profile 补丁 > 内置兜底。
export PONYTAIL_DEFAULT_MODE=ultra
# profile 的 cordis.patch.yml
- patch:
- id: ponytail-58fly
config:
defaultMode: ultra
会话内即时切换(敲在对话框,非 shell):
/ponytail ultra
若未生效,设置面板会逐层显示哪一层配置覆盖了当前值。
安装与启用¶
前提:Node >=20,DSH >=0.2.0-rc.1 且 <0.3.0-0(README 徽章写宿主 DSH 0.2.x);--profile 必填,官方模板含 web / headless / acp / sdk。
# ① 把插件装进 profile
dsh plugin --profile web add dsh-ponytail-58fly
# ② 重启 DSH 生效
装完后在会话里执行 /ponytail 查看当前档位;或在设置页「Ponytail 档位」切换。
离线或内网可从 tarball 安装(示例版本与 README 一致):
pnpm run build && npm pack
dsh plugin --profile web add ./dsh-ponytail-58fly-0.3.1.tgz
桌面版 Electron 独占 profile 时,dsh plugin 会拒绝写入,需在 profile 目录用 pnpm 添加本地包:
cd ~/.dsh/profiles/desktop && pnpm add /path/to/dsh-ponytail-58fly-0.3.1.tgz
注意: 插件以当前 DSH 进程的权限运行。安装前应自行查看 GitHub 仓库 源码与 MIT LICENSE,确认符合你的安全与合规要求。
典型用法¶
查看或讨论某功能是否值得加代码时,带上半角空格:
/ponytail 这个功能要加缓存吗
/ponytail-review 看看这个 diff
需要默认更激进地质疑需求时,在 profile 或环境中把 defaultMode 设为 ultra,或新开会话前设置 PONYTAIL_DEFAULT_MODE。
若宿主未安装 @deepseek-ai/dsh-client-ui-settings 相关模块,设置面板会降级缺失,但斜杠命令、环境变量与 cordis.patch.yml 仍可完成全部操作(README 排障表中的预期行为)。
适用场景与注意¶
适合希望在 DSH 会话里统一「先找现成方案、最小改动解决问题」纪律的团队或个人;ultra 适合需求探索阶段,off 适合需要放开约束的专项任务。
Peers 为 @deepseek-ai/cordis ~4.1.0、@deepseek-ai/schemastery ~3.19.0,由宿主提供。本包零运行时依赖,勿在插件包内新增会被 link: 安装方式忽略的 dependencies。
常见排障:斜杠无响应时检查半角空格与 ASCII 斜杠;技能列表为空时核对 skillDir 与各 SKILL.md 的 frontmatter;装时若出现 Agent skills awaiting approval,与 pnpm 链入的其他技能目录有关,不影响本插件六个技能从包内加载。
结尾¶
dsh-ponytail-58fly 把 ponytail 式决策阶梯做成 DSH 可配置的长期约束,用档位调节强度,用六个命令覆盖审查、审计与统计。目录页:https://www.skillhub.cn/plugins/58fly/dsh-ponytail-58fly;源码与完整说明:https://github.com/58fly/dsh-ponytail-58fly。