Skip to content

[FEATURE]: Agent event schema and broker adapter #618

Description

@jakedipity

Summary

Agents publish straight into four process-global brokers keyed by request id, so observing an agent means being an HTTP request. Give agents an event vocabulary of their own, plus an adapter that republishes it onto those brokers, so producers can move over without any consumer changing.

Goals

  • An event type covering what an agent surfaces today: tool lifecycle, MCP progress, reasoning and response content, the usage reports, HITL approvals, MCP status.
  • Independent of the wire format's serialization constraints, and free of request-scoped correlation, which belongs to whatever observes the agent rather than to the agent.
  • SSE, A2A, and CLI output unchanged while the new schema exists alongside the current path.
  • Demonstrable parity — a regression test that fails when translation drops or reshapes a field, exercising the real broker registry rather than stubbed channels.
  • Adoption incremental and reversible behind a flag, with no producer obliged to move.

Searched Issues

  • No similar issues found

Code of Conduct

  • I agree to follow this project's Code of Conduct

Activity

  1. self-assigned this
    on Aug 31, 2026
  2. justintime4tea commented on Sep 18, 2026

    @justintime4tea
    Collaborator

    Landed in #619, merged to nightly on 2026-09-17 as 6ea85b4.

    aura_events::agent defines the event vocabulary and aura::agent_events republishes it onto the request-scoped brokers, so consumers are unaffected. Parity is covered by crates/aura-web-server/tests/agent_event_differential.rs, which drives both paths through the real broker registry and asserts byte-identical SSE.

    Two goals landed with caveats worth recording:

    • SSE/A2A/CLI output unchanged — two frames changed shape deliberately: aura.tool_usage carries the emitting agent's AgentContext, and aura.progress builds its fallback message from Progress's Display. AgentContext::agent_id deserializes with a default so payloads predating the field still parse.
    • Adoption reversible behind a flag — ENV_AGENT_EVENTS/agent_events_enabled() reading AURA_AGENT_EVENTS shipped in 6ea85b4 and was removed in f3bdbd6 ([FEATURE]: Single-agent producers emit the agent event schema #620), where the single-agent producers moved onto agent_events::emit unconditionally. There is no longer a runtime seam to fall back to the broker-only path.

    Closing manually: the commits use Ref: footers, which link but do not close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions