Français
APPLIED AI — LEVEL INTERMEDIATE — SESSION 7

Multi-agents & MCP

From the lone agent to the team — and the universal socket that connects everything · Yann Isola

Order. Choose an architectural pattern, then swipe NewsRoom agents 📰 in the copper dotted locations. When all roles are filled, run the animation to see messages circulate . The “💥Inject Error” button shows how each boss handles a Checker rejection.
“A single agent is an employee who does everything. A team of specialized agents is a business : each one has their role, their tools, their limits. »

1. Choose a pattern

2. Place agents

Agents available — drag them onto the board

Message log

To compare between patterns

  • Who decides the path? Pipeline: the developer (fixed). Orchestrator: the central (dynamic) agent. Debate: the judge decides at the end.
  • Number of messages: count them in the log — the orchestrator exchanges more (everything goes through the leader).
  • Error handling: the pipeline must provide a go back ; the orchestrator reassigns ; the debate restarts a round.
  • The supervisor (4th pattern, not simulated here) is added over any of the three: he observes, validates, interrupts. Orchestrator = distributes the work; supervisor = quality control & security.
MCP = Model Context Protocol (model context protocol): a universal standard for connecting AI (artificial intelligence) models to their tools and data sources — “the USB of AI”. Offered at the end of 2024 ⚠ by Anthropic, published as an open standard. Click on each component of the diagram, then explore the 3 primitives.
Without standard: N models × M tools = N × M integrations custom made. With MCP: N+M connectors . Like USB (Universal Serial Bus): one socket, one protocol, everything connects.

1. Architecture: Host ↔ Client ↔ Server (click on each block)

🖥️

HOST (host)

Your app — where the model lives
🔌

MCP CUSTOMER

The connector — 1 client ↔ 1 server
🧰

MCP SERVER

Presentation: Tools · Resources · Prompts
(e.g. GitHub server, filesystem…)

👆 Click on a block in the diagram

Complete analogy: the host is the computer , the customer is the USB port , the server is peripheral .

2. The 3 primitives — who has the hand? (click on each card)

🔧 Tools

Invoked by THE MODEL
Click for details…
Of the executable actions — this is the tool calling of Session 5, standardized. The model decides When call them, during its loop (Session 6).
  • Example (GitHub server): créer_issue(titre, corps)
  • Example (database server): exécuter_requête(sql)
  • ⚠️ Mandatory safeguards for irreversible actions (Sessions 5–6): the standard does not exempt any.

📚 Resources

APP-controlled
Click for details…
Of the data read that the host chooses to inject into the context of the model — the spirit of RAG (Retrieval-Augmented Generation, Session 4).
  • Example: the content of README.md of a deposit
  • Example: the list of active CRM (Customer Relationship Management) customers
  • Key difference with a Tool in reading: here, it is the app who decides what to show, not the model.

📋 Prompts (prompt templates)

Chosen by USER
Click for details…
Of the ready-to-use prompts , configurable, which the user selects from a host menu.
  • Example: “Analyze this pull request according to our standards”
  • Example: “Analyze this customer complaint according to our compliance grid”
  • Interest: capitalize on the team's good prompts, instead of everyone reinventing their own.
The point that differentiates everything: who has the hand. Tools → the model decides to act · Resources → the application decides what to show · Prompts → the user chooses from a menu. Three primitives, three triggers.

3. The two transports

TransportationOr ?How ?Typical case
stdio (standard input/output, standard input/output)LocalThe server is a host-initiated process; dialog via system input/outputFilesystem server on your workstation
HTTP+SSE (HyperText Transfer Protocol + Server-Sent Events, events sent by the server)RemoteThrough the network; the server can push events to the clientEnterprise MCP server, shared by teams

⚠ Remote transport is evolving (“streamable HTTP” variants). Stable mnemonic: stdio = local · HTTP = remote .

4. The ecosystem: use yourself before coding ⚠

MCP servers available off the shelf (indicative list — the ecosystem grows every week ⚠):

📁filesystem🗄️ PostgreSQL / SQLite🔍 web search 🐙 GitHub💬Slack🌐 browser📅 calendars📧 email

And for YOUR business logic: write your server

serveur = nouveau ServeurMCP("crm-interne")

serveur.tool("chercher_client",
  description: "Recherche un client par nom ou e-mail",
  schéma: { requete: string },
  exécution: (args) => crm.chercher(args.requete))

serveur.resource("crm://clients/actifs",
  description: "Liste des clients actifs",
  lecture: () => crm.listeActifs())

serveur.démarrer(transport: stdio)

Each tool = exactly the tool definition from Session 5 (name, description, diagram). Writing once → all your hosts benefit: this is the N+M gain.

Check your achievements — 4 quick questions. Click on an answer to see the correction immediately.