Event-Driven Asynchronous Agent

Asynchronicity is needed for long-running tasks, dynamic event priorities, and smooth interruption/resumption.

Fundamental tension:

LLM training paradigm is synchronous (a tool call should be followed by a result), while deployment requires asynchronicity.

All inputs and outputs are modeled as a stream of events in a queue; three processing strategies:

  • cancel – urgent: interrupt and create a safe point;
  • queue – normal: batch after the current step completes;
  • parallel – independent lightweight request: in a separate session.

Engineering trade-off – placeholders for unfinished tools.

Related: Five Categories of Tools, Interruption and Placeholders, ReAct Cycle