dagu: 一个面向运维自动化和 AI 辅助运维的本地优先工作流引擎
它解决了什么问题
Dagu 是一个本地优先的工作流引擎,专为那些需要自动化运维但又不想承担管理复杂编排平台开销的团队而设计。它通过允许用户将现有的脚本、容器和运行手册(runbooks)转化为具有调度、重试和可视化监控功能的生产级流水线,从而取代了不透明的 cron jobs 和像 Airflow 或 Temporal 这样沉重的框架。
它是如何工作的
工作流使用声明式的 YAML 格式定义为有向无环图(DAGs)。Dagu 以单个二进制文件的形式运行,内置了 Web UI,且不需要外部数据库或消息代理。它可以运行在单机的独立模式下,也可以通过 gRPC 使用协调器(coordinator)和分布式工作节点(workers)进行横向扩展。它支持执行 shell 命令、Docker 容器、Kubernetes Jobs 以及通过 SSH 执行远程命令,并通过内置的 Model Context Protocol (MCP) 服务器和用于运行 coding-agent CLIs 的特定 harness 实现与 AI agent 的集成。
它是面向谁的
它是为运维团队、数据工程师和开发者构建的,这些用户拥有现有的自动化脚本,并希望在不将逻辑重写为特定 SDK 或管理复杂基础设施栈的情况下,增加可观测性、依赖管理和调度功能。
亮点
- Single Binary Installation: 自包含部署,无需外部 DBMS。
- AI Agent Integration: 内置 MCP 服务器和
harness.run操作,用于将 AI coding agents 集成到工作流中。 - Language Agnostic: 通过 shell、Docker 或 Kubernetes 支持任何现有的脚本或工具。
- Human-in-the-loop: 内置审批步骤,用于在自动化流水线中进行人工干预。
- Distributed Scaling: 能够使用标签(labels)将执行任务分散到一组工作节点中。
- Secret Management: 安全的日志脱敏,防止凭据泄露到 UI 或日志中。
Sources
- Repodagucloud/dagu