轻量级工作流引擎

无需引入沉重平台,也能运行生产级工作流。

Dagu 可以把 shell 脚本、容器、SSH 任务、HTTP 调用和 Agent CLI 变成带有重试、日志、队列和 Web UI 的 YAML 工作流。

工作流引擎也可以这么小
name: nightly-ops
schedule: "0 2 * * *"

steps:
  - id: extract
    run: python scripts/extract.py

  - id: transform
    run: ./bin/transform
    retry_policy:
      limit: 3
    depends: [extract]

  - id: notify
    run: ./scripts/slack-success.sh
    depends: [transform]

单一自托管二进制

无需外部数据库或消息代理

适合放进 Git 的可读 YAML

支持本地、队列和分布式执行

At a glance

团队为什么选择 Dagu

部署
Dagu

从单一二进制和本地文件开始。

Typical alternative

常常需要数据库、消息代理、Web 服务和调度器。

工作流形态
Dagu

在 YAML 中调用你已经在运行的命令。

Typical alternative

往往要求改写为特定 SDK 或框架。

落地路径
Dagu

可以从一个脚本逐步开始。

Typical alternative

通常要先做一整类任务的大迁移。

In depth

Where each tool fits

01

非常适合运维中间地带

大多数团队并不需要大型数据平台,他们需要的是依赖顺序、重试、输出采集、历史记录和失败后重跑能力。

  • 无需重写现有脚本即可调度
  • 使用 YAML 定义,代码评审更简单
  • 先从单机开始,需要时再扩展到 workers
02

运行时很小,但控制能力足够

Dagu 保持运行时简单,同时提供任务真正重要时需要的控制能力。

  • 重试、依赖、超时、日志和状态历史
  • 用于检查与手动运行的 Web UI
  • 支持命令、Docker、HTTP、SSH、SubDAG 和 Agent 步骤
03

天然适合 AI Agent 工作

AI Agent 最终也是通过命令运行。Dagu 为这些命令补上调度、依赖、重试和可审计性。

  • 把 Claude、Codex、Gemini 等作为步骤运行
  • 在 Agent 输出前后加入审批和校验
  • 更换模型时无需更换编排层

FAQ

Practical questions before adopting Dagu

为什么说 Dagu 很轻量?

Dagu 以单一自托管二进制运行,把状态存到本地文件中。入门时不需要数据库、消息代理或额外控制平面。

可以直接运行现有脚本吗?

可以。Shell、二进制、Docker、HTTP 和 SSH 等都可以直接作为步骤执行。

它只能跑本地任务吗?

不是。你可以先本地运行,再扩展到队列执行或 coordinator-worker 模式。

Next step

Start with one workflow.

Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.