--- title: Pipeline DSL updated: 2026-04-21 status: active tags: [module, pipeline, dsl] --- # Pipeline DSL > 从 [[index]] 导航。关联模块: [[hands-skills]] ## 设计思想 **Pipeline = 可编排的工作流,按 DAG 依赖顺序执行步骤。** - YAML 定义 Pipeline 结构(步骤、依赖、输入/输出) - DAG 执行器按依赖拓扑排序执行 - 18 个 YAML 模板覆盖 8 大行业目录 - 前端已接通 8 个 Tauri invoke 调用 ## 代码逻辑 ### 架构 ``` YAML Pipeline 定义 → PipelineExecutor (crates/zclaw-pipeline/src/executor.rs) → 构建 DAG (按依赖排序) → 逐步执行: → ActionRegistry.resolve(action_type) → 执行 action → PipelineRun.step_results → 全部完成 → PipelineRun.status = Completed ``` ### 运行状态 ```rust enum RunStatus { Pending, Running, Completed, Failed, Cancelled } ``` ### 模板分布 (18 个 YAML) ``` pipelines/ ├── _templates/ (2 模板) │ ├── article-summary.yaml │ └── competitor-analysis.yaml ├── design-shantou/ (4 模板) — 汕头玩具/服装行业 │ ├── client-communication.yaml │ ├── competitor-research.yaml │ ├── supply-chain-collect.yaml │ └── trend-to-design.yaml ├── education/ (4 模板) │ ├── classroom.yaml │ ├── lesson-plan.yaml │ ├── research-to-quiz.yaml │ └── student-analysis.yaml ├── healthcare/ (3 模板) │ ├── data-report.yaml │ ├── meeting-minutes.yaml │ └── policy-compliance.yaml ├── legal/ (1 模板) │ └── contract-review.yaml ├── marketing/ (1 模板) │ └── campaign.yaml ├── productivity/ (1 模板) │ └── meeting-summary.yaml └── research/ (1 模板) └── literature-review.yaml 注: 共 18 个 YAML, 总数 = 2+4+4+3+1+1+1+1+1 = 18 ``` ### 前端集成 | 组件 | 文件 | |------|------| | PipelineClient | `desktop/src/lib/pipeline-client.ts` | | WorkflowBuilderStore | `desktop/src/store/workflowBuilderStore.ts` | | Pipeline UI | `desktop/src/components/pipeline/` | | Tauri 命令 | `desktop/src-tauri/src/pipeline_commands/` | Pipeline Tauri 命令 (12 个): | 文件 | 命令数 | 命令 | |------|--------|------| | discovery.rs | 8 | list/get/run/progress/cancel/result/runs/refresh | | crud.rs | 3 | create/update/delete | | intent_router.rs | 1 | route_intent | | presentation.rs | 2 | analyze_presentation/pipeline_templates | 前端 invoke 匹配: 8 个调用对应 8 个 discovery 命令,完整可用。 ### 测试 `parser_v2.rs`: 11 tests — YAML 解析和 DAG 构建验证。 ## 功能清单 | 功能 | 描述 | 入口文件 | 状态 | |------|------|----------|------| | YAML 解析 | v2 解析器,支持 DAG 依赖 | parser_v2.rs | ✅ | | DAG 执行 | 拓扑排序 + 并行执行 | executor.rs | ✅ | | 模板发现 | 18 模板 + 8 行业目录 | pipeline_commands/ | ✅ | | 模型意图 | Pipeline 意图匹配 | intent.rs | ✅ | | 状态管理 | Pipeline 运行状态 | state.rs | ✅ | | 触发器 | 定时/事件触发 | trigger.rs | ✅ | | 演示分析 | Pipeline 结果分析 | presentation/ | ✅ | ## API 接口 ### Tauri 命令 | 命令 | 状态 | 说明 | |------|------|------| | `orchestration_execute` | @reserved | 执行工作流 (无前端 UI) | | `orchestration_validate` | @reserved | 验证工作流 (无前端 UI) | > 另有 12 个 pipeline discovery 命令在 `desktop/src-tauri/src/pipeline_commands/`,8 个已接通前端。 ## 测试链路 | 功能 | 测试文件 | 测试数 | 覆盖状态 | |------|---------|--------|---------| | YAML 解析 v2 | parser_v2.rs | 11 | ✅ | | DAG 执行 | executor.rs | 2 | ✅ | | 意图匹配 | intent.rs | 5 | ✅ | | 状态管理 | state.rs | 6 | ✅ | | 触发器 | trigger.rs | 5 | ✅ | | 类型 | types.rs + types_v2.rs | 4 | ✅ | | 解析 v1 | parser.rs | 5 | ✅ | | 引擎上下文 | engine/context.rs | 7 | ✅ | | 引擎阶段 | engine/stage.rs | 1 | ✅ | | 演示 | presentation/ (3文件) | 13 | ✅ | | **合计** | 13 文件 | **59** | | ## 关联模块 - [[hands-skills]] — Pipeline 步骤可能调用 Hand/Skill - [[chat]] — Pipeline 可通过聊天触发 ## 关键文件 | 文件 | 职责 | |------|------| | `crates/zclaw-pipeline/src/executor.rs` | DAG 执行器 | | `crates/zclaw-pipeline/src/parser_v2.rs` | YAML 解析 (11 tests) | | `pipelines/` | 18 个 YAML 模板 (8 目录) | | `desktop/src/lib/pipeline-client.ts` | 前端 Pipeline 客户端 | | `desktop/src-tauri/src/pipeline_commands/` | 12 个 Tauri 命令 (4 文件) | ## 已知问题 - ✅ **pipeline_create 反序列化失败** — BUG-L2 已修复 (04-17 回归) - ⚠️ **Pipeline+Skill E2E 通过率 37.5%** — Tauri IPC 可用但参数格式问题 - ⚠️ **Deepseek 中继任务卡 processing** — P3,Provider Key 禁用后已有任务不自动清理