Hi all,

PR #786 <https://github.com/apache/burr/pull/786> [1] proposes two
additions to handle long-running agent workloads. Moving the design
question from DM with Stefan onto the list before we iterate further.

Gap today: halt_before / halt_after only stop between actions. Two cases
keep showing up:

   1. HITL inside one action (e.g. sequential batch where item 23 of 50
   needs approval, items 1-22 already paid for LLM calls).
   2. Crash recovery mid-action without re-firing paid sub-steps.

Langgraph covers both with interrupt() + checkpointer. Concrete case I am
hitting: a loyalty CRM where every retry re-fires the offer-generation LLM.

Proposal is to split #786 into two orthogonal pieces, ship independently:

* A. *halt_when(predicate): state-based HITL primitive. Action sets a state
value, runtime halts when predicate matches, conditional edges route on
resume. No new resume semantics. (Stefan's suggested shape on the PR.)

* B. *__context.durable(key, fn): sub-step memoization journal. Result
keyed by (app_id, sequence, key). On replay, returns recorded value without
re-firing fn. Defensible on crash recovery alone.

Worked example (before/after code, mid-action case discussion):
https://gist.github.com/

Open questions:

   1. halt_when(predicate) as first-class transition primitive, or keep as
   user-side conditional edge expression?
   2. __context.durable(key, fn) the right surface, or decorator?
   3. Anyone hitting the mid-action sequential case in production?

Not proposing the suspend()-style mid-action pause in this thread. Want to
ship A and B, collect signal, revisit on a separate [DISCUSS] if demand
shows up.

No deadline. Will follow up with [PROPOSAL] per piece once we converge.

[1] https://github.com/apache/burr/pull/786

Thanks, André

Reply via email to