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