Foundations Intermediate 2 minute read Updated 2026-06-26 UTC

Interchangeability levels

Contract, runtime, parameter, and semantic interchangeability—and why behavioral contracts are the safest default.

Research statusEstablished and emerging engineering Publication statePublished Reviewed byMichael Kappel Source reports3

Interchangeability is layered

Two models can be interchangeable at one level and incompatible at another. Treating interchangeability as a single Boolean property causes fragile integrations and unsafe merges.

Behavioral interchangeability at the contract boundary is more robust than assuming internal compatibility.

Contract interchangeability

Models accept and return the same versioned schemas, errors, confidence fields, provenance, and latency classes. This is the most important level because it enables black-box substitution and independent testing.

A contract should define semantics, not only JSON shape. Two fields named confidence are not interchangeable if one is a calibrated probability and the other is an arbitrary score.

Runtime interchangeability

Different artifacts can run in the same serving environment or behind the same adapter. Runtime compatibility includes operator support, memory behavior, tokenizer handling, batching, streaming, cancellation, and deterministic settings.

Parameter interchangeability

Weights, layers, task vectors, or adapters can be directly combined only when architectural assumptions align. Compatibility may require the same base model, layer count, hidden dimensions, tokenizer vocabulary, parameter naming, and normalization conventions. A successful file load does not prove a meaningful merge.

Semantic interchangeability

Internal representations can be consumed across models only when latent spaces are aligned or translated. This is difficult and often requires trained projections, shared encoders, distillation, or explicit adapters. It should be treated as an experimental capability, not a default integration path.

Behavioral interchangeability

The preferred abstraction is behavioral: a model satisfies a capability contract and passes the same acceptance suite. Behavioral interchangeability allows heterogeneous internals while preserving operational substitution.

pseudocode
FUNCTION is_behaviorally_interchangeable(candidate, contract, suite)
    REQUIRE VALIDATE_SCHEMA(candidate, contract.schema)
    REQUIRE VALIDATE_ERROR_SEMANTICS(candidate, contract.errors)
    REQUIRE VALIDATE_RESOURCE_CLASS(candidate, contract.budget)

    evidence <- RUN_ACCEPTANCE_SUITE(candidate, suite)

    RETURN evidence.required_tasks_pass
       AND evidence.calibration_within_range
       AND evidence.safety_invariants_pass
END FUNCTION

Compatibility matrix

Maintain a machine-readable matrix for every package:

  • accepted input and output contract versions;
  • runtime and hardware backends;
  • base-family and tokenizer identifiers;
  • merge and adapter compatibility groups;
  • quantization and precision support;
  • data-jurisdiction restrictions;
  • deterministic and streaming capabilities;
  • maximum context, memory, and latency classes.

The router should select only from candidates whose compatibility predicates are already satisfied. It should not discover compatibility by failing at runtime.

Source reports used for this guide

These reports are preserved verbatim in the site archive. The guide above is an editorial synthesis and may narrow, qualify, or reorganize claims from the source material.