← Agent Frameworks 🕐 5 min read
Agent Frameworks

Agent Protocol Observability Gaps 2026

> Primary sources are public protocol documentation for AG-UI, A2A, MCP, ACP,

See also (wiki): wiki/agent-operations-observability.md · wiki/semantic-observability.md · wiki/agentic-ai-governance.md · wiki/agent-security.md

Source credibility: MEDIUM-HIGH. Primary sources are public protocol documentation for AG-UI, A2A, MCP, ACP, and AOP plus recent protocol security/evaluation papers. Protocol schemas are strong evidence for identifiers and event shapes; they are not evidence that a deployed agent captures model internals, local tool execution, or eval labels.


Executive Summary

Agent protocols make agents composable, but they do not automatically make agent systems observable. AG-UI, A2A, MCP, ACP, and AOP expose different pieces of an agent run: UI lifecycle, delegated tasks, tool/resource access, application-control messages, or real-time observability events. None is a complete substitute for raw local logs, OpenTelemetry/OpenInference traces, and curated eval datasets.

The 2026 standards story is also less fragmented than the first-pass map implied. MCP and A2A now sit under Linux Foundation governance, with MCP under the Agentic AI Foundation and A2A hosted as a Linux Foundation project after Google’s June 2025 donation. AGNTCY’s ACP is a separate agent-connection specification, but it is part of the same broader Linux Foundation/AGNTCY governance orbit. The practical architecture is becoming two-layered: MCP for tools/resources/prompts inside or near an agent, and A2A/ACP-style protocols for agent-to-agent discovery, delegation, and coordination. Observability still has to join both layers to OTel traces and raw execution logs.

The standard should treat protocols as join-key producers:

  • AG-UI contributes runId, messageId, toolCallId, state snapshots, state deltas, activity events, and reasoning/message events.
  • A2A contributes taskId, contextId, messages, task status, artifacts, and artifact-update events.
  • MCP contributes tool/resource/prompt boundaries, but needs host-side audit logs for permissions, arguments, results, and server identity.
  • MCP also contributes an emerging OTel lane: MCP trace context propagation and MCP semantic conventions should be treated as first-class protocol/tool spans, not as a footnote under generic OTel GenAI.
  • ACP/AOP-style protocols are useful signals for governance or observability flows, but need schema and adoption verification before becoming standards of record.

Protocol Gap Matrix

Protocol What it captures well Observability gap Required join keys
AG-UI UI-agent streaming lifecycle, text messages, tool-call start/args/end/result, state snapshots/deltas, activity, reasoning, raw/custom events Does not prove LLM request internals, cloud invocation IDs, or local executor side effects unless the backend attaches them runId, messageId, toolCallId, parentMessageId, traceparent, app turn_id
A2A Agent-to-agent task, message, status, artifact, context, and streaming update lifecycle Delegated agent internals are absent unless the callee exports its own trace and links it back taskId, contextId, messageId, artifactId, traceparent, delegated_trace_id
MCP Tool/resource/prompt discovery and invocation boundary between host and MCP servers Spec does not by itself guarantee host approval logs, tool output capture, redaction, server identity history, or trace propagation MCP server ID, tool name, request ID, approval ID, tool_call_id, server version/hash, traceparent
ACP Application-control protocol signal for agents operating existing UI/application surfaces Public ecosystem is still emerging; must verify which ACP is meant because “ACP” is overloaded across agent-client, agent-control, and agent-communication contexts session/action IDs, app object IDs, policy decision IDs, traceparent
AOP Real-time agent observability protocol signal Promising concept, but adoption/schema stability must be validated before using as a canonical source agent run ID, event ID, span/step IDs, evaluator IDs, traceparent

Minimum Instrumentation Rules

Every protocol event should be enriched at the app boundary:

{
  "traceparent": "00-TRACEID-SPANID-01",
  "session_id": "session_hash",
  "turn_id": "turn_hash",
  "rollout_id": "rollout_hash",
  "protocol": "ag-ui",
  "protocol_ids": {
    "runId": "run_hash",
    "messageId": "message_hash",
    "toolCallId": "tool_call_hash",
    "taskId": null,
    "contextId": null,
    "artifactId": null
  },
  "privacy": {
    "redaction_version": "stateofai-redaction-v1",
    "content_capture": "hash-or-ref"
  }
}

Minimum rule: protocol events become raw_events; duration-bearing protocol steps can become spans; tool lifecycle events must become tool_calls; produced files, task outputs, screenshots, citations, and generated documents become artifacts; quality labels become evaluations.

For MCP specifically, carry both the generic trace context and the protocol identity:

{
  "traceparent": "00-TRACEID-SPANID-01",
  "protocol": "mcp",
  "mcp_method": "tools/call",
  "mcp_server_id": "server_hash",
  "mcp_server_version": "version_or_manifest_hash",
  "mcp_tool_name": "search_kb",
  "tool_call_id": "tool_hash",
  "approval_id": "approval_hash",
  "arguments_ref": "redacted_args_hash",
  "result_ref": "redacted_result_hash"
}

What Protocols Still Miss

  • Local execution proof: A protocol event can say a tool was requested or a result was streamed; it may not prove the host actually executed the tool unless the executor logs are joined.
  • Cloud invocation proof: A2A/AG-UI/MCP task IDs do not prove a Bedrock, OpenAI, Claude, Gemini, or local-model request unless model spans or invocation logs are joined.
  • Permission decisions: Approval, denial, policy, and human-in-the-loop decisions need first-class IDs and outcomes.
  • State lineage: State deltas need the previous state hash, next state hash, actor, and reason to support debugging and replay.
  • Eval linkage: Protocol success is not task success. Attach deterministic, human, or model-judge eval rows to task/artifact/turn IDs.
  • Server identity drift: MCP servers and tools need identity, version, command/URL, manifest hash, and capability-change logs.
  • Payment and mandate authority: commerce protocols such as AP2, ACP-style commerce flows, Visa TAP, and Mastercard Agent Pay add delegated purchasing authority. Those events need mandate IDs, payer/payee identity, spending limits, consent proofs, and settlement refs joined to the agent trace.

Governance and Commerce Convergence

Do not treat MCP, A2A, ACP, and payment protocols as interchangeable schemas. They own different boundaries:

Layer Examples Observability contract
Tool/resource access MCP, AgentCore Gateway MCP tools Tool/resource/prompt call spans, server identity, approval, input/result refs
Agent coordination A2A, AGNTCY ACP Delegated task IDs, context IDs, remote agent identity, delegated trace links
UI streaming AG-UI Run/message/tool lifecycle events, visible state changes, user-facing artifacts
Commerce authority AP2, ACP commerce, Visa TAP, Mastercard Agent Pay Mandate/authorization/payment spans, delegated authority, policy checks, audit trail

The headline is governance convergence, not semantic convergence. Linux Foundation stewardship reduces some vendor lock-in risk, but the telemetry schema still needs explicit mappings for each protocol boundary.

Protocol object Warehouse table
AG-UI RUN_STARTED, RUN_FINISHED, RUN_ERROR raw_events, root agent_spans
AG-UI tool-call events raw_events, tool_calls, child agent_spans
AG-UI state/activity/reasoning events raw_events, artifacts or agent_spans depending on duration
A2A task/message/status/artifact events raw_events, turns, artifacts, delegated agent_spans
MCP tool/resource/prompt calls raw_events, tool_calls, artifacts, agent_spans
ACP/AOP governance/observability events raw_events, agent_spans, evaluations, policy_decisions
AP2 / payment mandate events raw_events, policy_decisions, agent_spans, artifacts, payments

Sources


Brandon Sneider | brandon@brandonsneider.com June 2026