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.
Recommended Warehouse Mapping
| 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
- AG-UI events: https://docs.ag-ui.com/sdk/js/core/events
- A2A specification: https://google-a2a.github.io/A2A/specification/
- A2A task lifecycle: https://a2aproject.github.io/A2A/latest/topics/life-of-a-task/
- A2A protobuf: https://github.com/a2aproject/A2A/blob/main/specification/a2a.proto
- MCP specification/docs repo: https://github.com/modelcontextprotocol/modelcontextprotocol
- MCP OTel trace-context SEP: https://modelcontextprotocol.io/seps/414-request-meta
- OpenTelemetry GenAI and MCP semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/
- ACP protocol site: https://acp-protocol.org/
- AGNTCY Agent Connect Protocol: https://spec.acp.agntcy.org/
- AOP protocol site: https://useaop.dev/
- Google Cloud donates A2A to Linux Foundation: https://developers.googleblog.com/google-cloud-donates-a2a-to-linux-foundation/
- Linux Foundation Agentic AI Foundation / MCP contribution: https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation
- Agent Payments Protocol overview: https://agentpaymentsprotocol.info/about/
- Agent interoperability protocol survey: https://arxiv.org/abs/2505.02279
- AgentRFC security principles: https://arxiv.org/abs/2603.23801
- MCP-AgentBench: https://arxiv.org/abs/2509.09734
- Existing security crosswalk: /technical/19-agent-frameworks/a2a-mcp-protocol-security/index.md
- Existing observability standard: /technical/19-agent-frameworks/agent-observability-format-standard-2026/index.md
Brandon Sneider | brandon@brandonsneider.com June 2026