dagu: 一款用於維運自動化與 AI 輔助維運的 local-first 工作流引擎

它解決了什麼問題

Dagu 是一款 local-first 工作流引擎,專為需要自動化維運但不想承擔管理複雜編排平台之負擔的團隊而設計。它取代了不透明的 cron jobs 以及像 Airflow 或 Temporal 這樣沉重的框架,讓使用者能將現有的腳本、容器和 runbooks 轉換為具備排程、重試機制與視覺化監控功能的生產級 pipeline。

運作原理

工作流使用宣告式的 YAML 格式定義為有向無環圖 (DAGs)。Dagu 以單一二進位檔 (single binary) 的形式運作,內建 Web UI,且不需要外部資料庫或訊息代理 (message broker)。它可以單機以獨立模式執行,也可以透過 gRPC 使用協調器 (coordinator) 與分散式 worker 進行擴展。它支援執行 shell 命令、Docker 容器、Kubernetes Jobs 以及透過 SSH 執行的遠端命令,並透過內建的 Model Context Protocol (MCP) 伺服器與特定的 coding-agent CLI 執行框架,與 AI agent 進行整合。

目標對象

它是為維運團隊、資料工程師與開發者打造的,特別是那些已有現成自動化腳本,並希望在不將邏輯重寫為特定 SDK 或管理複雜基礎設施堆疊的情況下,增加可觀測性、依賴管理與排程功能的人士。

重點特色

  • Single Binary Installation: 自包含式部署,不需要外部 DBMS。
  • AI Agent Integration: 內建 MCP 伺服器與 harness.run action,用於將 AI coding agents 整合進工作流中。
  • Language Agnostic: 透過 shell、Docker 或 Kubernetes,可與任何現有的腳本或工具配合使用。
  • Human-in-the-loop: 在自動化 pipeline 中內建人工審核步驟,以便進行手動干預。
  • Distributed Scaling: 能夠使用標籤 (labels) 將執行任務分散到一群 worker 中。
  • Secret Management: 安全的日誌遮罩功能,防止憑證洩漏至 UI 或日誌中。

Sources