AI agent
请求已批准的操作,而不接触私有凭证。
Dagu is a lightweight workflow engine that comes with a Web UI. Define any worflows in a simple declarative YAML format. It natively suports shell commands, docker containers, k8s jobs, SSH commands, and more. Self-contained and no DBMS is required.
Dagu专为希望实现强大工作流编排而无需运维负担的开发者而生。
工作流基于文件。单一二进制文件,无需外部数据库或消息代理。支持气隙环境。
Shell脚本、Python作业、SQL、dbt、DuckDB、容器和数据处理手册直接作为流水线步骤运行,无需修改。不需要迁移到新框架。
用简单、声明式的 YAML 格式定义工作流。你可以不做任何修改地使用现有脚本或工具。
Trusted by developers at
AI agent 网关
Dagu 通过 MCP 暴露私有工作流,并提供范围化权限、仅运行时注入的密钥、日志、历史和审计记录。
请求已批准的操作,而不接触私有凭证。
在任何工作流运行前执行细粒度访问控制。
运行你已经信任的脚本、容器、SQL、HTTP、SSH 或子工作流。
生产工具和数据留在 Dagu 后面,而不是进入 agent 上下文。
Agent 不会拿到 shell、数据库或 API 凭证,而是通过 Dagu MCP 请求一个命名的工作流操作。
Dagu 检查访问权限,只在运行时注入密钥,并可让敏感工作流暂停等待人工审批。
每次运行都会保留日志、输出、状态、历史和审计证据,供人和 agent 查看。
只暴露每个 agent 被允许运行的操作。
运行时注入凭证,不向 agent 暴露。
追踪谁或什么运行了每个工作流,以及输入是什么。
高风险操作可暂停等待人工审核。
返回状态和输出,而不开放原始系统访问。
Agent 得到的是有边界的工具。密钥、日志、权限和操作历史都留在 Dagu。
Dagu 为脚本、工具、Runbook 和 AI Agent 补上团队需要的运维层。
在 Web UI 中跟踪工作流、调度、实时状态、日志、运行历史、输出、产物和审批。
运行 shell 命令、Python 脚本、容器、Kubernetes Jobs、SQL 查询、HTTP 请求、SSH 命令等。
在 workflow YAML 中固定工具,让 worker 在执行前安装并缓存预期二进制文件。
在工作流中运行共享 AI Agent,并把工作流作为有边界、可观测的工具暴露给 Agent。
敏感步骤可暂停等待人工审核、确认或介入,然后再继续执行。
让支持 MCP 的 Agent 检查 Dagu 状态、预览变更、编辑工作流并控制运行。
从工作流运行 coding agent 和 agent CLI,同时把日志、审批、密钥和审计历史保留在 Dagu。
把密钥注入工作流运行,并在面向用户、Agent 和聊天工具的日志中屏蔽敏感值。
可用单一二进制、容器、Kubernetes,或托管和混合部署模型运行 Dagu。
用 RBAC、SSO、API keys、工作区控制和审计日志治理工作流访问。
部署模型
运行自托管实例,使用Dagu托管服务器,或将云控制平面与基础设施中的私有工作节点结合使用。
本地
在一台机器上运行 `dagu start-all`,并使用本地文件保存状态。不需要 database、broker 或 platform stack。
自托管
将 Dagu server、workers、secrets、logs 和 execution 保留在自己的环境中。
Dagu
使用由 Dagu 在 GKE isolated gVisor instance 中运营的 dedicated Dagu server。
混合
让 Dagu 运营 server,同时 private workers 运行 Docker、private-network 或 data-local steps。
混合执行
Hybrid 让 Dagu server 保持托管,同时需要你的 network、runtime 或 data 的 execution 仍由你控制。
将重复的工程请求转化为自助服务工作流。业务团队可以独立运行,工程师无需介入。
把现有 shell 脚本、Python 脚本、HTTP 调用和定时任务带入 Dagu,无需重写。
编排 SSH 备份、清理任务、部署脚本、补丁窗口、前置检查和生命周期钩子。
运行 PostgreSQL 或 SQLite 查询、S3 传输、jq 转换、验证步骤和可复用子工作流。
通过托管的Dagu GitHub App,从issue和PR的GitHub事件触发Dagu运行。
组合每一步都能运行 Docker 镜像、Kubernetes Job、shell 命令或验证步骤的工作流。
在 worker 上运行 ffmpeg、缩略图提取、音频归一化、图像处理和其他重计算任务。
在小型设备上运行传感器采集、本地清理、离线同步、健康检查和设备维护任务。
运行任何工具链,通过清晰的上下文和自动重试与故障转移来自动化特定的开发工作流。
把私有脚本、内部 CLI、可复用 actions、固定工具和产物变成其他团队可安全请求或运行的工作流。
tools:
- jqlang/jq@jq-1.7.1
steps:
- id: collect
action: acme/dagu-action-export@v1.4.2
with:
dataset: customers
- id: transform
run: jq '.items[] | {id, email}' ${collect.outputs.path}
stdout:
artifact: reports/customers.json
depends: [collect]
- id: publish
action: outputs.write
with:
values:
report: reports/customers.json
rows: ${collect.outputs.rows}
depends: [transform]
Dagu自动在Web UI中将其渲染为类型化参数输入表单,适合构建自助服务工作流或供非工程师操作使用。
tools:
- jqlang/jq@jq-1.7.1
steps:
- id: inspect
run: jq --version
- id: summarize
action: python-script@v1
with:
input:
rows: [42, 8]
script: |
return {"total": sum(input["rows"])}
Dagu 默认使用 aqua 来准备 tools。
Slack中的AI代理帮助你管理工作流、
调试故障并恢复事故。
Dagu配备了生产级工作流引擎功能。
来自 Dagu GitHub 社区的真实评论。
This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!
@vnghia
Developer
Dagu is really a gem in the open source world! ❤️ What a release — with GitHub Actions as well. Thanks guys.
@borestad
Elk Studios
Dagu is an amazing tool!! It works perfectly now, thank you so much! 💖
@jarnik
Freelance developer
I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.
@vincent067
Developer
Amazing! I did not expect this to be delivered that fast! Multiple schedulers do not compete and the locking mechanism works as expected. Good job!
@jonasban
Developer
I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.
@DarkWiiPlayer
Developer
Awesome, it works like a charm! I second the update of the doc on this one.
@thibmart1
Developer
That's very impressive. The exit code dictionary will make these DAGs even further sophisticated. Once again, very good features. 🫡
@ghansham
Developer
This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!
@vnghia
Developer
Dagu is really a gem in the open source world! ❤️ What a release — with GitHub Actions as well. Thanks guys.
@borestad
Elk Studios
Dagu is an amazing tool!! It works perfectly now, thank you so much! 💖
@jarnik
Freelance developer
I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.
@vincent067
Developer
Amazing! I did not expect this to be delivered that fast! Multiple schedulers do not compete and the locking mechanism works as expected. Good job!
@jonasban
Developer
I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.
@DarkWiiPlayer
Developer
Awesome, it works like a charm! I second the update of the doc on this one.
@thibmart1
Developer
That's very impressive. The exit code dictionary will make these DAGs even further sophisticated. Once again, very good features. 🫡
@ghansham
Developer
This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!
@vnghia
Developer
Dagu is really a gem in the open source world! ❤️ What a release — with GitHub Actions as well. Thanks guys.
@borestad
Elk Studios
Dagu is an amazing tool!! It works perfectly now, thank you so much! 💖
@jarnik
Freelance developer
I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.
@vincent067
Developer
Amazing! I did not expect this to be delivered that fast! Multiple schedulers do not compete and the locking mechanism works as expected. Good job!
@jonasban
Developer
I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.
@DarkWiiPlayer
Developer
Awesome, it works like a charm! I second the update of the doc on this one.
@thibmart1
Developer
That's very impressive. The exit code dictionary will make these DAGs even further sophisticated. Once again, very good features. 🫡
@ghansham
Developer
I love how simple this is now.
@n3storm
Estudio Nexos
Fantastic! Thanks for the quick reply — keep up the great project!
@mitchplze
Developer
Amazing support! Thank you!
@kacamific
Developer
It works perfectly with v2.6.1. Thank you very much for the correction.
@napnap75
Developer
Thanks for the fix. Works great now.
@triole
Developer
As always, appreciate the great work — just sharing feedback to help shape the roadmap.
@jonnochoo
Developer
it's awesome you keep working on it 👍
@fishnux
Developer
Thank you so much for the quick fix! I tested it, and it now correctly stores the files where it should.
@IngwiePhoenix
Developer
I love how simple this is now.
@n3storm
Estudio Nexos
Fantastic! Thanks for the quick reply — keep up the great project!
@mitchplze
Developer
Amazing support! Thank you!
@kacamific
Developer
It works perfectly with v2.6.1. Thank you very much for the correction.
@napnap75
Developer
Thanks for the fix. Works great now.
@triole
Developer
As always, appreciate the great work — just sharing feedback to help shape the roadmap.
@jonnochoo
Developer
it's awesome you keep working on it 👍
@fishnux
Developer
Thank you so much for the quick fix! I tested it, and it now correctly stores the files where it should.
@IngwiePhoenix
Developer
I love how simple this is now.
@n3storm
Estudio Nexos
Fantastic! Thanks for the quick reply — keep up the great project!
@mitchplze
Developer
Amazing support! Thank you!
@kacamific
Developer
It works perfectly with v2.6.1. Thank you very much for the correction.
@napnap75
Developer
Thanks for the fix. Works great now.
@triole
Developer
As always, appreciate the great work — just sharing feedback to help shape the roadmap.
@jonnochoo
Developer
it's awesome you keep working on it 👍
@fishnux
Developer
Thank you so much for the quick fix! I tested it, and it now correctly stores the files where it should.
@IngwiePhoenix
Developer
先用引导式安装器安装 Dagu,再继续查看完整安装指南或快速开始文档。
脚本安装器是最推荐的方式。Homebrew、npm 和 Docker 也可用,但它们只提供二进制或容器安装。
解决方案伙伴
对于把 Dagu 嵌入客户产品、内部平台或托管服务的团队,我们提供企业功能和实际集成支持。
我们帮助伙伴设计安全模型、集成路径和运营计划,让 Dagu 能干净地融入客户项目,而不需要授予宽泛的生产访问权限。