本番 AI ワークフロー

環境を共有せずに、AI ワークフローを開発から本番へ。

開発、ステージング、本番を別々の Dagu インスタンスで実行します。レビュー済みのワークフロー定義だけを Git で昇格し、認証情報、ワーカー、履歴、アクセス方針、インシデント経路は各インスタンスに分離します。

agent-workflow.yaml
name: release-review

steps:
  - id: collect_context
    run: ./scripts/collect-context.sh
    output: CONTEXT

  - id: draft
    action: harness.run
    with:
      provider: codex
      prompt: |
        Review this release:
        ${steps.collect_context.outputs.CONTEXT}
    retry_policy:
      limit: 2
    approval:
      prompt: Review the agent output before release
      rewind_to: collect_context
    depends: [collect_context]

  - id: publish
    run: ./scripts/publish.sh
    depends: [draft]

環境ごとに独立した Dagu インスタンス

Git レビューを通したワークフロー昇格

承認、リトライ、ログ、メトリクス、トレース

Slack、PagerDuty、認証済み MCP による復旧

環境アーキテクチャ

Git は定義を昇格し、別インスタンスが分離境界を作る。

1 台のサーバー内の開発ワークスペースは、本番の分離境界にはなりません。環境ごとに Dagu サーバー、ストレージ、認証情報、ワーカー、ネットワークアクセスを分け、各インスタンスの Git Sync を承認済みブランチに接続します。

01

開発

development ブランチ

開発用サービスと認証情報でワークフローを作成、実行、デバッグし、変更を公開します。

Publish 有効

Pull Request で昇格
02

ステージング

staging ブランチ

レビュー済み定義を分離されたインスタンスへ取り込み、ステージング依存先に対して検証します。

読み取り専用 Git Sync

Pull Request で昇格
03

本番

保護された main ブランチ

昇格済みリビジョンだけを、本番専用の認証情報、方針、テレメトリ、インシデント経路で実行します。

読み取り専用 Git Sync

本番統制

非決定的な処理を、決定的な統制で囲む。

モデルやエージェントのランタイムを変更しても、運用上の契約は維持できます。Dagu は周囲の実行経路を明示的でレビュー可能、かつ復旧可能にします。

ワークフローを版管理

DAG 定義とワークフロー作成スキルを Git に置き、差分をレビューして既知のリビジョンを環境間で昇格します。

副作用を承認で制御

エージェント出力後に停止してレビュー入力を集め、本番処理の前に承認、却下、または差し戻しを行います。

失敗を有限にする

終わりのないプロンプト制御ではなく、依存関係、タイムアウト、上限付きリトライ、キュー、同時実行制御を使います。

出力を検証

承認や公開の前に、決定的テスト、ポリシーチェック、外部評価コマンドを通常のワークフローステップとして実行します。

実行を観測

履歴、ログ、アーティファクトを確認し、Prometheus にメトリクス、OpenTelemetry に DAG/ステップのトレースを送ります。

復旧を管理

運用担当へ通知し、リトライ終了後にインシデントを起票し、許可された MCP クライアントから調査と復旧を行います。

Git ベースの昇格

本番はローカル編集ではなく Git を取り込む。

開発環境では変更を publish できます。ステージングと本番では通常 `push_enabled: false` を設定し、保護ブランチからレビュー済み定義だけを pull します。ステージングは自動 pull、本番は保護ブランチの自動 pull またはデプロイ承認後の制御された pull を選べます。

Git Sync が追跡するのは DAG ファイルとワークフロー作成スキルです。シークレット、サーバー設定、ストレージ、実行履歴、ワーカー、ネットワークアクセスは各 Dagu インスタンスに残ります。

本番 config.yaml
git_sync:
  enabled: true
  repository: github.com/acme/ai-workflows
  branch: main
  push_enabled: false

  auth:
    type: token
    token: ${GITHUB_TOKEN}

  auto_sync:
    enabled: true
    on_startup: true
    interval: 300

失敗と復旧

エージェントの失敗を、運用プロセスに変える。

Dagu は通常の通知とインシデントのライフサイクル管理を分け、認証されたワークフロー操作を MCP クライアントへ公開します。

  1. 01

    ワークフローまたはエージェントステップが失敗し、設定済みリトライを実行します。

  2. 02

    リトライ上限後、Dagu は最終失敗を設定済み Slack 通知経路へ送ります。

  3. 03

    PagerDuty 経路は、失敗中ワークフローに対する重複排除された 1 件のインシデントを起票または更新できます。

  4. 04

    許可された MCP クライアントが実行とログを読み、DAG 変更をプレビューし、再試行または停止します。

  5. 05

    後続の実行が成功すると、同じプロバイダー経路を識別できる場合に未解決インシデントを解決します。

正確な境界

Dagu が担うことと、他の層が担うこと。

Dagu は AI システムを囲むワークフロー統制層です。境界を明確にすると、構成が安全になり、本番運用という主張も有用になります。

Dagu が提供境界
環境分離独立したサーバー、ストレージ、認証情報、ワーカー、アクセス方針、インシデント設定と、定義用 Git Sync。単一インスタンス内のワークスペースやランタイムプロファイルは、強い環境分離の代替ではありません。
ワークフロー観測性実行・ステップ状態、ログ、アーティファクト、履歴、Prometheus メトリクス、OpenTelemetry の DAG/ステップトレース。プロンプトトレース、トークン・コスト、意味的な出力品質は、エージェントまたは評価スタックで計測する必要があります。
評価とガードレール決定的検証、外部評価コマンド、承認ゲート、上限付きリトライを構成するグラフ。Dagu 自体は、LLM の回答が事実に即しているか、特定領域で安全かを判定しません。
セキュリティとインシデント対応認証済み操作、スコープ付き API キー、通知、MCP 制御、インシデントプロバイダー経路。セルフホストの監査ログとインシデント連携には有効なライセンスまたはトライアルが必要です。マネージド Dagu には含まれます。

FAQ

本番導入前の実務的な質問

開発、ステージング、本番で 1 台の Dagu サーバーを共有すべきですか?

環境分離が必要なら共有しません。認証情報、ストレージ、ワーカー、ネットワーク、ログ、方針を別境界にするため Dagu インスタンスを分け、Git Sync で定義を昇格します。

Git Sync は本番シークレットや実行履歴もコピーしますか?

しません。Git Sync は DAG ファイルとワークフロー作成スキルをリポジトリに合わせます。シークレット、設定、ストレージ、実行履歴、ワーカーは各インスタンスに残ります。

Dagu はエージェント回答の正しさを測れますか?

単体では測れません。決定的テストや評価ツールをステップとして実行し、その結果で次の処理を制御できますが、評価ロジックはツールと領域専門家が担います。

インシデント中に MCP クライアントは何ができますか?

Dagu の認証と権限の範囲で、DAG、実行、ログの確認、検証済み DAG 変更のプレビューまたは適用、実行開始、キュー投入、再試行、停止、追跡ができます。

次の一歩

まず 1 つのエージェントワークフローを本番化する。

既存のエージェントコマンドを Dagu DAG に置き、出力検証と承認境界を追加し、同じレビュー済み定義を分離された開発、ステージング、本番へ昇格します。