Observability
Runlet emits structured runtime events through an event sink.
Basic observer
Use InMemoryObserver to capture emitted events:
from runlet import InMemoryObserver, Runtime
observer = InMemoryObserver()
runtime = Runtime(event_sink=observer)
Common event types
run.startedcontext.budget_checkedmodel.requestedmodel.completedmodel.stream.startedmodel.stream.deltamodel.stream.reasoning_deltamodel.stream.completedtool.startedtool.completedrun.completedpolicy.stopped
Example
result = await runtime.run(agent, "用一句中文介绍 Runlet。")
for event in observer.events:
print(event.type, event.payload)
Why events matter
Events give applications a stable visibility layer without coupling tracing, logging, or metrics to control flow.