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 simpleQuick 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.