Lesson 4 / 31

When You Do and Do Not Need Protocols

Avoid adding protocol layers that the problem does not require.

Pay the complexity only when it buys reuse

Protocols add moving parts: processes or network services, authentication, versioning and more things to monitor. Use plain function calling inside a single application with a handful of tools. Use MCP when tools should be reused across several hosts, shipped by other teams or vendors, or run in a separate process or trust domain. Use A2A when agents are owned by different teams or organisations, run on different frameworks, or must evolve independently, and a simple function call is not enough because the work is long-running, multi-step or needs back-and-forth. Do not split one agent into several A2A services just to look modern: a plain function call is simpler, faster and easier to debug.

A decision guide

Starting points only.

Situation                                             Reasonable choice
1 app, 3-5 tools, one team                              function calling
Same tools needed in an IDE, a chat app and CI         MCP server
Tools run in another process / need separate trust     MCP server
Another team's agent must do a long task for yours      A2A
Agents on different frameworks / vendors               A2A
Just want it to look "agentic"                         neither; keep it simple

Quick check: When is plain function calling usually enough?

  • Agents from different vendors
  • One application with a few tools owned by one team
  • Tools needed in many hosts
  • A long cross-organisation task
Answer

One application with a few tools owned by one team — Do not add protocol layers that give no reuse or isolation benefit.