前言¶
用 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-compositions 与 cordis-plugin-development。技能内容不是打包在插件里,而是从本机已安装的内置 cordis preset 现场拷贝。会话中让它创作 preset 或试验动态插件时,会自动加载这两个技能。
工作机制¶
用户优先保护¶
插件在物化时把每个文件的 sha256 记入 .plugin-managed.json,由此得到三条规则:
- 未改动的文件:插件升级时原位刷新;
- 你改过的文件:插件从此不再碰——启动不覆盖、卸载不删除;
- 没有标记文件的自建
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.json 的 base 字段。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 创造模式」,启用就完成了。
日常使用¶
会话内怎么用¶
- 新建会话,在模式选择器选「PTC 创造模式」;
- 正常使用 Code Mode:用
run_code组合多步操作,cordis_inspect等工具就在 SDK 里,和其他工具一样调用; - 需要创作 preset 或试验动态插件时,直接提出,它会自动加载随行的
editing-cordis-compositions与cordis-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 test 走 node --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 来自插件线索,未进一步核实)