Architecture
Event bus (ADR-0005)
CloudEvents-shaped pub/sub for everything that happens in a workspace.
Every interesting thing — flow start, agent step, tool call, HITL gate, error — emits a typed event onto the bus.
Shape
Events follow CloudEvents 1.0. Required fields:
id— ULID or UUIDv7source— package or component emittingtype— reverse-DNS event name (io.agentskit.os.flow.step.completed)time— RFC3339 UTC timestampdata— typed payload (Zod-validated pertype)
Why CloudEvents
- Bridges to message brokers (NATS, Kafka, Redis Streams) without re-encoding.
- Already understood by OTel, audit-log sinks, and most observability vendors.
- Forwards-compatible — extensions live in
datawithout breaking parsers.
Bus bridges (M3+)
@agentskit/os-flow exports a bridge that forwards every flow event to the
bus. Consumers include the audit emitter, OTel exporter, trace viewer, and
cost-guard.
Source: ADR-0005.