dsh-pipeline:用 JSON 定义多节点智能体流水线

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye