前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在实际开发中,智能体容易陷入过度设计的陷阱,导致代码冗余或调试困难。dsh-ponytail 是一个适配到 DSH 的插件,它将 DietrichGebert/ponytail 的极简编码原则引入 DSH 的工作流。
该插件为 DSH 提供了一套结构化的“懒惰 senior dev”规则集,支持会话级模式切换,并包含用于代码精简、审查和审计的一组技能。
安装¶
该插件依赖 @deepseek-ai/cordis (4.0.1) 和 @deepseek-ai/schemastery (3.18.x),兼容 Node.js 22.x / 24.x。安装时需要指定一个 Profile(例如 web、tui 或自定义名称)。
使用官方仓库安装:
dsh plugin --profile web add github:MengYuil/dsh-ponytail
安装完成后,重启该 Profile(dsh web 或 dsh tui)即可生效。
核心模式¶
插件通过 /ponytail 命令注入结构化的规则集。核心模式分为以下几种档位,它们的区别在于规则语义,而非仅仅是 Prompt 片段的替换:
- Common(所有非 off 档位共享):将请求转化为可观察的完成条件,沿真实调用流取证,执行“检查 → 修改 → 最窄有效验证 → 检查最终 diff”的闭环,非平凡逻辑只留最小可执行检查。
- Safety(任何档位都不可删):包含输入校验、防数据丢失的错误处理、安全措施、无障碍要求及明确验收项。
- lite:减少仪式感,直接执行,完整交付明确要求,不挑战明确需求。
- full(默认):完整执行七级决策阶梯(YAGNI → 复用 → 标准库 → 原生 → 已装依赖 → 一行 → 最小实现),默认选择最短正确实现。
- ultra:新增代码前先求证,优先删除或复用,主动质疑投机性功能,复杂需求先给最小正确版。
- off:完全不注入规则。
这些模式是会话级的,A 会话的模式设置不影响 B 会话。
常用命令¶
/ponytail lite|full|ultra|off:显式切换当前会话模式。/ponytail:查看当前模式状态。若当前为 off,会自动恢复到有效默认档(默认为 full)。/ponytail status:查询当前模式,显示该模式是来自会话覆盖还是配置默认值。/ponytail reset:清除当前会话的覆盖设置,重新跟随有效配置。
一次性技能¶
以下技能为一次性触发,不会进入常驻 Prompt,用完即止:
/ponytail-help:显示参考卡。/ponytail-review:针对最近改动进行审查,指出过度工程及位置。/ponytail-audit:对全仓库进行过度工程审计,返回高价值发现。/ponytail-debt:收割代码中的ponytail:注释,生成债务账本。/ponytail-gain:显示参考计分板(代码减少、Token/成本/延迟效果取决于模型与任务,非插件保证)。
停用与恢复¶
随时可以通过以下命令停用模式:
stop ponytailnormal mode停止 ponytail关闭 ponytail普通模式正常模式
恢复时只需发送 /ponytail。
配置¶
插件支持通过环境变量、Profile 配置或用户配置文件来设置默认模式。默认模式优先级如下:
会话 override > PONYTAIL_DEFAULT_MODE 环境变量 > Profile cordis.patch.yml 配置 > 用户 config.json > full
Profile 级配置¶
在 Profile 的 cordis.patch.yml 中配置 defaultMode,例如:
- insert:
- id: ponytail
name: '@mengyuly/dsh-ponytail'
config:
defaultMode: lite
修改 Profile 配置后需要重启该 Profile 才能生效。
用户级配置¶
在 ~/.config/ponytail/config.json(Windows 为 %APPDATA%\ponytail\config.json)中设置:
{
"defaultMode": "lite"
}
用户配置支持热更新(约 1 秒轮询),非法值不会导致插件崩溃。
依赖与兼容性¶
- 运行时依赖:
@deepseek-ai/cordis(4.0.1)@deepseek-ai/schemastery(3.18.x)
- 环境要求:
- Node.js 22.x / 24.x
- DeepSeek Harness (commit
b150a551构建)
- 兼容性:
webprofile 已验证。tui和headlessprofile 未完整验证。
注意事项¶
- 效率收益有条件:插件通过增加 Prompt 体积来减少过度设计,但其收益取决于具体任务。当任务本身已很简单时,收益可能接近零,甚至出现额外输入开销。它不是“省 Token 开关”,也不保证跨模型的成本节省。
- 发行包结构:npm 发行包不包含
scripts/目录,不提供维护脚本入口。 - 错误处理:配置错误(如非法 JSON、非法
defaultMode)只会告警一次,不会刷屏。 - 父子代理:DSH 的
subagent工具是隔离派生,但全局 system-prompt 仍会参与组装。插件通过PONYTAIL_SUBAGENT_MATCHER正则匹配筛选子代理,不宣称父子 Prompt 继承。