前言¶
在 DeepSeek Harness(dsh)里做多步任务时,常见做法是每一轮手动换模型、挂技能、贴提示词,再把上一步输出复制到下一步。步骤一多,流程难复用,也不方便放进 git 做审查。官方讨论 #7704 里有人提出把这类重复编排做成可声明的工作流;社区插件 dsh-pipeline(维护者 yuluo554,分类:工作流)就是面向这一需求的实现:用一份 JSON 描述多节点流水线,一条命令编译并运行,Web 端还提供表单编辑与实时运行卡。
下面介绍它是什么、能做什么,以及如何安装与跑通第一条流水线。
这是什么¶
dsh-pipeline 是 DeepSeek Harness 的多节点工作流编排插件(npm 包名 dsh-pipeline,当前版本 0.2.0)。它把「每节点独立的 prompt / model / skills、节点间自动传输出、失败策略与取消传播」写进工作区里的 JSON 文件,经 schema 校验与确定性编译后,交给 dsh 官方的 workflow-ptc 引擎执行;子 agent 继承父会话工作区,消耗的是你已在 dsh 里配置好的模型凭据。
项目为社区第三方插件,非 DeepSeek 官方出品;软件按 MIT 许可提供。目录页:skillhub.cn/plugins/yuluo554/dsh-pipeline;源码与文档:github.com/yuluo554/dsh-pipeline。
核心功能¶
流水线即文件¶
定义存放在工作区 .dsh/pipelines/<name>.json,纯 JSON、可审查、可分享。编译路径为:定义 → IR → 普通 JS 脚本(无 eval),快照可逐字节冻结校验。
节点级路由与提示词¶
- 每个节点可独立声明
provider/model,成本敏感场景可把大纲与成文路由到不同档位。 - 节点内支持
prompts[]顺序投递;中间结果经{{prev}}链式传递。 - 跨节点模板变量包括
{{input}}、{{<节点id>}}、{{prev}},自动注入上游输出。 - 显式 DAG:用
dependsOn覆盖隐式串接,支持汇聚;引用缺失、环、自依赖在编译期拒绝。 - 节点级
skills[]经ctx.skills解析进提示词,缺技能会 fail-loud。 - 节点级
outputSchema(引擎 schema 子集)供下游安全插值。
失败、取消与能力探测¶
- 节点级失败策略:
abort(默认)、skip、retry:n;流水线级可有默认策略。 - 会话中断或 AbortSignal 经引擎共享 signal 传播到受管子 agent,尽量干净退出。
- 若 provider 缺少
agentOptions/outputSchema通路,运行前给出可读错误,不静默降级。
Web 与 CLI 入口¶
- Web 编辑器:设置区流水线列表 + 表单式节点编辑(模型下拉读 catalog、技能说明),不必手写 JSON。
- 运行入口页:选流水线、填输入、一键运行;发起后在会话流内看 pipeline-run 运行卡(节点链状态、耗时、token、按声明路由分组的双模型成本对比徽章)。
- 命令与工具:用户命令
/pipeline list|show|run(不经模型轮次);面向模型的pipeline工具(参数{name, input})。安装时 bundle patch 会启用 web profile 默认关闭的workflow-ptc引擎。
当前明确不支持或有限制¶
- 节点级
tools路由与model.reasoningEffort在编译期显式拒绝(引擎 seam 无对应通路);Web 编辑器对这两类字段只读展示,round-trip 保留。 - 单会话编排:不做跨会话、定时或无人值守调度;不替代官方
workflow工具与 agentTeams。 - 只支持 dsh 兼容性锁定的 preview 线(≥ 0.2.0-rc.1)。
安装与启用¶
前置要求¶
- Node ≥ 20
- dsh ≥ 0.2.0-rc.1(该版本在 npm 的
next标签;latest仍指 0.1.x,无法运行本插件)
安装 dsh 本体示例(资料原文):
npm i -g @deepseek-ai/dsh@next
已配置可用的模型 provider(插件不内置任何 API key)。
安装插件¶
Web profile 下安装(资料原文命令):
dsh plugin --profile web add dsh-pipeline
包内含预构建产物,安装即用。卸载:
dsh plugin --profile web remove dsh-pipeline
验证是否生效:dsh --help 不加载插件;可用 dsh --profile web --dump-config 查看是否出现 # == dsh-pipeline 层且 workflow-ptc 已启用。
典型用法¶
1、写第一条流水线定义¶
在工作区创建 .dsh/pipelines/three-node-two-models.json(示例来自 README:大纲走便宜路由、复查走默认路由、成文走 reasoner):
{
"name": "three-node-two-models",
"description": "Outline on the cheap route, review on the parent route, write on the reasoner route.",
"nodes": [
{
"id": "outline",
"label": "Outline",
"prompts": ["Write a concise bullet-list outline for a short article about {{input}}."],
"model": { "provider": "deepseek", "model": "deepseek-chat" }
},
{
"id": "review",
"label": "Review",
"prompts": ["Review the outline for factual risks. Return numbered revision notes.\n\n{{outline}}"]
},
{
"id": "write",
"label": "Write",
"prompts": ["Write the final short article about {{input}}.\n\nOutline:\n{{outline}}\n\nNotes:\n{{review}}"],
"model": { "provider": "deepseek", "model": "deepseek-reasoner" }
}
]
}
完整字段说明可参考仓库 data/pipelines/ 下 7 份示例,以及 plan/03-模块详设.md。
2、命令行运行¶
/pipeline list
/pipeline show <name>
/pipeline run three-node-two-models <主题...>
3、会话内或 Web 运行¶
对模型说明使用 three-node-two-models 流水线并给出主题,由模型调用 pipeline 工具发起;或在 Web 设置 → 流水线 运行入口页选择流水线一键运行。运行后会话流中出现实时运行卡,可查看各节点状态与用量。
适用场景与注意¶
适合谁:需要在 dsh 里固定「多步、多模型、可挂技能」写作或分析流程的团队或个人;希望定义进 git、CLI 与 Web 都能触发同一套流水线的场景。
运行权限与成本:插件随当前 dsh 进程权限运行,流水线会创建真实子 agent 并消耗真实 token(含失败与重试)。安装前请自行查看源码与 MIT 许可证,评估账户与数据风险;社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系。
环境提示(README 实测记录):Windows + Git Bash 下全局 npm i -g 可能异常,可改用 node 直跑 npm-cli;dsh 务必装 next 标签的 0.2.0-rc.1,否则插件可能 pending 不激活。
结尾¶
dsh-pipeline 把多节点智能体编排收成可版本化的 JSON,经官方 workflow-ptc 引擎执行,并在 Web 端提供编辑、运行与运行卡观测。若你正在 dsh preview 线(≥ 0.2.0-rc.1)上做多步工作流,可从目录页与 GitHub 仓库对照安装命令与示例流水线起步。
- 目录页:https://www.skillhub.cn/plugins/yuluo554/dsh-pipeline
- GitHub:https://github.com/yuluo554/dsh-pipeline