All Articles
7 minUpdated

Peut-on construire son propre Meta Muse avec Claude Sonnet 5.5 et MCP ?

Agents IAClaudeMCPArchitecture

Réponse courte : Claude Sonnet 5.5 avec des serveurs MCP couvre dès aujourd'hui le modèle et la couche d'outils de Meta Muse. Le runtime autour (passerelle de règles, coffre à jetons, mémoire, file de tâches, journal d'audit, défenses contre l'injection et bac à sable de navigation) reste à votre charge. Cet article passe chaque brique en revue et montre la boucle qui les relie.

Pourquoi les développeurs devraient-ils s'intéresser à ces lancements ?

Deux lancements à trois semaines d'écart. Le 8 septembre 2026, Meta a annoncé Muse, un agent personnel qui navigue, envoie des e-mails, fait des achats et continue de travailler après la fermeture de l'appli. Le 28 septembre, Anthropic a sorti Claude Sonnet 5.5 à 2 dollars le million de tokens en entrée et 10 dollars en sortie, avec 80,1 % sur OSWorld 2.1, le benchmark d'utilisation d'ordinateur.

Si vous créez des produits, la question utile est la part de Muse que vous pourriez intégrer à votre propre appli le mois prochain. J'ai découpé Muse selon ce que Meta a réellement livré, marqué ce que Claude et MCP couvrent aujourd'hui, et esquissé le reste en code.

Qu'est-ce que Meta a vraiment livré ?

  • Muse Spark, le modèle.
  • Muse Secure VM : une machine virtuelle isolée par utilisateur, avec son navigateur et son stockage.
  • Sentinel : un agent de règles distinct qui autorise, refuse ou remonte à l'utilisateur chaque requête vers un connecteur et chaque appel sortant.
  • Des approbations avant les e-mails et les achats, et un historique d'audit complet.
  • Une mémoire des habitudes et des détails ponctuels, utilisée pour des suggestions proactives.
  • Une exécution en arrière-plan qui continue après la fermeture de l'appli.
  • Des paiements via Link de Stripe avec des numéros de carte à usage unique ; Shop Pay et 1Password sont annoncés.
  • Plateformes : iOS, Android, le web et WhatsApp, déploiement aux États-Unis.

Seul le premier point est un modèle. Les sept autres relèvent de l'infrastructure.

Schéma animé d'une tâche de navigation Meta Muse passant par la Secure VM, Sentinel et l'approbation de l'utilisateur
Comment Muse exécute une tâche de navigation : plan, lecture de l'arbre d'accessibilité, formulaire, contrôle Sentinel, approbation, journal.

Qu'apporte Claude Sonnet 5.5 à un agent ?

Dans ce schéma, Sonnet 5.5 joue le rôle de planificateur. Les chiffres qui comptent pour un agent sont les suivants : une sortie environ 30 % plus rapide que Sonnet 5, un coût par tâche jusqu'à 30 % plus bas grâce à moins de tokens et d'appels d'outils, 80,1 % sur OSWorld 2.1 contre 81,8 % pour Opus 5.5, des niveaux d'effort réglables, et une disponibilité via l'API Claude, AWS, Google Cloud et Microsoft Azure. Lovable a constaté environ un tiers d'appels d'outils en moins après la migration.

Pour un agent qui enchaîne des dizaines d'appels par tâche, cette baisse pèse plus qu'un point de benchmark. Chaque appel évité, c'est un aller-retour réseau de moins vers un serveur MCP et une occasion d'échec de moins.

Que couvre MCP d'emblée ?

Le Model Context Protocol est le standard ouvert qu'Anthropic a créé en 2024 et confié à l'Agentic AI Foundation de la Linux Foundation en décembre 2025. Il donne à l'agent une seule façon d'atteindre n'importe quel outil. Un kit de départ pour un assistant façon Muse ressemble à ceci :

BesoinServeur MCPÉtat
E-mailConnecteur Gmail ou serveur distantPrêt
AgendaGoogle CalendarPrêt
DocumentsGoogle DrivePrêt
Navigateur@playwright/mcpPrêt, à héberger vous-même
Codegithub-mcp-serverPrêt
Données et lignes de mémoireServeur PostgresPrêt
API internesPetit serveur maison avec le SDK TypeScript ou PythonÀ écrire
Schéma animé de Claude Sonnet 5.5 envoyant des appels d'outils via un client MCP vers six serveurs MCP
Un appel à la fois : Claude choisit l'outil, le client MCP l'achemine, le serveur appelle la vraie API, le résultat revient dans le contexte.

Quelles sont les sept briques qu'il reste à écrire ?

  1. Passerelle de règles. Classez chaque outil en lecture, écriture ou argent. Autorisez les lectures, envoyez les écritures dans une file d'approbation, bloquez tout ce qui n'est pas listé. Une table tool_policies(tool, risk, requires_approval) suffit pour commencer.
  2. Coffre à jetons. Chiffrez les refresh tokens de chaque utilisateur avec un KMS ou libsodium, renouvelez-les dans un worker et ne les mettez jamais dans le prompt.
  3. Mémoire. Postgres avec pgvector, une table memories qui garde la source et la date de chaque fait, et une page de réglages où l'utilisateur lit et supprime ses entrées.
  4. Tâches. Une file comme BullMQ sur Redis ou un service géré comme SQS, plus un planificateur pour les demandes du type « dans cinq jours ».
  5. Journal d'audit. Une table agent_events en ajout seul : tâche, outil, hash de l'entrée, résumé du résultat, approbateur et heure.
  6. Défenses contre l'injection. Marquez comme non fiables les résultats venus du web. Après lecture d'un contenu non fiable, n'autorisez que les outils de lecture jusqu'à ce que l'utilisateur approuve l'écriture suivante.
  7. Bac à sable de navigation. Un conteneur par session utilisateur avec Playwright, une vue en direct et un bouton d'arrêt d'urgence.
Architecture d'un agent façon Muse avec Claude Sonnet 5.5 au centre, serveurs MCP, API, navigateur isolé, mémoire, workers, passerelle de règles et journal d'audit
La pile complète : le modèle au centre, et tout autour l'infrastructure que vous faites tourner.

À quoi ressemble une boucle d'agent minimale ?

Voici le cœur du runtime en TypeScript. Le modèle et les serveurs MCP font l'essentiel du travail. La boucle ajoute le contrôle des règles, le journal et la pause.

import Anthropic from "@anthropic-ai/sdk";
const claude = new Anthropic();

export async function runTask(task: Task) {
  const messages = await memory.load(task.userId, task.goal);
  const tools = await mcp.listTools(task.userId); // tools from every connected MCP server

  for (let step = 0; step < 40; step++) {
    const res = await claude.messages.create({
      model: "claude-sonnet-5-5",
      max_tokens: 4096,
      tools,
      messages,
    });
    messages.push({ role: "assistant", content: res.content });
    if (res.stop_reason !== "tool_use") return finish(task, res);

    const results = [];
    for (const call of res.content.filter((b) => b.type === "tool_use")) {
      const verdict = policy.check(task.userId, call); // "allow" | "ask" | "deny"
      if (verdict === "ask") return queue.pauseForApproval(task, messages, call);
      const output = verdict === "allow"
        ? await mcp.callTool(task.userId, call.name, call.input)
        : "Blocked by policy.";
      await audit.log({ task: task.id, tool: call.name, verdict, output });
      results.push({ type: "tool_result", tool_use_id: call.id, content: output });
    }
    messages.push({ role: "user", content: results });
    await memory.checkpoint(task.id, messages);
  }
}

pauseForApproval enregistre la conversation et l'appel en attente. Quand l'utilisateur approuve, un worker exécute l'appel, ajoute le résultat et relance runTask depuis le point de sauvegarde. C'est cette petite fonction qui permet de « continuer après la fermeture de l'appli ».

À quoi ressemble la recherche d'emploi dans le journal d'audit ?

Voici la demande d'exemple, « trouve des offres React en télétravail, regarde mon agenda, prépare les candidatures, relance dans cinq jours », telle que le journal l'enregistrerait :

09:02  plan        search remote React roles, posted in last 7 days
09:02  browser     navigate jobs board        allow   42 listings (untrusted)
09:03  postgres    read prefs                 allow   remote, React, salary floor
09:03  calendar    find_free_slots(14d)       allow   6 slots
09:05  drive       create_doc x5              allow   5 cover letters
09:05  gmail       create_draft x5            ask     waiting for user
09:41  approval    user approved 4, rejected 1
09:42  browser     submit application x4      allow   4 submitted
09:42  scheduler   follow_up in 5 days        allow   job #8812
day 5  gmail       search replies             allow   1 reply, 3 silent
day 5  gmail       create_draft x3            ask     waiting for user

Chaque ligne marquée ask correspond à un moment où Sentinel se serait lui aussi arrêté. Chaque ligne avec un numéro de tâche est quelque chose qu'une fenêtre de chat seule ne sait pas faire.

Muse ou votre propre pile ?

Choisissez Muse si vous êtes une personne qui veut des résultats et que les conditions de Meta sur les données, la disponibilité limitée aux États-Unis et la liste actuelle d'intégrations vous conviennent.

Construisez avec Claude et MCP si l'agent doit vivre dans votre produit, accéder à des systèmes internes, respecter vos règles de conservation ou changer de modèle plus tard sans réécrire chaque intégration.

Verdict

Sonnet 5.5 vous donne un planificateur proche du meilleur modèle pour un prix de milieu de gamme. MCP transforme la couche d'outils en configuration. La vraie avance de Muse tient à son runtime : la VM, l'agent de règles, le coffre, le planificateur et le journal. C'est sur cette couche que les produits d'agents vont se disputer la suite, et c'est aussi la couche que vous pouvez construire vous-même.

Sources