Publié le 9 juin 2026
| Présentateur | Web | Extensions | État de Chrome | Intention |
|---|---|---|---|---|
| GitHub | Afficher | Intention de tester |
Vous pouvez utiliser le protocole Web Model Context (WebMCP) pour créer et exposer des outils structurés aux agents d'IA s'exécutant dans le navigateur, y compris les agents optimisés par des extensions. Un agent utilise un grand modèle de langage (LLM), des règles, de la mémoire et des outils pour exécuter des actions au nom de l'utilisateur.
Les LLM traitent tous les textes, instructions et données utilisateur comme une seule séquence de jetons. Ils sont donc sensibles à l'injection de code indirecte, qui consiste à inclure des instructions malveillantes par un pirate informatique. Notre équipe a rédigé ce document sur la sécurité des outils pour vous aider à protéger votre site Web et vos utilisateurs contre les acteurs malintentionnés.
Bien que certains modèles comportent des couches qui traitent l'injection de prompt, il est impossible de garantir la sécurité à l'intérieur d'un grand modèle de langage (LLM). Les modèles sont de nature probabiliste. Il est important de se rappeler qu'il y a eu des attaques par injection de requêtes répétables contre des systèmes agentifs qui utilisent des LLM de pointe, et que la prévalence des attaques sur le Web augmente.
Pour répondre à ces préoccupations, nous avons fourni des conseils préliminaires sur la sécurité pour ceux qui créent des outils avec WebMCP.
Utiliser les suggestions d'annotations
Voici quelques conseils à suivre lorsque vous créez vos outils :
- Utilisez
untrustedContentHintle cas échéant. Si un outil renvoie du contenu généré par les utilisateurs (CGU) ou des données provenant de sources externes, envisagez d'ajouteruntrustedContentHintà l'outil. Ce champ indique explicitement que la charge utile n'est pas fiable, ce qui permet de protéger l'intégrité de votre site tout en signalant à l'agent que ces données nécessitent une surveillance accrue. - Utilisez
readOnlyHintsur les outils qui ne changent pas d'état. Cela permet à l'agent de prendre de meilleures décisions quant au moment où demander des confirmations à l'utilisateur.
Exposez vos outils avec précaution
L'API WebMCP document.modelContext.registerTool n'expose que les fonctionnalités de l'outil aux agents. Par défaut, les autres sites Web ou les iFrames d'origine croisée ne peuvent pas observer vos outils ni interagir avec eux.
Vous pouvez fournir l'accès à votre outil avec l'option exposedTo dans registerTool à un éventail d'origines spécifiques et sécurisées. Votre outil est alors exposé à ces origines lorsqu'il est intégré à votre site et lorsque votre site est intégré à cette origine.
// https://partner.org
document.modelContext.registerTool({
name: 'my_shared_tool',
description: 'Shared across origins',
// ...
}, {
exposedTo: ['https://trusted.com', 'https://example.com']
});
N'exposez vos outils qu'aux origines auxquelles vous faites confiance. Cela est particulièrement important lorsque les outils gèrent des données utilisateur ou ont un impact sur l'utilisateur.
- Un outil en lecture seule, tel que
getFavoriteProducts, peut révéler des informations sur un utilisateur. Vous ne devez exposer ces outils qu'aux sites Web avec lesquels vous partageriez directement ces données. - Les outils disposant d'un accès en lecture et en écriture agissent au nom d'un utilisateur. Ces outils ne doivent être exposés qu'aux origines que vous jugez fiables lorsqu'elles agissent au nom de votre utilisateur. Par exemple, vous pouvez vouloir exposer
postCommentàtrustedExample.com, mais pas àevilExample.com.
Définir des budgets de personnages
Pour éviter de rencontrer des limites de protection des agents, rédigez des descriptions et des résultats d'outils concis. Pour de meilleurs résultats, nous vous recommandons les limites de caractères suivantes :
- 500 caractères par description d'outil
- 150 caractères par description de paramètre
- 30 caractères par nom d'outil et de paramètre
- Limite de 1 500 caractères par résultat d'outil
Il est probable qu'il existe une certaine variation entre les agents. Vous pouvez ajuster vos budgets de caractères en fonction des commentaires des utilisateurs.
Étapes suivantes
Nous continuons nos recherches et nos efforts pour créer une infrastructure sécurisée pour le Web agentique. Par exemple, une discussion sur la gestion du consentement est en cours entre les parties, et le brouillon de spécification inclut requestUserInteraction() pour demander de manière asynchrone l'entrée utilisateur lors de l'exécution de l'outil.
Comment prévoyez-vous d'implémenter WebMCP dans votre application ? Avez-vous d'autres préoccupations, concernant la sécurité ou autre ? Si vous vous inscrivez à l'essai Origin Trial WebMCP, nous aimerions connaître votre expérience :
- Partagez vos commentaires sur la forme de l'API en commentant un problème existant ou en en ouvrant un nouveau dans l'explication WebMCP sur GitHub.
- Si vous avez des commentaires sur l'implémentation de Chrome, signalez un bug Chromium.
- Rejoignez le programme de preview anticipée pour découvrir en avant-première les nouvelles API et accéder à notre liste de diffusion.
- Consultez l'implémentation pour Chrome sur Chrome Status.
Si vous créez un agent, nous vous recommandons de lire Considérations de sécurité pour les agents WebMCP.