Skip to content

Agent Protocols

Topic Summary

The agent protocol layer defines how agents expose tools and resources, exchange capabilities, delegate tasks, and collaborate with other agents.

Stack Level

Agent protocols are Layer 4 of the Agentic Web Stack. This layer sits above ordinary APIs and gives agents a shared way to discover tools, expose context, publish capabilities, delegate work, stream progress, and exchange task artifacts.

Goals

  • Document Model Context Protocol as the agent-to-tool integration layer.
  • Document Agent2Agent as the agent-to-agent collaboration layer.
  • Keep protocol experiments modular so alternatives can be compared.

Common Tech Stack

TechnologyRole in agent protocols
MCPAgent-to-tool and agent-to-resource protocol for tools, resources, and prompts
A2AAgent-to-agent protocol for discovery, tasks, messages, artifacts, and collaboration
Agent CardA2A discovery metadata for remote agent identity, skills, protocols, and auth
JSON-RPCCommon request and response style used by protocol implementations
Streaming HTTP or SSEProgress updates and long-running task output
Webhooks or push notificationsAsynchronous completion and update delivery
Protocol SDKsPython, TypeScript, Java, Go, C#, or Rust libraries for implementing clients and servers

Reference Scenario

The Literature Review Assistant accepts delegated work through A2A and uses MCP internally for controlled access to document tools. This keeps remote agent collaboration separate from tool and resource access.

Standards and Protocols

  • Model Context Protocol
  • Agent2Agent Protocol
  • JSON-RPC style tool calls where required by protocol implementations
  • Capability exchange and task lifecycle metadata

Example Use Case

A research coordinator agent accepts a user task through A2A, then uses MCP tools internally to search documents, fetch metadata, and create a bibliography. The client sees one remote agent, while the coordinator agent composes lower-level tools behind its own boundary.

Example Protocol Specification Sketch

yaml
remoteAgent:
  name: Research Coordinator Agent
  discovery:
    agentCard: https://research.example.edu/.well-known/agent-card.json
  a2a:
    endpoint: https://research.example.edu/a2a/v1
    supportedOperations:
      - message/send
      - message/stream
      - tasks/get
    outputModes:
      - text/plain
      - application/json
internalTools:
  mcpServers:
    - name: document-search
      transport: streamable-http
      url: https://tools.example.edu/mcp/documents
      tools:
        - search_documents
        - fetch_document
    - name: citation-tools
      transport: stdio
      tools:
        - format_citation
workflow:
  - receiveTaskViaA2A
  - searchDocumentsViaMCP
  - fetchRelevantSourcesViaMCP
  - returnSummaryAndArtifactsViaA2A

Example artifacts: a2a-message-send.json and mcp-tools.json.

Design Considerations

  • Use A2A when a remote service owns task state and returns artifacts over time.
  • Use MCP when an agent needs a controlled interface to tools, resources, or prompts.
  • Keep deterministic APIs documented separately from protocol wrappers.
  • Document security assumptions before exposing external tools or remote agents.

Page created by Dr. C. Klukas