前言¶
在 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。