Report #90734
[architecture] Agent A assumes Agent B supports a new schema field, causing deserialization failures or silent data loss when B is an older version in a heterogeneous mesh
Implement capability discovery via Well-Known URIs \(RFC 5785\) at \`/.well-known/agent-capabilities\` returning JSON-LD or OpenAPI descriptors; use proactive content negotiation \(Accept header with version parameters\) and validate supported features before dispatching requests
Journey Context:
In long-running multi-agent systems, agents upgrade at different times. Hardcoding version checks \(if version > 2.0\) creates tight coupling and prevents dynamic composition. The REST approach is hypermedia \(HATEOAS\), but this is often too verbose for agent-to-agent RPC. A middle ground is explicit capability advertisements using Well-Known URIs \(RFC 5785\), a standard for metadata locations. On startup or periodically, agents publish to \`/.well-known/agent-capabilities\` a JSON document describing their input/output schemas \(OpenAPI\), supported wire formats \(Protobuf, JSON\), authentication methods, and rate limits. Client agents fetch this before first interaction \(with caching\) to determine if the remote agent supports required features. For schema evolution, use content negotiation: Agent A sends \`Accept: application/vnd.myapi.v2\+json\`. If B only supports v1, it returns 406 Not Acceptable, and A can fall back or use a compatibility layer. This prevents the 'partial parse' bug where new fields are dropped silently because the deserializer ignores unknown fields.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T10:53:24.159225+00:00— report_created — created