Skip to content

Workflow

Workflow 是任务编排的基本单元,具有双重身份

双重身份

身份说明使用方式
CLI 工具命令行直接执行deno run -A workflow.ts --args
可组合模块被其他 Workflow 引用import { workflow } from "./x.workflow.ts"
┌─────────────────────────────────────────────────────────────┐
│                      Workflow                                │
│                                                              │
│   身份一:CLI 工具                                           │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  deno run -A coder.workflow.ts --prompt "..."       │   │
│   │  deno run -A coder.workflow.ts run --prompt "..."   │   │
│   │  deno run -A coder.workflow.ts --help               │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                              │
│   身份二:可组合模块                                         │
│   ┌─────────────────────────────────────────────────────┐   │
│   │  // 被其他 workflow 作为 subflow 引用               │   │
│   │  subflows: [coderWorkflow, researchWorkflow]        │   │
│   │                                                      │   │
│   │  // 被 meta.mcp 聚合,外部 AI 可调用                │   │
│   │  workflow({ name: "coder", args: { prompt: "..." }})│   │
│   └─────────────────────────────────────────────────────┘   │
│                                                              │
└─────────────────────────────────────────────────────────────┘

定义 Workflow

typescript
import { defineWorkflow } from "./shared/base-workflow.ts";

export const workflow = defineWorkflow({
  name: "my-workflow",
  description: "Workflow description",
  version: "1.0.0",

  // 参数定义
  args: {
    prompt: { type: "string", alias: "p", required: true },
    verbose: { type: "boolean", alias: "v", default: false },
    count: { type: "number", alias: "c", default: 10 },
  },

  // 子流程
  subflows: [
    listWorkflow,
    () => import("./add.workflow.ts").then((m) => m.workflow),
  ],

  // 执行逻辑
  handler: async (args, ctx) => {
    console.log(`Running: ${ctx.meta.name}`);
    console.log(`Args: ${JSON.stringify(args)}`);
  },

  // CLI 自动启动
  autoStart: import.meta.main,
});

本章内容

章节内容
驱动模式AI 驱动、编程驱动、多模式
Subflows子流程嵌套和组合
内置 Workflowcoder、research、memory 等