WORKFLOW_SCRIPTS — 工作流自动化
Feature Flag: FEATURE_WORKFLOW_SCRIPTS=1
实现状态:全部 Stub(7 个文件),布线完整
引用数:10
一、功能概述
WORKFLOW_SCRIPTS 实现基于文件的多步自动化工作流。用户可以定义 YAML/JSON 格式的工作流描述文件,系统将其解析为可执行的多 agent 步骤序列。提供/workflows 命令管理和触发工作流。
二、实现架构
2.1 模块状态
| 模块 | 文件 | 状态 |
|---|---|---|
| WorkflowTool | src/tools/WorkflowTool/WorkflowTool.ts | Stub — 空对象 |
| Workflow 权限 | src/tools/WorkflowTool/WorkflowPermissionRequest.ts | Stub — 返回 null |
| 常量 | src/tools/WorkflowTool/constants.ts | Stub — 空工具名 |
| 命令创建 | src/tools/WorkflowTool/createWorkflowCommand.ts | Stub — 空操作 |
| 捆绑工作流 | src/tools/WorkflowTool/bundled/ | 缺失 — 目录不存在 |
| 本地工作流任务 | src/tasks/LocalWorkflowTask/LocalWorkflowTask.ts | Stub — 类型 + 空操作 |
| UI 任务组件 | src/components/tasks/src/tasks/LocalWorkflowTask/ | Stub — 空导出 |
| 详情对话框 | src/components/tasks/WorkflowDetailDialog.ts | Stub — 返回 null |
| 任务注册 | src/tasks.ts | 布线 — 动态加载 |
| 工具注册 | src/tools.ts | 布线 — 包含 bundled 工作流初始化 |
| 命令注册 | src/commands.ts | 布线 — /workflows 命令 |
2.2 预期数据流
2.3 预期工作流 DSL
三、需要补全的内容
| 优先级 | 模块 | 工作量 | 说明 |
|---|---|---|---|
| 1 | WorkflowTool.ts | 大 | Schema 定义 + 多步执行引擎 |
| 2 | bundled/index.js | 中 | 内置工作流定义(initBundledWorkflows) |
| 3 | createWorkflowCommand.ts | 中 | 从文件解析创建命令对象 |
| 4 | LocalWorkflowTask.ts | 大 | 步骤协调、kill/skip/retry |
| 5 | WorkflowDetailDialog.ts | 中 | 进度详情 UI |
| 6 | WorkflowPermissionRequest.ts | 小 | 权限对话框 |
| 7 | constants.ts | 小 | 工具名常量 |
四、关键设计决策
- 基于文件的 DSL:工作流定义为文件(YAML/JSON),版本控制友好
- 多 Agent 步骤:每个步骤是独立的 agent 任务,支持并行/串行
- 内置工作流:
bundled/目录提供开箱即用的常用工作流 - /workflows 命令:统一的发现和触发入口
五、使用方式
六、文件索引
| 文件 | 职责 |
|---|---|
src/tools/WorkflowTool/WorkflowTool.ts | 工具定义(stub) |
src/tools/WorkflowTool/WorkflowPermissionRequest.ts | 权限对话框(stub) |
src/tools/WorkflowTool/constants.ts | 常量(stub) |
src/tools/WorkflowTool/createWorkflowCommand.ts | 命令创建(stub) |
src/tasks/LocalWorkflowTask/LocalWorkflowTask.ts | 任务协调(stub) |
src/components/tasks/WorkflowDetailDialog.ts | 详情对话框(stub) |
src/tools.ts:127-132 | 工具注册 |
src/commands.ts:86-89 | 命令注册 |