Agent SkillsDatus-ai/Datus-agent › airflow-workflow

airflow-workflow

GitHub

Airflow定时任务执行指南,涵盖故障排查、作业更新与删除流程,指导Agent通过API操作调度器及连接配置。

datus/resources/skills/airflow-workflow/SKILL.md Datus-ai/Datus-agent

Trigger Scenarios

排查Airflow作业失败原因 修改或更新现有Airflow作业配置 删除已存在的Airflow作业

Install

npx skills add Datus-ai/Datus-agent --skill airflow-workflow -g -y
More Options

Non-standard path

npx skills add https://github.com/Datus-ai/Datus-agent/tree/main/datus/resources/skills/airflow-workflow -g -y

Use without installing

npx skills use Datus-ai/Datus-agent@airflow-workflow

指定 Agent (Claude Code)

npx skills add Datus-ai/Datus-agent --skill airflow-workflow -a claude-code -g -y

安装 repo 全部 skill

npx skills add Datus-ai/Datus-agent --all -g -y

预览 repo 内 skill

npx skills add Datus-ai/Datus-agent --list

SKILL.md

Frontmatter
{
    "name": "airflow-workflow",
    "tags": [
        "scheduler",
        "airflow",
        "workflow"
    ],
    "version": "1.0.0",
    "description": "Execution guide for Airflow scheduled jobs — troubleshooting, updating, conn_id conventions, and cron references",
    "allowed_agents": [
        "scheduler"
    ],
    "user_invocable": false
}

Airflow Workflow

Execution guide for the scheduler subagent working with Airflow.

Troubleshoot a Failed Job

  1. Check job statusget_scheduler_job(job_id)
  2. List recent runslist_job_runs(job_id, limit=5) to find the failed run
  3. Get error logget_run_log(job_id, run_id) for the failed run_id
  4. Analyze the error — common failure categories:
    • SQL syntax error → fix SQL and update_job()
    • Connection failure → check conn_id in Airflow Connections (Admin > Connections), verify host is reachable from the scheduler worker
    • Timeout → optimize the query or increase resources
    • Permission denied → verify DB credentials in Airflow Connections (Admin > Connections)
  5. Fix and re-run:
    • Update SQL: update_job(job_id, sql_file_path=..., job_name=..., conn_id=...)
    • Manual trigger to verify: trigger_scheduler_job(job_id)
    • Confirm success: list_job_runs(job_id, limit=1)

Update an Existing Job

  1. Check current stateget_scheduler_job(job_id) to see existing config
  2. Pause the jobpause_job(job_id) to prevent runs during update
  3. Write SQL — use write_file or edit_file to save the new SQL under jobs/<job_name>.sql
  4. Updateupdate_job(job_id, sql_file_path=..., job_name=..., conn_id=...)
  5. Resumeresume_job(job_id) to re-enable scheduling
  6. Do not manually trigger after a normal create/update unless the user explicitly asks for an immediate run. Deterministic validation triggers and polls deliverable scheduler jobs after the agent returns the target.

Delete an Existing Job

  1. Confirm with the user — deletion is destructive.
  2. Delete — call delete_job(job_id).
  3. Honor the tool result — if delete_job returns success=0, report the deletion as failed or incomplete. Do not claim completion or success.
  4. Verify only with direct lookup — use get_scheduler_job(job_id) if you need a follow-up check. For Airflow, scheduling deletion is complete when the job is not found or is inactive/deleted.
  5. Do not rely on list outputlist_scheduler_jobs may omit an Airflow DAG after its file is removed even while Airflow metadata still exists and blocks re-creation with the same job id.
  6. Use precise wording for partial cleanup — if metadata still exists but the DAG is inactive/deleted, say scheduling has been removed and metadata cleanup is pending. The same dag_id may not be immediately reusable via submit; use update or retry cleanup if needed.
  7. Use explicit file deletion onlydelete_job owns Airflow DAG file removal. For other files, use a dedicated delete-file tool if one is available; otherwise report that file deletion is unavailable. Do not overwrite or empty files as a substitute for deletion.

DB Connection (conn_id)

submit_sql_job and update_job require conn_id — the Airflow Connection ID for the target database. The connection is managed entirely by Airflow (Admin > Connections) and resolved at runtime by the scheduler worker.

Available conn_id values are shown in the submit_sql_job and update_job tool descriptions (from scheduler.connections in agent.yml).

Naming Conventions

  • job_name: <frequency>_<domain>_<description>, e.g. daily_sales_summary, hourly_order_count
  • SQL file: jobs/<job_name>.sql

Before calling submit_sql_job or update_job, create or update that SQL file with write_file / edit_file. Do not ask the user to create the file when filesystem tools are available.

Common Cron Expressions

Schedule Cron
Every day at 8am 0 8 * * *
Every hour 0 * * * *
Every 2 hours 0 */2 * * *
Monday at 9am 0 9 * * 1
1st of month at midnight 0 0 1 * *

Quick Reference

Goal Tool
Create SQL file write_file(path="jobs/<job_name>.sql", content=...)
Submit SQL job submit_sql_job(job_name, sql_file_path, conn_id)
Submit SparkSQL job submit_sparksql_job(job_name, sql_file_path)
Check job status get_scheduler_job(job_id)
List all jobs list_scheduler_jobs(limit=20)
Trigger manual run trigger_scheduler_job(job_id) only when explicitly requested or troubleshooting
View run history list_job_runs(job_id)
View run log get_run_log(job_id, run_id)
Pause / Resume pause_job(job_id) / resume_job(job_id)
Update job update_job(job_id, sql_file_path, job_name, conn_id)
Delete job delete_job(job_id)

Version History

  • 8fb79f6 Current 2026-08-20 12:33

Same Skill Collection

datus/resources/skills/bi-validation/SKILL.md
datus/resources/skills/create-skill/SKILL.md
datus/resources/skills/create-subagent/SKILL.md
datus/resources/skills/dashboard-bootstrap/SKILL.md
datus/resources/skills/data-migration/SKILL.md
datus/resources/skills/dosi-semantic-authoring/SKILL.md
datus/resources/skills/extract-knowledge/SKILL.md
datus/resources/skills/gen-metrics/SKILL.md
datus/resources/skills/gen-table/SKILL.md
datus/resources/skills/grafana-dashboard/SKILL.md
datus/resources/skills/memory-organization/SKILL.md
datus/resources/skills/metricflow-semantic-authoring/SKILL.md
datus/resources/skills/optimize-skill/SKILL.md
datus/resources/skills/osi-metrics-authoring/SKILL.md
datus/resources/skills/osi-semantic-authoring/SKILL.md
datus/resources/skills/scheduler-validation/SKILL.md
datus/resources/skills/semantic-sql-history-profiler/SKILL.md
datus/resources/skills/session-summarize/SKILL.md
datus/resources/skills/storage-classify/SKILL.md
datus/resources/skills/superset-dashboard/SKILL.md
datus/resources/skills/table-validation/SKILL.md
datus/resources/skills/transfer-reconciliation/SKILL.md
tests/data/skills/report-generator/SKILL.md
tests/data/skills/sql-analysis/SKILL.md
datus/resources/skills/build-kb/SKILL.md
datus/resources/skills/init/SKILL.md
tests/data/skills/sql-optimization/SKILL.md
tests/data/skills/admin-tools/SKILL.md
tests/data/skills/data-profiler/SKILL.md

Metadata

Files
0
Version
8fb79f6
Hash
c6b88373
Indexed
2026-08-20 12:33

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-22 01:29
浙ICP备14020137号-1 $お客様$