轻量级工作流引擎
无需引入沉重平台,也能运行生产级工作流。
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
非常适合运维中间地带
大多数团队并不需要大型数据平台,他们需要的是依赖顺序、重试、输出采集、历史记录和失败后重跑能力。
- 无需重写现有脚本即可调度
- 使用 YAML 定义,代码评审更简单
- 先从单机开始,需要时再扩展到 workers
运行时很小,但控制能力足够
Dagu 保持运行时简单,同时提供任务真正重要时需要的控制能力。
- 重试、依赖、超时、日志和状态历史
- 用于检查与手动运行的 Web UI
- 支持命令、Docker、HTTP、SSH、SubDAG 和 Agent 步骤
天然适合 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.