自动化与运维 workflow-orchestrationyaml-workflowscron-schedulingdurable-executionhuman-in-the-loopdistributed-workersmcp-servercontainer-automation

Dagu 工作流编排器

用单个自托管程序和 YAML 为现有脚本、容器及智能体任务添加调度、重试与审批。

FollowAgents 评估 · FARS-2.1
谨慎使用
74/ 100 五分制 3.7 / 5
1 2 3 4 5 6
1信任安全17 / 29 · 2.9/5

最小权限方面,Chart CI 明确把令牌限制为只读,Helm 配置支持专用 ServiceAccount、RBAC、SSO 与既有 Secret;但产品本身可执行本地 Shell、SSH、容器、Kubernetes 和 MCP 操作,未见统一的运行时沙箱或逐项权限模型,故为 2。用户确认有 human.task、approval 和变更预览/应用流程,但并非所有高影响命令强制确认,故为 2。README 较清楚地说明本地文件、HTTP/MCP、gRPC worker、第三方 Action、外部代理及凭据所在位置的数据流,但未提供完整网络目的地或遥测清单,故为 2。敏感数据处理声明了 Secret provider 和日志遮蔽,Helm 也引用既有 Secret,安全报告指南要求脱敏;然而缺少实现代码、加密细节和默认暴露策略证据,故为 2。依赖有明确版本,GitHub Actions 固定到提交,工具还支持 SHA-256 固定;但依赖面很大,安装示例直接管道执行远程脚本,aqua registry 默认自动跟随最新版本,未见漏洞扫描或供应链政策,故为 2。外部效果通过命令、SSH、Issue 发布、启动/停止运行等示例明确呈现,并提供审批机制,但任意命令和 MCP 执行仍可能产生广泛效果,故为 2。重试、停止、历史记录、退出清理和部分结果复用有助恢复,但没有通用事务回滚或撤销保证,故回滚为 1。仓库模块名、安全联系地址及个别源码版权标头提供有限归属线索,但未验证发布者身份,也未见完整维护者清单,故来源归属为 1。

2可靠稳定9 / 14 · 3.2/5

README、Helm CI、依赖清单和测试钩子对单机/分布式、健康端点、认证与部署模式形成基本一致的描述;但吞吐量、耐久执行和可复现性等较强主张没有基准或实现证据,故自洽性为 2。工具固定、缓存、控制器模型故障转移和多种安装方式改善依赖可用性;但运行仍依赖外部注册表、CLI、云 SDK 和众多传递依赖,离线可用性未被完整证明,故为 2。CI 包含明确的错误消息和失败断言,工作流支持重试、continue_on、失败处理器与状态日志;但未提供核心运行时错误实现或用户错误目录,故失败消息为 2。

3适用触发16 / 18 · 4.4/5

目标用户、ETL、运维、媒体、支持、边缘、容器和代理工作流均有具体场景和示例,因此受众与场景为 3。README 清楚区分单机、分布式、无界面、build-local、外部工具和商业功能边界,但任意命令、MCP 与模型控制器的安全边界仍不够完整,故能力边界为 2。Cron、重叠策略、补跑窗口、依赖、事件、参数、审批和显式启动方式使触发语义具体,故触发精度为 3。Linux、macOS、Windows、Docker、Helm、Kubernetes、SSH、隔离网及分布式 worker 均有适配说明,且 Helm CI 覆盖多种配置,故环境适配为 3。

4规范维护15 / 18 · 4.2/5

README 从定位、架构、部署到参数和示例层次清楚,并链接 CLI、API 和专题文档,信息架构为 3。安装覆盖脚本、Homebrew、npm、Docker、Helm、服务向导和 RWX 要求,故安装说明为 3。主要 YAML 名称与 action 引用较一致且 Action 可版本化,但示例混用 id/name,第三方 v1 引用未必不可变,故命名稳定性为 2。示例非常丰富并覆盖常见操作,虽未提供独立 FAQ,仍足以达到 3。明确指出 build workflow 仅本地运行、容量依环境而定、旧版本不受支持及部署责任,但缺少系统化限制/风险清单,故已知限制为 2。仓库提供完整 GPL-3.0 文本且源码有 SPDX 标识,故许可证为 3。Chart CI 强制版本递增,安全政策说明支持版本,依赖也版本化;但未提供实际 changelog 或总体发布规则,故版本与变更日志为 2。安全邮箱、响应时限、披露流程和发布工作流体现维护路径,但发布者未经验证且缺少维护者/治理信息,故维护责任为 2。

5有效结果12 / 13 · 4.6/5

Web UI、逐步日志、运行历史、状态、结构化输出和 artifact 流程让产物可直接检查和传递,故输出可用性为 3。相对于 cron,产品把依赖、重试、审批、调度和可观察性加到既有脚本而无需改写业务逻辑,证据中的边际价值清晰,故为 3。单二进制和无外部数据库降低部署成本,并提供多种部署方式;但吞吐和运营成本主张未经执行验证,分布式依赖及部分 RBAC/SSO 功能涉及授权层级,故成本收益为 2。

6证据核验5 / 8 · 3.1/5

多数功能主张配有具体 YAML、架构图、安装命令或配置名称,但性能、安全性、耐久性和可复现性等主张缺少相应实现或测量材料,故主张可追溯性为 2。README 的部分部署、安全与版本声明可由 Helm CI、SECURITY.md、go.mod、测试钩子和许可证交叉支持,但未提供核心执行代码或完整测试套件,故跨来源佐证为 2。材料会注明容量依赖环境、build 目前仅本地以及 registry 自动取最新等条件,事实与推断有一定分离;但仍有若干营销性结论未明确标注为未经验证,故为 2。

证据充分度: 评估于 2026年8月14日 审查版本 585a6f008d2a
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 该系统可执行任意本地命令、SSH、容器、Kubernetes 任务及 MCP 操作;在启用代理控制或远程访问前,应使用低权限账户、网络隔离、命令白名单和强制审批。
  • README 的 Secret 遮蔽、RBAC、SSO、审计和可复现性主张未由所给核心实现代码验证;尤其应确认哪些功能属于商业自托管授权以及社区版默认值。
  • 安装说明包含将远程脚本直接管道给 shell/PowerShell,工具解析还可跟随最新 aqua registry;生产安装应固定修订、校验签名或哈希并审查脚本。
  • 第三方 Actions、外部代理 CLI、模型提供商和自动下载工具扩大了供应链及数据外流面;应逐项固定版本并审查网络目的地和凭据范围。
  • 未见通用事务回滚机制;会修改远端系统的工作流应自带补偿步骤、备份、幂等设计和演练过的恢复程序。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Dagu 是面向运维自动化和 AI 辅助操作的本地优先工作流引擎,适合不希望为编排另建复杂平台的团队。它通过声明式 YAML 定义 DAG,并直接运行 shell 脚本、Docker 容器、Kubernetes Job、SSH 命令、SQL、HTTP 请求、子工作流和外部编码智能体 CLI。单个二进制程序内置 Web UI、HTTP API、调度器、执行器和 MCP 服务器,状态、队列、日志及运行历史保存在本地文件中,不依赖外部数据库或消息代理。工作流可获得依赖控制、定时执行、重试、并发限制、人工审批、密钥遮蔽、通知、制品和 Prometheus 指标。部署范围从 Linux、macOS 或 Windows 上的单机进程延伸到基于 gRPC 协调器和带标签工作节点的分布式执行,也可用于本地、内网、隔离环境、边缘或云端。需要注意的是,部分团队治理能力属于自托管许可功能,而控制器工作流和编码智能体步骤仍依赖所选模型服务或外部 CLI。

Dagu 读取 YAML DAG,解析参数、步骤依赖、计划、重试策略、审批、生命周期处理器和执行位置,然后由 dagu start 或调度器创建运行。步骤可以通过 run: 执行现有命令和脚本,或调用 docker.runkubernetes.runssh.runhttp.request、数据库、S3、文件、制品、状态及 dag.run 等结构化 Action。harness.run 可启动 Codex、Claude Code、Gemini CLI、Pi、OpenCode 等外部编码智能体 CLI;type: controller 工作流则让配置的模型从动作目录中选择下一步,并以 tasks 判断完成条件。运行产生逐步骤 stdout/stderr、状态、历史记录和任意文件制品,操作员可以在 Web UI 中查看、重试、停止运行或完成人工任务。内置 MCP 端点 /mcp 通过 dagu_readdagu_changedagu_execute 让兼容客户端读取状态与 Wiki、预览或应用变更,以及启动、排队、重试或停止运行。分布式模式下,调度器写入文件队列,协调器通过 gRPC 分派任务,工作节点按标签拉取、执行并回报状态与日志。

  1. 已有提取脚本、SQL、dbt 命令和加载程序的数据团队,可用 YAML 把它们连接成带依赖、重试和运行历史的 ETL 流程。
  2. 依赖 cron 和 Bash 运维脚本的平台团队,可在不改写脚本的情况下增加计划、并发控制、日志、失败通知和人工审批。
  3. 管理私有服务器或隔离网络的运维人员,可通过 SSH 执行诊断、部署、健康检查与重启,并把结果集中保存在自托管实例中。
  4. 需要批量转码或容器任务的媒体与基础设施团队,可并行运行 FFmpeg、Docker 容器或 Kubernetes Job,并用分布式工作节点扩展执行。
  5. 希望让支持人员安全运行标准操作的内部工具团队,可通过带类型参数的 Web 表单、角色权限和人工任务提供经批准的诊断或修复流程。
  6. 需要周期性代码审查或 AI 辅助运维的团队,可用 harness.run 调用编码智能体,将报告保存为制品,并在发布或变更前暂停等待人工批准。

这个 Agent 有哪些优点和局限?

优点
  • 单个跨平台二进制程序集成 UI、调度与执行,并使用文件存储状态,因此基础单机部署不需要 PostgreSQL、Redis、消息代理或 Python 运行时。
  • 工作流结构留在 YAML 中,现有脚本和工具无需导入 Dagu SDK;删除 YAML 后原脚本仍可独立运行。
  • 执行面覆盖本地命令、Docker、Kubernetes、SSH、HTTP、SQL、S3、子 DAG、人工任务和多种编码智能体 CLI。
  • 同时提供 Web UI、CLI、HTTP API、内置 MCP、运行制品、逐步骤日志和 Prometheus 指标,既方便人工操作也便于外部自动化。
  • 可以从单机扩展到带标签路由的协调器/工作节点模式,并提供队列、资源限制、重叠策略、补跑和僵尸运行检测。
局限
  • 文件式状态和队列需要团队自行规划持久化、备份、共享存储与主机容量;实际吞吐量取决于 CPU、内存、磁盘和工作流形态。
  • 增量复用的 build 工作流目前只能在本地运行,不能直接利用分布式工作节点。
  • SSO、RBAC、审计日志和事故 SaaS 集成属于自托管许可增强功能;社区自托管版不包含全部团队治理能力。
  • AI 控制器依赖所选模型提供商的网络和 API 密钥,harness.run 也要求另行安装并认证对应的编码智能体 CLI。
  • 分布式部署引入协调器、gRPC、工作节点、标签路由和对等 TLS配置;Helm 持久化还要求支持 ReadWriteMany 的 StorageClass。
  • 项目采用 GPL-3.0,嵌入其他产品前需要评估其许可要求;嵌入式 Go API仍标记为实验性,接口可能变化。

如何安装或部署这个 Agent?

macOS 或 Linux 可运行:curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash。也可使用 brew install dagu,或在已安装 npm 的环境执行 npm install -g --ignore-scripts=false @dagucloud/dagu。Windows PowerShell 可运行:irm https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.ps1 | iex。Docker 部署命令为:docker run --rm -v ~/.dagu:/var/lib/dagu -p 8080:8080 ghcr.io/dagucloud/dagu:latest dagu start-all。Helm 部署依次运行 helm repo add dagu https://dagucloud.github.io/daguhelm repo updatehelm install dagu dagu/dagu --set persistence.storageClass=<your-rwx-storage-class>,其中 StorageClass 必须支持 ReadWriteMany。脚本安装器可引导配置 PATH、后台服务和首个管理员;简单本地 CLI 运行不需要模型凭据,使用控制器或外部智能体时则需安装相应 CLI并配置其凭据,例如 Anthropic 控制器使用 ANTHROPIC_API_KEY

如何使用这个 Agent?

创建 hello.yaml,内容为 steps:\n - id: hello\n run: echo "hello from Dagu",然后执行 dagu start hello.yaml。若要启动 Web UI 和调度服务,执行 dagu start-all --dags .,再访问 http://localhost:8080。运行中的 HTTP 服务同时暴露 http://localhost:8080/mcp,可将这个 Streamable HTTP 地址配置给支持 MCP 的聊天或编码客户端。生产工作流可在 YAML 中加入 scheduledependsretry_policyapprovalsecretshandler_on;提交前可运行 dagu validate <dag>dagu dry <dag>。常用运维命令包括 dagu status <dag>dagu history <dag>dagu retry --run-id=<run-id> <dag>dagu stop <dag>dagu enqueue <dag>

这个 Agent 与同类方案有什么区别?

与 cron 相比,Dagu 增加依赖图、重试、历史记录、日志、审批和 Web UI。与 Airflow 相比,它不要求维护调度器、元数据数据库、工作节点和 Python 环境的整套平台,也不要求把任务改写成 @dag/@task 代码。与 Temporal 相比,Dagu 把顺序、依赖、重试和计划保留在 YAML 配置中,现有业务脚本不必迁入专用 SDK 和编程模型;相应地,它的核心抽象是外部任务编排,而不是要求业务逻辑采用工作流 SDK。

常见问题

基础自托管是否需要购买许可证?
社区自托管不需要许可证密钥。SSO、RBAC、审计日志和事故 SaaS 集成属于额外的自托管许可功能。
Dagu 必须连接云端或外部数据库吗?
基础引擎不需要外部数据库或消息代理,状态、日志和队列可保存在本地文件中,也可部署在隔离环境。调用远程 API、容器仓库、Git、MCP 客户端或模型服务的具体步骤仍可能需要网络。
如何限制谁能编辑或运行工作流?
builtin 认证模式提供 admin、manager、developer、operator 和 viewer 五种角色,也支持独立角色的 API key;OIDC/SSO、RBAC 和审计能力与许可配置有关。
任务失败或调度器停机后会怎样?
可配置逐步骤重试、退出码过滤、失败处理器和通知。重叠策略决定跳过、全部排队或仅保留最新运行,catch-up 窗口可补执行调度器停机期间错过的计划,僵尸检测用于识别停滞运行。
运行 AI 工作流是否绑定某一家模型服务?
不是。Dagu 可通过 MCP 与多种客户端连接,harness.run 支持多种外部编码智能体 CLI,控制器还支持模型数组故障转移;但每种提供商或 CLI 的安装、凭据和模型可用性仍需单独配置。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents