DeepSeek Harness (DSH) 采用“一切皆插件”的架构理念。将外部工作流工具(如 Trellis)集成到 DSH 中,通常需要手动补齐原生能力,才能达到 Codex 或 Claude Code 级别的体验。dsh-trellis 是一个插件,旨在将 Trellis 工作流接入 DSH,并利用 DSH 的原生能力补齐这一体验。
核心功能¶
该插件主要提供以下能力:
- 每轮 workflow-state 面包屑注入:在每个
agent/pre-step阶段,解析项目.trellis/workflow.md中的[workflow-state:*]块和活跃任务状态,将对应的面包屑注入会话。 - 隔离的原生会话上下文身份:从 DSH 原生 session header 生成受管的
DSH_TRELLIS_CONTEXT_ID,确保task.py能解析到正确的会话级 active-task 指针,并正确转发身份给子代理。 - 原生子代理同步:支持 DSH 原生的 continuable 后台子代理。通过
trellis_wait监听subagent/end事件,根据生命周期元数据返回结算结论,避免将error、max-tokens等误判为通过。 /trellis命令:提供/trellis-status(查看活跃任务与 git 状态)和/trellis-finish(只读检查与安全收尾清单)命令。- Web 配置菜单:在 DSH Web 界面的“设置 → 插件 → 插件配置”中提供可视化的 Trellis 工作流卡片,支持分阶段编辑配置并实时生效。
安装¶
插件安装到指定的 profile 后,在下次启动该 profile 时生效。每个实际使用的 profile 都需要单独安装。
# 安装到 web profile
dsh plugin --profile web add dsh-trellis
# 安装到 headless profile
dsh plugin --profile headless add dsh-trellis
# 安装到 tui profile(如果使用)
dsh plugin --profile tui add dsh-trellis
如需升级到 npm 上的最新版本:
dsh plugin --profile web update dsh-trellis
dsh plugin --profile headless update dsh-trellis
dsh plugin --profile tui update dsh-trellis
配置与使用¶
Web Profile 配置¶
对于支持 Settings provider 的 DSH Web profile,可以直接在“设置 → 插件 → 插件配置 → Trellis 工作流”中编辑配置。保存后内容写入 settings.yaml,优先级高于 profile 组合层并立即生效。
Headless / 其他 Profile 配置¶
对于 Headless profile 或需要声明部署默认值的情况,可在 profile 的 cordis.patch.yml 中覆盖配置。Web 界面的“恢复配置文件值”会清除用户层字段并重新继承这里的值。
- id: dsh-trellis
config:
maxBytes: 4096 # 面包屑注入的字节预算(0 = 关闭注入)
skipKeyword: no-trellis # 提示词中的独立单词可跳过当轮注入(空 = 禁用)
pythonCmd: "" # 空 = 自动选择系统默认 python
commandsEnabled: true
典型用法¶
- 查看状态:在主会话中使用
/trellis-status查看当前活跃任务和 git 状态。 - 同步子代理:当使用后台子代理(
run_in_background: true)时,主会话可先继续独立工作。当需要汇合结果时,调用trellis_wait <subagent_id>等待原生结算事件。 - 安全收尾:使用
/trellis-finish进行只读检查和收尾清单,真正的会话收尾由技能面/trellis-finish-work执行。
注意事项与兼容性¶
- 可选伴侣插件:
dsh-trellis是 Trellis DSH 适配的可选伴侣插件,不是使用trellis init --dsh的前置条件。 - 依赖要求:插件需要 profile 提供
sessionProjections服务。若 profile 未组装此服务,需先加载@deepseek-ai/dsh-session-projection。 - 版本兼容:插件依赖 DSH 的特定版本范围(peerDependencies 覆盖了
0.1.0-rc.6+到0.1.5-alpha.1+)。开发基线固定在0.1.5-rc.2。 - 会话隔离:Headless 模式下,每次
dsh --profile headless调用都是新的 DSH session。需要跨轮保留 active-task 指针时,应保持同一会话。 - 许可证:MIT License。
总结¶
dsh-trellis 通过原生会话身份管理、子代理同步和 Web 配置菜单,为 DeepSeek Harness 用户提供了与 Codex/Claude Code 对等的 Trellis 工作流体验。它是连接 DSH 生态与 Trellis 工作流管理的实用工具。
- GitHub 仓库: https://github.com/SajoLuo/dsh-trellis
- 插件目录: https://www.skillhub.cn/plugins/SajoLuo/dsh-trellis