Skip to content

Published agent-conformance suite + protocol loss matrix (per-release gate) #484

Description

@Destynova2

Context

Competitive analysis of LiteLLM, agentgateway, Portkey, Envoy AI GW, Kong AI GW and Bifrost shows the recurring, most-damaging failure class is protocol infidelity: HTTP 200 + valid streaming + visible text, but the semantics of the agent turn are corrupted — dropped tool_use arguments, lost reasoning/thinking, stripped cache_control, dropped images, mangled SSE ordering. The gateway looks up while the agent is broken.

This is a moving target: this cycle alone we shipped fixes for exactly this class — images dropped on the Responses path (#476), reasoning items not replayed (#465), tool-call salvage (tool_salvage.rs). Every provider protocol change can reintroduce one.

What we already have

  • src/features/harness/ — record & replay ("sandwich") driver + mock backend.
  • tests/enterprise/scenario_*.rs — failover, budget, DLP, routing scenarios.
  • cucumber E2E.

Gap

No published, per-release conformance matrix asserting semantic fidelity, only HTTP success. The analysis frames grob's credible claim as N certified routes × M agent clients × published conformance tests rather than "100+ providers".

Proposal

  1. A docs/reference/conformance.md matrix: {Anthropic /v1/messages, OpenAI /responses, /chat/completions, MCP, ...} × {Claude Code, Codex, ...} with the loss dimensions each pair is asserted to preserve (tool args, SSE order, reasoning, cache_control, images, provider error detail).
  2. Turn the harness scenarios into a per-tag gate that asserts semantic equality, not just 200: tool arguments intact, SSE event order, reasoning round-trip, images forwarded, provider error preserved.
  3. Ship it as the marketing-credible artifact ("6 certified routes × 5 clients, tests public").

Priority

High. This is the single place the analysis finds a real process gap (the code architecture is already right); it directly protects the #476/#465 class from silent regression.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions