ashb commented on code in PR #1717: URL: https://github.com/apache/airflow-site/pull/1717#discussion_r4454284739
########## landing-pages/site/content/en/blog/airflow-3.4.0/index.md: ########## @@ -0,0 +1,513 @@ +--- +title: "Apache Airflow 3.4.0: Task Loops, Dags in Any Language, and AI Agents" +linkTitle: "Apache Airflow 3.4.0: Task Loops, Dags in Any Language, and AI Agents" +author: "Rahul Vats" +github: "vatsrahul1001" +linkedin: "vats-rahul" +description: "Apache Airflow 3.4.0 introduces bounded Task Loops for iterative workflows, Dag authoring beyond Python (TypeScript, Go, Java, and YAML) on the new AIP-85 Dag Importer, and a maturing common.ai provider for running LLM and agent tasks with built-in human approval." +tags: [Release] +date: "2026-11-04" +images: ["/blog/airflow-3.4.0/images/3.4.0.jpg"] +--- + +We're proud to announce the release of **Apache Airflow 3.4.0**! Where 3.3 gave your *tasks* memory and task bodies in multiple languages, 3.4 is about **shape and reach**. It brings **Task Loops**, a native loop primitive for workflows that repeat until they are done; the ability to author an entire Dag in TypeScript, Go, Java, or YAML rather than only Python; and a steadily maturing `common.ai` provider that turns LLM calls and agents into ordinary Airflow tasks, complete with human approval. + +**🎯 Release Highlights** + +📦 PyPI: https://pypi.org/project/apache-airflow/3.4.0/ \ +📚 Docs: https://airflow.apache.org/docs/apache-airflow/3.4.0/ \ +🛠️ Release Notes: https://airflow.apache.org/docs/apache-airflow/3.4.0/release_notes.html \ +🐳 Docker Image: `docker pull apache/airflow:3.4.0` \ +🚏 Constraints: https://github.com/apache/airflow/tree/constraints-3.4.0 + +# 🔁 Task Loops (AIP-111): Workflows That Repeat Until They Are Done + +Some workflows do not have a fixed shape. You walk a tree of unknown depth, you refine an estimate until the error is small enough, or you run an agentic *generate → score → refine* loop until the output is good. Until now you reached for hard-coding a fixed depth or for Dags that trigger themselves. Airflow 3.4 makes **bounded, sequential iteration** a native concept. + +Call `.loop()` on a decorated task group to repeat it a number of times decided at runtime, where each iteration can build on the result of the last. It behaves like a `do … while` loop with a hard cap: + +```python +from airflow.sdk import dag, task, task_group + + +@dag(schedule=None, catchup=False, tags=["example"]) Review Comment: ```suggestion @dag(tags=["example"]) ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
