What Microsoft demonstrated
Microsoft demonstrated a move from several specialist AI agents to one orchestrator using remote skills and typed tools over MCP. In the example, separate services handle the user profile, weather, slopes and a ski-resort recommendation.
Originally, each specialist ran its own model loop and returned an answer through A2A. In the revised design, the services remain distributed but become skills: the orchestrator reads a description and calls tools over MCP. When code or an API can produce the result, the extra model loop disappears.
Verified numbers — with an important caveat
Across the three runs shown in the article, the multi-agent path required 6, 6 and 7 model calls. The skills path used 3 calls in each run. Mean elapsed time in the demonstration was 15.480 seconds for the A2A agents and 6.348 seconds for the skills architecture.
This is not a universal benchmark: warm processes, caching and differences in completed work affected the result. Total token usage was higher for skills — 13,533 versus 11,134, roughly 22% more. Fewer model calls do not automatically mean a lower bill.
When a separate agent is unnecessary
An independent agent makes sense when a component needs private context, a long lifecycle or autonomous planning. If a “specialist” only receives parameters, queries an API and returns structured data, a skill with typed tools is easier to test and operate.
The pattern fits inventory checks, order status, tariff calculation and customer records. The model selects a skill, while authorization, validation and data access remain in service code.
Prototype limitations
The demonstration uses Microsoft Agent Framework 1.17.0. The progressive `add_tools` API is described as experimental. Skill discovery also follows a pinned profile of a draft specification and is not a universal part of core MCP.
A skill description does not enforce security. Authorization, data filtering, quotas and audit logs still belong on each tool server.
A low-risk way to test the pattern
Choose one bounded specialist in an existing system and run both designs in parallel:
- keep the current agent as the control path;
- expose deterministic operations as typed MCP tools;
- leave the model responsible only for skill selection and the final response;
- measure total tokens, p95 latency, cost per accepted result and error rate, not just the number of model calls;
- test authorization and degraded behavior when the remote service is unavailable.
If quality holds while operations become simpler, move the next bounded specialist. Keep genuinely autonomous components as agents: the goal is to pay for model reasoning only where it creates value.
