Les outils de site sont la mise en œuvre par ChatGPT du projet de norme WebMCP. Avec WebMCP, un site web peut proposer des actions directement à un agent d’IA, en complément de l’interface que les internautes utilisent déjà. Vous et l’agent pouvez ainsi agir sur la même page, en temps réel, dans la session où vous êtes déjà connecté.
Dans le navigateur intégré de l’application de bureau ChatGPT, ChatGPT Work et Codex peuvent détecter et utiliser ces outils lorsqu’ils sont disponibles.
Les outils de site nécessitent un modèle compatible et une page qui propose des outils. Votre compte ou la politique de navigation de votre espace de travail géré peut vous donner accès à ces outils. Les paramètres de votre navigateur et les autorisations du site continuent de s’appliquer.
Différences entre WebMCP et MCP
Le Model Context Protocol (MCP) relie une application d’IA à un serveur local ou distant. Ses outils peuvent fonctionner sans qu’une page web soit ouverte, par exemple pour effectuer une recherche dans un service ou gérer des enregistrements via une API.
WebMCP permet à un site web de proposer ses fonctionnalités à un agent sous forme d’outils prédéfinis. L’agent peut les détecter lorsqu’il consulte le site. Vous pouvez donc utiliser ces fonctionnalités sans installer de serveur MCP distinct ni configurer une autre connexion.
Cette approche est utile lorsque vous et l’agent devez voir le même contenu, par exemple pour modifier un canevas ou explorer un tableau de bord. Un plugin doté d’un serveur MCP peut fournir une intégration qui fonctionne sans qu’une page soit ouverte. Un site web peut prendre en charge les deux approches.
Fonctionnement dans le navigateur
Ouvrez un site web dans le navigateur intégré et demandez à ChatGPT Work ou à Codex de vous aider à accomplir une tâche. Si la page propose des outils de site, l’agent peut détecter et exécuter les actions adaptées à votre tâche sur le site que vous consultez. Par exemple, un éditeur de documents peut permettre à l’agent de retrouver une section ou de laisser un commentaire que vous pourrez relire.
Sélectionnez Outils de site dans la barre d’adresse du navigateur pour voir ce que propose le site. Choisissez Outils de site disponibles pour examiner chaque outil. Le navigateur vérifie chaque requête avant que le site ne l’exécute, puis l’agent peut examiner la page pour voir ce qui a changé. Si des appels récents sont disponibles, choisissez Récemment utilisés pour ouvrir Sources et les consulter.
Dans cet exemple, développez Outils de site disponibles pour examiner les outils proposés par Margin.
Les outils sont liés à la page qui les fournit. Si vous fermez cette page ou la quittez pour en consulter une autre, ses outils peuvent devenir indisponibles. Si aucun outil adapté n’est disponible, l’agent peut parfois accomplir la tâche à l’aide des fonctions habituelles du navigateur.
Exemple d’exploration de la documentation OpenAI
ChatGPT Learn et OpenAI Developers proposent des outils de site pour rechercher et lire la documentation. Dans la zone de saisie, sélectionnez Ouvrir dans ChatGPT. Learn s’ouvre dans le navigateur de l’application de bureau, à côté d’une nouvelle discussion où le prompt suivant est prêt à être envoyé.
L’agent peut utiliser ces outils pour rechercher, lire et ouvrir la page pertinente.
| Outil | Fonction |
|---|---|
search_openai_docs |
Effectue une recherche dans la documentation OpenAI. |
lookup_page |
Lit une page de documentation à partir de son chemin ou de son URL. |
lookup_context |
Lit le chemin de la page de documentation consultée et le texte sélectionné. |
navigate_to_page |
Ouvre une page correspondant à la recherche sur le site de documentation consulté. |
generate_custom_guide |
Lance la création d’un guide personnalisé de développement ou d’apprentissage et renvoie son état et son lien. |
Docs Agent génère le guide personnalisé de manière asynchrone. Vous pouvez recevoir le lien avant la fin de la génération.
Sécurité et contrôles à votre disposition
Les définitions d’outils et les résultats fournis par un site web doivent être traités comme du contenu non fiable. Ni le nom d’un outil ni l’affirmation selon laquelle il fonctionne en lecture seule ne prouvent ce qu’il fait réellement. Les instructions du site n’autorisent pas l’agent à communiquer des informations sans rapport avec la tâche ni à effectuer des actions sensibles.
Dans le navigateur intégré, chaque appel d’outil fait l’objet d’un contrôle de sécurité avant son exécution. Les règles habituelles d’accès aux sites et de confirmation s’appliquent, y compris aux actions ayant des conséquences importantes, comme l’envoi de messages, les achats, la suppression de données ou la modification des autorisations. Le navigateur associe chaque appel à la page dont il provient et à l’enregistrement de l’outil concerné. Ces contrôles réduisent les risques sans garantir la fiabilité du site ou de ses résultats.
Vous pouvez désactiver l’option Activer les outils de site dans Paramètres > Navigateur > Autorisations. Examinez le site, l’action demandée et son résultat avant de communiquer des informations sensibles ou de vous fier à une modification.
Signalez les failles de sécurité dans le cadre du programme Bug Bounty d’OpenAI pour les failles de sécurité. Pour les risques liés à la sûreté de l’IA, consultez le programme Bug Bounty pour la sûreté de l’IA. Respectez le périmètre et les consignes de signalement de chaque programme.
Limites
Les outils de site fonctionnent actuellement uniquement dans le navigateur intégré de l’application de bureau ChatGPT.
Ajouter WebMCP à votre site web
Vous pouvez demander à Codex d’ajouter la prise en charge de WebMCP à l’application web ou au Site que vous développez. Décrivez ce que l’agent doit pouvoir faire et demandez à Codex de réutiliser la logique et les autorisations existantes de l’application.
Enregistrez un outil en JavaScript ou ajoutez des attributs WebMCP à un formulaire HTML. Le navigateur intégré peut détecter les outils dans la page de premier niveau ainsi que dans les iframes, qu’elles aient la même origine que la page ou une origine différente. Chaque cadre doit utiliser un contexte sécurisé. Le navigateur vérifie les droits d’accès pour l’origine qui fournit l’outil. Vous pouvez omettre exposedTo : l’agent pourra quand même détecter l’outil.
Commencez par une opération que votre application prend déjà en charge. Voici quelques exemples.
- Dans un tableau de bord, l’agent peut définir une plage de dates et examiner les données représentées dans un graphique.
- Dans un éditeur de documents, l’agent peut retrouver une section, suggérer une modification ou laisser un commentaire que vous pourrez relire.
- Dans une application de planification de voyages, l’agent peut comparer les options et mettre à jour un itinéraire pendant que vous examinez la carte.
Vous pouvez aussi écrire le code vous-même. Dans le module JavaScript de votre page, vérifiez que le navigateur prend en charge l’enregistrement d’outils, puis enregistrez un outil. Dans cet exemple, l’outil en lecture seule renvoie le titre de la page consultée.
if (typeof document.modelContext?.registerTool === "function") {
await document.modelContext.registerTool({
name: "get_page_title",
description: "Read the title of the current page.",
inputSchema: {
type: "object",
properties: {},
additionalProperties: false,
},
annotations: { readOnlyHint: true },
execute: async () => ({ title: document.title }),
});
}Un agent compatible peut détecter get_page_title et obtenir le titre actuel de la page. Si votre outil accepte des arguments, décrivez-les dans le schéma d’entrée et utilisez-les dans le gestionnaire execute pour appeler la logique existante de votre application.
Limitez les entrées à ce qui est nécessaire, décrivez les effets de bord et renvoyez suffisamment d’informations pour vérifier le résultat. Utilisez les mécanismes d’authentification, d’autorisation et de validation des entrées déjà en place dans votre application. Conservez l’interface habituelle pour les internautes et les navigateurs qui ne prennent pas en charge WebMCP.
Pour en savoir plus sur l’API et consulter des exemples, reportez-vous à la spécification WebMCP et au guide de développement de Chrome.
