Skip to content

Agent Messaging Server 0.2.0

Choose a tag to compare

@jeffrschneider jeffrschneider released this 13 Oct 18:23
· 6 commits to main since this release
ba1d9cd

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 in meta.identity_bridge. Expiring sandbox keys.
  • Admission by source (EXT-6 0.5.0): the bridged tier and oauth:<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_of and verifyOnBehalfOf.

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.