+1 I like the idea. I think this can expand Apache Airflow usage in different areas. It can enable lots of different possibilities via orchestrating the business workflows.
On Wed, 21 May 2025, 16:43 Jarek Potiuk, <ja...@potiuk.com> wrote: > +1. Sounds pretty useful to have it in Airflow. > > On Wed, May 21, 2025 at 4:24 PM Vincent Beck <vincb...@apache.org> wrote: > > > +1 as well. I can see this feature useful in many different cases (and > not > > only AI/ML related in my opinion). Happy to read the AIP and give > feedbacks > > :) > > > > On 2025/05/21 07:37:01 Tom Rutter wrote: > > > +1 here!. As part of our Airflow deployment, we have built a layer on > top > > > to do review/approve and branching. It would be great for more of this > to > > > be standardised (and managed in the community by developers who are > more > > > skilled than me!). > > > > > > On Wed, 21 May 2025 at 09:12, Ankit Chaurasia <sunank...@gmail.com> > > wrote: > > > > > > > +1 for this. From an ML/LLM-Ops standpoint, the introduction of a > > "human in > > > > the loop" operator appears exceptionally valuable. I can envision > this > > > > operator being effectively integrated into ML pipelines, allowing for > > > > dynamic adjustments to model training parameters based on user > feedback > > > > received during the workflow execution. > > > > > > > > Furthermore, the utility of such an operator extends beyond ML > > > > applications. There are numerous use cases within standard data and > > > > infrastructure workflows where this functionality could be > beneficial, > > such > > > > as implementing data quality overrides, securing compliance > sign-offs, > > or > > > > even pausing incident response pipelines for human intervention. > > > > > > > > Best regards, > > > > *Ankit Chaurasia* > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Wed, May 21, 2025 at 12:42 PM Aritra Basu < > aritrabasu1...@gmail.com > > > > > > > wrote: > > > > > > > > > I'm +0 for it, I like the broad strokes of the idea but actual > > experience > > > > > will very much depend on how we implement it. > > > > > > > > > > I do very much agree for it to have api support and if it would be > > good > > > > if > > > > > we can design it with some thought to what future extensions might > be > > > > > needed on this feature. > > > > > -- > > > > > Regards, > > > > > Aritra Basu > > > > > > > > > > On Wed, 21 May 2025, 11:51 am Amogh Desai, < > amoghdesai....@gmail.com > > > > > > > > wrote: > > > > > > > > > > > I really like the idea and see it to be a window for some AI use > > cases > > > > to > > > > > > be onboarded with > > > > > > the orchestration capabilities of Airflow. > > > > > > > > > > > > I also concur with what Jens mentioned, it should be an opt-in / > > > > opt-out > > > > > > feature without > > > > > > impacting how Airflow works with schedule today. > > > > > > > > > > > > As I see it, it's a special case of "event" driven scheduling > > where the > > > > > > "event" is a human input. > > > > > > We should clearly define what happens to the task or the dag run > > if the > > > > > > human responsible for > > > > > > the input doesn't respond in a timely manner. Either escalate, > > fail, or > > > > > > make an educated guess > > > > > > would be some of the thoughts I have in mind. > > > > > > > > > > > > I really like the idea and the inputs from others here and I > would > > love > > > > > to > > > > > > join the party for this. > > > > > > > > > > > > Thanks & Regards, > > > > > > Amogh Desai > > > > > > > > > > > > > > > > > > On Wed, May 21, 2025 at 10:07 AM Avi <a...@astronomer.io.invalid> > > > > wrote: > > > > > > > > > > > > > +1 for the opt-in feature. Can clearly see the need for this to > > > > exist. > > > > > > And > > > > > > > for both UI and APIs. +1 with Julian's idea of Dags waiting for > > > > input. > > > > > > > > > > > > > > Thanks, > > > > > > > - Avi > > > > > > > > > > > > > > On Wed, May 21, 2025 at 3:42 AM Kalyan Reddy < > kaly...@apache.org > > > > > > > > wrote: > > > > > > > > > > > > > > > I'm +1 on the idea. There should probably be notifications > when > > > > > > approval > > > > > > > > is needed to continue a task. Additionally, a dashboard would > > be > > > > > > helpful > > > > > > > > for viewing the tasks awaiting my approval. It kind of makes > me > > > > > > remember > > > > > > > > approval gates on Azure DevOps pipelines. Even integrations > to > > > > > > > > Slack/PagerDuty to get alerts and approve/deny externally > sound > > > > > > > > interesting. > > > > > > > > > > > > > > > > Thanks, > > > > > > > > Kalyan R > > > > > > > > > > > > > > > > On 2025/05/21 02:07:55 Wei Lee wrote: > > > > > > > > > I like this idea. As Jens mentioned, this should be an > opt-in > > > > > > feature, > > > > > > > > and starting with providers seems reasonable. After that, we > > could > > > > > > > probably > > > > > > > > get feedback from users and see how we could improve UI/UX. > > > > > > > > > > > > > > > > > > Best, > > > > > > > > > Wei > > > > > > > > > > > > > > > > > > > On May 21, 2025, at 5:36 AM, Jens Scheffler > > > > > > > <j_scheff...@gmx.de.INVALID> > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > Hi All, > > > > > > > > > > > > > > > > > > > > oh I am a bit "envy" on receiving the email because I am > > > > thinking > > > > > > > > about EXACTLY the same propsal but did not file an AIP to > > discuss > > > > > about > > > > > > > > this... as a matter of personal capacity and I wanted to > > finish off > > > > > > > > existing obligations before dropping new ideas. > > > > > > > > > > > > > > > > > > > > The very same idea for me was called "Human Interaction" > > > > provider > > > > > > > > package (maybe shot name "apache-airflow-providers-human" > with > > a > > > > set > > > > > of > > > > > > > > operators/sensors to be integrated in a DAG (if needed) to > > > > > > Approve/Rejct > > > > > > > > ==ShortCircuit Operator, an Operator to select by Human as a > > > > > > > > "HumanBranchOprator" and also if data is missing allowing to > > > > request > > > > > > more > > > > > > > > data with the TriggerForm component. > > > > > > > > > > > > > > > > > > > > So nobody is forcing to have this but it can be easily a > > > > provider > > > > > > > > package w/o need to change main parts in core. Everybod is > > free to > > > > > > decide > > > > > > > > whether it is a good thing to "block" (with a sensor) a > > workflow to > > > > > > > approve > > > > > > > > - for example you make a Terraform Plan and sombody need to > > double > > > > > > check > > > > > > > > before you Terraform Apply. Maybe you run an AI traning set > > and if > > > > > the > > > > > > > > threshold of data is exceeded somebody need to approve > budget. > > Or > > > > you > > > > > > > build > > > > > > > > an AI model and based on the metrics somebody need to approve > > > > > > deployment. > > > > > > > > Many cases possible. > > > > > > > > > > > > > > > > > > > > I was also a bit reluctant to push this topic now > > (myself... > > > > but > > > > > > now > > > > > > > > the idea is un-bottled :-D) bcause I assume AIP-68 would need > > to be > > > > > > > > implemented first with allowing the UI to extnd with UI > > widgets in > > > > > > React > > > > > > > > allowing the human forms being seamlessly integrated in the > > new UI. > > > > > So > > > > > > I > > > > > > > > see AIP-68 as a dependency. > > > > > > > > > > > > > > > > > > > > I think it might be good to document details on an AIP to > > align > > > > > > idas > > > > > > > > and scope. Would like to join the party. (with my currentl > > limited > > > > > > > capacity > > > > > > > > that aims to complete more tasks than opening more) > > > > > > > > > > > > > > > > > > > > Jens > > > > > > > > > > > > > > > > > > > > On 20.05.25 22:02, Constance Martineau wrote: > > > > > > > > > >> I like the idea! We built something similar where a task > > would > > > > > > send > > > > > > > an > > > > > > > > > >> email with a report attached (Excel, of course). The > user > > had > > > > to > > > > > > > > either > > > > > > > > > >> approve the report or flag an issue. If they didn't > > respond > > > > in 2 > > > > > > > > hours, it > > > > > > > > > >> escalated to a backup, then to the department lead. If > no > > one > > > > > > > > responded, > > > > > > > > > >> the DAG failed. It was pretty effective for > > business-critical > > > > > > > > approvals, > > > > > > > > > >> and we had clear timeouts and fallback logic. > > > > > > > > > >> > > > > > > > > > >> That said, I think this pattern works best when it's > used > > > > > > sparingly > > > > > > > > and > > > > > > > > > >> with good defaults. Echoing Alexander, human input is > > > > inherently > > > > > > > > > >> unreliable, but sometimes you really do it, whether it's > > for > > > > > > > > validating a > > > > > > > > > >> data quality issue, resolving a content flag, or signing > > off > > > > on > > > > > > > > something > > > > > > > > > >> before moving forward. I don't think that breaks the > > Airflow > > > > > model > > > > > > > as > > > > > > > > long > > > > > > > > > >> as: > > > > > > > > > >> > > > > > > > > > >> - You can define what happens if no one responds > > (timeout, > > > > > > fail, > > > > > > > > > >> escalate, etc.) > > > > > > > > > >> - There's an API so you're not forcing people into > the > > UI > > > > > > > > > >> - There's a centralized view of all "waiting for > input" > > > > tasks > > > > > > to > > > > > > > > avoid > > > > > > > > > >> hunting them down > > > > > > > > > >> > > > > > > > > > >> It shouldn't become a crutch for manual processes, but > I'd > > > > love > > > > > to > > > > > > > see > > > > > > > > > >> first-class support for this kind of interaction. It > > > > definitely > > > > > > > comes > > > > > > > > up in > > > > > > > > > >> the wild. > > > > > > > > > >> > > > > > > > > > >> On Tue, May 20, 2025 at 3:46 PM Alexander Shorin < > > > > > > kxe...@apache.org > > > > > > > > > > > > > > > > wrote: > > > > > > > > > >> > > > > > > > > > >>> While this is an understandable idea, I think it's > wrong > > to > > > > > > involve > > > > > > > > humans > > > > > > > > > >>> to take a part into Airflow workflow. > > > > > > > > > >>> Run with parameters. Read the logs. Retry. > > > > > > > > > >>> Blocking the whole pipeline could not be acceptable: > > humans > > > > are > > > > > > not > > > > > > > > stable > > > > > > > > > >>> resource for input, they may be sick or on vacation and > > who > > > > > will > > > > > > be > > > > > > > > > >>> operator for this branch? > > > > > > > > > >>> Better strategy to collect metrics and logs and do > > > > post-review > > > > > of > > > > > > > > tasks > > > > > > > > > >>> results. > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > > >>> -- > > > > > > > > > >>> ,,,^..^,,, > > > > > > > > > >>> > > > > > > > > > >>> On Tue, May 20, 2025 at 10:15 PM Vikram Koka > > > > > > > > <vik...@astronomer.io.invalid > > > > > > > > > >>> wrote: > > > > > > > > > >>> > > > > > > > > > >>>> Hey everyone, > > > > > > > > > >>>> > > > > > > > > > >>>> This is a small technical change, but conceptually it > is > > > > > > > > significant and > > > > > > > > > >>>> therefore bringing it to the devlist. > > > > > > > > > >>>> > > > > > > > > > >>>> As we have been having conversations with Airflow > > users, who > > > > > are > > > > > > > > using > > > > > > > > > >>>> Airflow for Gen AI applications, there are a couple of > > > > > features > > > > > > > > that have > > > > > > > > > >>>> been brought up as being desirable. As context, based > > on the > > > > > > most > > > > > > > > recent > > > > > > > > > >>>> Airflow survey, over 8% of Airflow users are now using > > > > Airflow > > > > > > for > > > > > > > > Gen AI > > > > > > > > > >>>> use cases. > > > > > > > > > >>>> > > > > > > > > > >>>> One of the desired features is to have "human > > interaction" > > > > > > within > > > > > > > > the > > > > > > > > > >>>> context of the overall orchestration flow. Here are > the > > most > > > > > > > common > > > > > > > > > >>> flows: > > > > > > > > > >>>> 1. Choose a branch in the workflow: This is like a > > "human > > > > > > > branch > > > > > > > > > >>>> operator", where the human gets to pick one of the > > paths > > > > to > > > > > > > move > > > > > > > > > >>>> forward. > > > > > > > > > >>>> This is a common pattern for business use cases > such > > as > > > > > > content > > > > > > > > > >>>> moderation, > > > > > > > > > >>>> when the automated sentiment analysis is unsure if > > the > > > > > > content > > > > > > > is > > > > > > > > > >>>> "appropriate" and requires human judgement. > > > > > > > > > >>>> 2. Approve / Reject: This is a specialized form of > > the > > > > > above, > > > > > > > > where > > > > > > > > > >>> the > > > > > > > > > >>>> human approves or rejects the output from the prior > > > > tasks, > > > > > > > > thereby > > > > > > > > > >>>> triggering a different branch in the flow. > > > > > > > > > >>>> 3. Provide input: The human is expected to provide > > > > textual > > > > > > > input, > > > > > > > > > >>> which > > > > > > > > > >>>> can then be used for subsequent steps. This is > > intended > > > > to > > > > > be > > > > > > > > used > > > > > > > > > >>>> within > > > > > > > > > >>>> LLM workflows, where a human supplied context / > > guidance > > > > > may > > > > > > be > > > > > > > > > >>>> critical. > > > > > > > > > >>>> > > > > > > > > > >>>> All of these above operations are expected to be > > performed > > > > > > through > > > > > > > > the > > > > > > > > > >>>> Airflow UI. > > > > > > > > > >>>> > > > > > > > > > >>>> 4. A distinct variation of the above could be an API > > > > > interaction > > > > > > > > for the > > > > > > > > > >>>> above workflows without using the UI. > > > > > > > > > >>>> > > > > > > > > > >>>> > > > > > > > > > >>>> Technical notes: > > > > > > > > > >>>> a. While the above tasks are being run (or rather > > waiting > > > > for > > > > > > > human > > > > > > > > > >>> input), > > > > > > > > > >>>> the DAG will be treated as a continued DAG run. > > > > > > > > > >>>> > > > > > > > > > >>>> b. The Airflow UI for these tasks would be a standard > UI > > > > form > > > > > > > > similar to > > > > > > > > > >>>> the Trigger DAG form. > > > > > > > > > >>>> For flows (1) and (2) above, this would be populated > > based > > > > on > > > > > > the > > > > > > > > > >>> follow-on > > > > > > > > > >>>> task options. > > > > > > > > > >>>> For flow (3) above, this would be a UI form similar to > > DAG > > > > > > params. > > > > > > > > > >>>> > > > > > > > > > >>>> c. Each of the above operations will be treated as a > > "task". > > > > > > > > > >>>> The task state while waiting for human input will > > probably > > > > be > > > > > a > > > > > > > > variation > > > > > > > > > >>>> of the "deferred task state". TBD as we get closer to > > > > > > > > implementation. > > > > > > > > > >>>> For flow (3), the input data will be passed using XCom > > to > > > > > > > subsequent > > > > > > > > > >>> tasks. > > > > > > > > > >>>> > > > > > > > > > >>>> As detailed above, the technical changes are fairly > > small. > > > > Any > > > > > > > > feedback > > > > > > > > > >>> is > > > > > > > > > >>>> welcome. > > > > > > > > > >>>> > > > > > > > > > >>>> Best regards, > > > > > > > > > >>>> Vikram > > > > > > > > > >>>> -- > > > > > > > > > >>>> > > > > > > > > > >>>> Vikram Koka > > > > > > > > > >>>> Chief Strategy Officer > > > > > > > > > >>>> Email: vik...@astronomer.io > > > > > > > > > >>>> > > > > > > > > > >>>> > > > > > > > > > >>>> <https://www.astronomer.io/> > > > > > > > > > >>>> > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > > > To unsubscribe, e-mail: > dev-unsubscr...@airflow.apache.org > > > > > > > > > > For additional commands, e-mail: > > dev-h...@airflow.apache.org > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > > To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org > > > > > > > > > For additional commands, e-mail: > dev-h...@airflow.apache.org > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org > > > > > > > > For additional commands, e-mail: dev-h...@airflow.apache.org > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org > > For additional commands, e-mail: dev-h...@airflow.apache.org > > > > >