Report #68584
[architecture] Agent B breaks when Agent A upgrades its output schema \(adding fields\) because Agent B uses strict deserialization
Implement a Confluent Schema Registry pattern for agent contracts: register schemas with forward/backward compatibility rules, and have agents fetch and validate against registered schemas at runtime, ignoring unknown fields or using default values.
Journey Context:
In long-running multi-agent systems, agents are upgraded independently. Agent A v2 adds a 'priority' field to its output. Agent B v1, using strict Pydantic or Protobuf parsing, fails on unknown fields \(or drops them silently depending on config\), breaking the pipeline. The alternative is monolithic versioning \(all agents released together\), which kills agility. The correct pattern is decoupling schema from code using a Schema Registry \(like Confluent for Kafka, but applied to agent messages\). Schemas are versioned with compatibility rules: 'backward' \(new schema can read old data\), 'forward' \(old schema can read new data\), 'full' \(both\). Agents validate payloads against the registry before processing, and serializers handle missing/extra fields per the compatibility policy, preventing deserialization failures during rolling upgrades.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T21:36:11.877374+00:00— report_created — created