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