Files
liqiang b119135836
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
2026-08-20 13:12:50 +00:00

7.3 KiB

theme, title, info, author, transition, mdc, lineNumbers, monaco, aspectRatio, canvasWidth, layout, class
theme title info author transition mdc lineNumbers monaco aspectRatio canvasWidth layout class
seriph Lesson 17 — How Can a Synchronous Model Live in an Asynchronous World? English video course for AI Agents in Depth Bojie Li slide-left true false false 16/9 980 cover cover
Build · Chapter 4 · Tools

How Can a Synchronous Model Live in an Asynchronous World?

Events, interruption, parallelism, and proactive tool discovery

Lesson 17 of 42 · 19 minutes · Event-Driven Asynchronous Agents; Proactive Tool Discovery

Why this problem matters

Ingress

External events can wake the Agent.

Scheduling

Queue, interrupt, or parallelize by urgency.

Discovery

Find a capability without loading every schema.


Three ideas to keep in view

Event queue

Durable arrival, priority, and replay

Cancellation

Stop work safely and preserve recoverable state

Meta-tool

Search a large tool catalog on demand


The book's visual model

Three asynchronous event-processing strategies
Three asynchronous event-processing strategies

Synchronous loop vs. Async Harness

Synchronous loop

  • One request at a time
  • No mid-turn updates
  • Tool latency blocks attention

Async Harness

  • Inbox and scheduler
  • Interrupt or parallel policy
  • Checkpoints and notifications
The model remains turn-based; the Harness absorbs real-world concurrency.

Events need an explicit policy

event = await inbox.get()
match event.urgency:
    case "interrupt": await cancel(current_task)
    case "immediate": spawn(event)
    case _: queue.append(event)

Test the claim

4-52 min

Trigger a timed event

Observe: Registration, event arrival, processing, and delivery

4-62 min

Interrupt and recover a long-running task

Observe: Cancellation point, cleanup, checkpoint, and recovery

4-72 min

Discover tools instead of injecting the catalog

Observe: Token count, retrieved schemas, and selected capability

Demo budget: 6 minutes · one contiguous terminal block

class: course-terminal

Live demo

Switching to the terminal

$ uv run python chapter4/agent-with-event-trigger/event_loop_demo.py --mock --trigger timer --delay 2 --duration 6

$ uv run python chapter4/async-agent/demo.py interrupt

$ uv run python chapter4/active-tool-discovery/demo.py --offline
Run the command(s), narrate decisions, and point to the observation—not just the output.

What the evidence supports

Finding 1

Priority is a product policy, not merely a queue implementation detail.

Finding 2

Graceful interruption requires tools and loops to expose safe cancellation points.

Finding 3

On-demand discovery keeps a small stable prefix while preserving a large action space.


Boundary → design rule

Today's models are trained mostly on synchronous trajectories; async behavior remains a Harness workaround.
Separate event intake, scheduling, model turns, tool execution, and user notification into explicit components.

Continue the experiment


layout: center class: text-center

Pause and apply

Your turn

Which external event should interrupt current work rather than wait in a queue?

layout: center class: text-center

Chapter 4 complete · Next · Lesson 18
Use code as the most general action interface.