Разработка
ветка development
Создавайте, запускайте, отлаживайте и публикуйте изменения workflows с сервисами и credentials разработки.
Публикация разрешена
AI-workflows в production
Запускайте разработку, staging и production в отдельных инстансах Dagu. Продвигайте через Git только проверенные определения workflow, а credentials, workers, историю, правила доступа и маршруты инцидентов храните отдельно в каждом инстансе.
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 для каждого окружения
Продвижение workflows после Git review
Approvals, retries, логи, метрики и трассировки
Slack, PagerDuty и авторизованное восстановление через MCP
Архитектура окружений
Workspace для разработки внутри одного сервера не является границей production. Выделите каждому окружению собственный сервер Dagu, хранилище, credentials, workers и сетевой доступ. Настройте Git Sync каждого инстанса на ветку, одобренную для этого окружения.
ветка development
Создавайте, запускайте, отлаживайте и публикуйте изменения workflows с сервисами и credentials разработки.
Публикация разрешена
ветка staging
Загружайте проверенные определения в изолированный инстанс и проверяйте их со staging-зависимостями.
Git Sync только для чтения
защищенная ветка main
Запускайте только продвинутые ревизии с production credentials, политиками, телеметрией и маршрутизацией инцидентов.
Git Sync только для чтения
Production-контроль
Модель или runtime агента можно заменить без изменения эксплуатационного контракта. Dagu делает окружающий путь выполнения явным, проверяемым и восстанавливаемым.
Храните определения DAG и skills для создания workflows в Git, проверяйте diff и продвигайте известную ревизию между окружениями.
Приостанавливайте workflow после результата агента, собирайте комментарии и разрешайте, отклоняйте или возвращайте работу до production-действия.
Используйте зависимости, таймауты, ограниченные retries, очереди и контроль параллелизма вместо бесконечной prompt-логики.
Запускайте детерминированные тесты, проверки политик и внешние evaluation-команды как обычные шаги до approval или публикации.
Проверяйте историю, логи и artifacts; экспортируйте метрики в Prometheus и трассировки DAG/шагов через OpenTelemetry.
Оповещайте операторов, открывайте инциденты после исчерпания retries и разрешайте авторизованным MCP-клиентам исследовать и восстанавливать runs.
Продвижение через Git
Разработка может публиковать изменения. Для staging и production обычно задают `push_enabled: false`, защищенные ветки и загрузку только проверенных определений. Для staging удобен автоматический pull; production может автоматически читать защищенную ветку или выполнять контролируемый pull после одобрения deployment.
Git Sync отслеживает файлы DAG и skills для создания workflows. Secrets, конфигурация сервера, хранилище, история runs, workers и сетевой доступ остаются локальными для каждого инстанса Dagu.
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-клиентам аутентифицированные операции с workflow.
Workflow или шаг агента завершается с ошибкой, после чего выполняются настроенные retries.
После исчерпания retries Dagu отправляет окончательный сбой в настроенные маршруты Slack.
Маршрутизация PagerDuty может открыть или обновить один дедуплицированный инцидент для сбойного workflow.
Авторизованный MCP-клиент читает run и логи, предварительно проверяет изменение DAG и повторяет или останавливает run через инструменты Dagu.
Последующий успешный run закрывает открытый инцидент, если маршрут провайдера остается идентифицируемым.
Точные границы
Dagu — это слой управления workflow вокруг AI-системы. Ясные границы делают архитектуру безопаснее, а обещание production-ready — полезнее.
| Dagu предоставляет | Граница | |
|---|---|---|
| Изоляция окружений | Независимые серверы, хранилища, credentials, workers, правила доступа и настройки инцидентов плюс Git Sync для определений. | Workspaces и runtime profiles в одном инстансе не заменяют жесткую изоляцию окружений. |
| Наблюдаемость workflow | Статусы runs и шагов, логи, artifacts, история, метрики Prometheus и трассировки DAG/шагов OpenTelemetry. | Трассировки prompts, токены, стоимость и семантическое качество должны измеряться агентом или evaluation-стеком. |
| Evaluation и guardrails | Граф для детерминированных валидаторов, внешних evaluation-команд, approvals и ограниченных retries. | Dagu не определяет, является ли ответ LLM фактически верным или безопасным для конкретной области. |
| Безопасность и реагирование | Аутентифицированные операции, API keys с ограниченным scope, уведомления, MCP-контроль и маршрутизация провайдеров инцидентов. | Audit logging и интеграции инцидентов в self-hosted требуют действующей лицензии или trial; managed Dagu включает их. |
FAQ
Нет, если важна изоляция. Запускайте отдельные инстансы, чтобы credentials, хранилище, workers, сеть, логи и политики не делили одну эксплуатационную границу. Определения продвигайте через Git Sync.
Нет. Git Sync синхронизирует с репозиторием DAG-файлы и skills для создания workflows. Secrets, конфигурация, хранилище, история и workers остаются в каждом инстансе.
Не самостоятельно. Dagu может запустить ваши тесты или evaluation-инструменты как шаги и остановить следующий этап по их результату, но логика оценки принадлежит этим инструментам и экспертам предметной области.
С учетом аутентификации и прав Dagu он может исследовать DAG, runs и логи; предварительно проверять или применять валидные изменения DAG; запускать, ставить в очередь, повторять, останавливать и отслеживать runs.
Следующий шаг
Поместите существующую команду агента в DAG Dagu, проверьте результат, добавьте approval boundary и продвигайте одно проверенное определение через изолированные development, staging и production инстансы.