dsh-ptc-cordis-preset:給 DSH 的 PTC 模式補上創造模式

前言

用 DSH(DeepSeek Harness)做開發時,有兩類任務很常見。一類是工具編排:用 Code Mode SDK 寫一個 run_code 程序,把多個工具調用組合在一次執行裏。另一類是圍繞運行時的創造型工作:檢查活運行時、定義並試驗動態插件包、乃至創作新的 agent preset。

這兩類能力目前分屬 DSH 的兩個內置 preset:內置 PTC preset(id 爲 code,dsh 0.1.2 起改名爲 ptc)提供 Code Mode 編排;內置創造 preset(cordis)提供自引用 Cordis 工具與 preset 創作指導。兩者各管一邊,想在同一個會話裏同時使用,此前沒有現成的選擇。

dsh-ptc-cordis-preset 補的就是這一格。它由 KannaKuron 維護,倉庫代碼 MIT 許可,當前版本 0.8.1。下面介紹它的定位、工作方式與使用方法。

這是什麼

一句話定位:在 PTC 模式基礎上的創造模式——把 Code Mode 工具編排、自引用 Cordis 工具與 preset 創作指導合成一個 ptc-cordis 用戶 preset。DSH 的理念是「一切皆插件」,這個插件交付的不是工具補丁,而是一個完整的 agent preset。

工作流程是:DSH 進程啓動時,插件把合成 preset 物化到第一個 user 信任根,默認路徑爲 ~/.dsh/.agent-presets/ptc-cordis/;之後新建會話,在模式選擇器裏選「PTC 創造模式」即可使用。物化後的目錄結構大致如下:

~/.dsh/.agent-presets/ptc-cordis/
├── agent.cordis.yml      # 合成組合:內置 code/ptc preset 全量 + 創造 preset 增量
├── skills/               # 兩個創作技能,從本機已裝的內置 cordis preset 現場拷貝
└── .plugin-managed.json  # 插件管理標記:各文件 sha256、組合 era 等

其中 agent.cordis.yml 是合成的關鍵:內置 code/ptc preset 的組合文本原樣保留,再疊加 cordis preset 的增量(persona、Cordis 工具、技能目錄)。

版本要求:node >= 18、dsh >= 0.1.0(package.json 的 engines 字段);下文的 workflow 開關需要 dsh >= 0.1.2。

核心能力

自引用 Cordis 工具

preset 在 PTC 全量能力之上疊加五個 Cordis 工具:

  • cordis_inspect:讀運行時;
  • cordis_define / cordis_run / cordis_stop:定義、運行、停止動態插件包;
  • cordis_undefine:刪除動態插件包。

在 Code Mode 下,這些工具和其他工具一樣位於 SDK 中:可以當作 SDK 函數寫進 run_code 程序裏調用。也就是說,同一段程序既能編排普通工具,也能檢查運行時、試驗動態插件——這正是「PTC × 創造」組合的意義所在。

創作指導與隨行技能

合成 persona 包含雙平面創作指導:主機組合與 Agent preset 之間的取捨規則,以及 Code Mode 下的組合方式(把 cordis 工具當 SDK 函數寫進 run_code 程序)。

兩個創作技能隨 preset 走:editing-cordis-compositionscordis-plugin-development。技能內容不是打包在插件裏,而是從本機已安裝的內置 cordis preset 現場拷貝。會話中讓它創作 preset 或試驗動態插件時,會自動加載這兩個技能。

工作機制

用戶優先保護

插件在物化時把每個文件的 sha256 記入 .plugin-managed.json,由此得到三條規則:

  1. 未改動的文件:插件升級時原位刷新;
  2. 你改過的文件:插件從此不再碰——啓動不覆蓋、卸載不刪除;
  3. 沒有標記文件的自建 ptc-cordis 目錄:插件完全不接管。

第二條值得注意:自己改過 preset 之後,插件升級或卸載都不會動這些文件,處理權完全在你。

安靜啓動

自 v0.2.1 起,目錄無變化、插件版本未變時,啓動不重寫任何文件,也不打印日誌。

dsh 版本雙適配

dsh 0.1.2 把內置 code preset 改名爲 ptc,兩個 era 的組合文本並不相同。插件自 v0.7.0 起同時攜帶 code(dsh <= 0.1.1)與 ptc(dsh >= 0.1.2)兩個 era 的完整組合文本,啓動時探測本機 dsh 自動選擇,並把結果記入 .plugin-managed.jsonbase 字段。dsh 升級後,下次啓動會按探測結果自動重物化,無需手動處理。

workflow 開關

自 v0.8.0 起,設置頁提供 workflow 開關卡片,決定合成 preset 是否提供 workflow 工具。默認開啓,即繼承創造模式的能力;切換後 preset 即時重物化,新會話即刻生效。該開關需要 dsh >= 0.1.2。

共存與聯動

  • 與內置創造模式同進程共存:自 v0.4.0 起通過兼容 shim 實現,v0.6.3 修復了 shim 的安裝時機問題。
  • 與 dsh-gitbash-shell(v0.2.0+)聯動:物化時檢測其 gitBash 宿主能力,Windows 下兩插件合用則改用 agent.cordis.gitbash.yml(tool-bash 啓用、tool-pwsh 禁用),否則使用默認的 agent.cordis.yml

安裝與啓用

安裝命令如下,來自 npm 公開包:

dsh plugin --profile web add dsh-ptc-cordis-preset

插件是純 JS、零構建、零依賴,安裝不會觸發 pnpm 構建腳本,也不需要在 allowBuilds 裏放行。

裝完後重啓 DSH(host 半變更),新建會話,在模式選擇器裏選擇「PTC 創造模式」,啓用就完成了。

日常使用

會話內怎麼用

  1. 新建會話,在模式選擇器選「PTC 創造模式」;
  2. 正常使用 Code Mode:用 run_code 組合多步操作,cordis_inspect 等工具就在 SDK 裏,和其他工具一樣調用;
  3. 需要創作 preset 或試驗動態插件時,直接提出,它會自動加載隨行的 editing-cordis-compositionscordis-plugin-development 兩個技能。

更新

兩種方式:市場頁點「更新」按鈕,或重跑上面的安裝命令。之後重啓 DSH,未改動的 preset 會原位刷新爲新版本。

更新檢測由 dshmarket 按註冊表版本進行,有 30 分鐘 TTL 緩存;市場頁遲遲不顯示更新時,可訪問 /dsh-market/updates?force=1 強制刷新緩存。

卸載注意事項

命令行卸載(dsh plugin --profile web remove dsh-ptc-cordis-preset)在獨立進程中執行,disposer 不會運行,ptc-cordis preset 會殘留。此時需要在設置頁刪除它,或手動清理:

rm -rf ~/.dsh/.agent-presets/ptc-cordis

從源碼構建與測試

git clone https://github.com/KannaKuron/dsh-ptc-cordis-preset.git
cd dsh-ptc-cordis-preset
npm test

npm testnode --test,共 11 項冒煙測試,不需要網絡,也沒有構建步驟。

適用場景與注意

適合的場景:想在同一個會話裏用 Code Mode 編排多步工具操作,同時檢查運行時、試驗動態插件,或在此基礎上創作、修改 agent preset 的開發者。如果只需要其中一種能力,用內置 PTC 模式或內置創造模式即可。

信任邊界與內置創造模式一致:cordis_define / cordis_run 會在活運行時上執行模型寫的 JavaScript,請把 PTC 創造模式的會話當作 shell 訪問對待。

插件以當前 dsh 進程的權限運行,並會寫入 ~/.dsh/ 下的文件。安裝前建議先審查源碼與許可:倉庫代碼爲 MIT;合成組合與技能內容派生自 @deepseek-ai/dsh 內置 preset(同爲 MIT),運行時從本機安裝拷貝並遵循其許可。

結尾

回顧一下:dsh-ptc-cordis-preset 把 DSH 內置的 PTC 與創造兩個 preset 合成一個 ptc-cordis preset,啓動時物化、新會話即選即用;哈希標記保護用戶改動,兩個 dsh era 自動適配,命令行卸載的殘留也有明確的清理路徑。對需要「Code Mode 編排 + 創造能力」並存的開發者來說,它把一件原本要手工拼接的事變成了一個現成選項。

項目鏈接:

  • GitHub 倉庫(源碼與 Release):https://github.com/KannaKuron/dsh-ptc-cordis-preset
  • 社區目錄頁:https://www.skillhub.cn/plugins/KannaKuron/dsh-ptc-cordis-preset (社區站點,與 DeepSeek / 幻方無官方從屬;該 URL 來自插件線索,未進一步覈實)
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜