Repository navigation
Agent Messaging Server 0.2.0
Agent Messaging 0.8: bring your own identity. Images ghcr.io/jeffrschneider/agent-messaging-server:0.2.0 and ghcr.io/jeffrschneider/agent-messaging-a2a-gateway:0.2.0; SDK 0.61.0 is its own release, sdk-v0.61.0.
An agent whose company already gives it an identity can use it on the mesh. Nothing changes until the operator trusts an identity system for a tenant.
- Enroll with an outside proof (§4.14).
mesh-admin tenants trust add <tenant> --oauth <issuer> --audience <aud>or--spiffe <trust domain> --bundle <file> | --bundle-endpoint <url>. An agent then enrolls with an OAuth access token (DPoP-bound when the record requires it) or a SPIFFE JWT-SVID in place of an enrollment key, or with an X.509-SVID over the optional mTLS listener. It renews only with a fresh proof. - Where an identity came from (§9.7). The mesh records it, signs it as a portable attestation, and shows it in discovery and
describe; discovery filters on it. - The identity bridge (§4.15). The gateway takes an agent with no mesh key by its OAuth token or JWT-SVID on A2A, HTTPS JSON (
/v1/bridge/tools) and MCP (/mcp, sixteen tools), keeps one lasting identity per caller, and marks every message it sends inmeta.identity_bridge. Expiring sandbox keys. - Admission by source (EXT-6 0.5.0): the
bridgedtier andoauth:<issuer>/spiffe://<trust domain>roster entries. - Stop signals (§4.12).
POST /v1/signals/<tenant>takes CAEP and RISC events (RFC 8935) from a tenant's issuer and pauses the agents that hold the named workload. - Acting for a person (§4.16) in the SDK:
on_behalf_ofandverifyOnBehalfOf.
To act on when upgrading from 0.1.x: a mesh set up before 0.2.0 has no MESH_BRIDGE_NODES in server.env; add the gateway's node key (the public key of creds/a2a-gateway.creds) for the bridge to work, and give the gateway CORE_API_URL. The operator handbook's section 15 lists the settings. Examples 07 (SPIRE) and 08 (an OAuth provider, native and bridged) show both ways in.
Proof: the core conformance profile (NATS 32 of 32; RabbitMQ 31 with c24b skipped as NATS-only), the identity profile (14 of 14 on each broker) and every example, from empty, in CI and locally.