2026-09-29 · Annonce · 5 min de lecture · L'équipe de maintenance d'OwlLayer AI
OwlLayer AI est lancé : votre interface web devient pilotable par un agent, sans la reconstruire
Aujourd'hui, nous ouvrons officiellement OwlLayer AI au public.
Les agents raisonnent de mieux en mieux. Les produits, eux, leur donnent très peu de prise. Deux façons de mettre de l'IA dans une application web se sont imposées, et aucune ne rend l'agent vraiment utile :
- Le chatbot accolé répond et conseille, puis laisse l'utilisateur tout refaire à la main. Il décrit le produit ; il ne l'utilise pas.
- L'automatisation de navigateur cherche des boutons dans le DOM, clique, attend et devine. Elle casse au premier changement de libellé et contourne vos permissions comme votre logique métier.
OwlLayer AI propose une troisième voie : votre application déclare ce qu'elle accepte de faire, et l'agent n'agit que par ces points d'entrée. Pas de scraping, pas d'interface de remplacement générée à la volée. Vos composants, vos règles métier et vos workflows restent la source de vérité.
Ce qui se passe quand l'utilisateur parle
Un utilisateur dit : « Ajoute deux casques au panier et passe ma commande », au clavier ou à la voix.
- L'interface publie son contexte courant et les actions disponibles sur l'écran.
- L'agent choisit une action typée, par exemple
add_to_cart, avec ses arguments. - Le client vérifie ces arguments avec le schéma de l'action. S'ils sont invalides, l'agent reçoit l'erreur et corrige son appel : personne n'a été dérangé.
- La politique de risque s'applique.
add_to_carts'exécute ;confirm_orders'arrête et demande votre accord. - Votre code exécute l'action, dans vos handlers, avec vos permissions et vos transactions.
- L'agent reçoit un résultat structuré et répond à l'utilisateur.
L'agent ne clique jamais. Il demande. Votre application décide.
Déclarer une action en dix lignes
useAgentTool( { name: 'add_to_cart', description: 'Add the current product to the cart', schema: z.object({ quantity: z.number().int().min(1) }), risk: 'low', }, async ({ quantity }) => { await cart.add(product, quantity); return { productId: product.id, quantity }; },);Le hook vit dans le composant qui possède l'action, à côté de l'état dont il a besoin. Quand le composant disparaît, l'action disparaît avec lui.
Cinq concepts, un runtime
OwlLayer AI repose sur cinq briques, documentées dans la page Concepts.
Neural-DOM Binding. C'est le lien explicite entre la page vivante et le modèle. Le modèle raisonne ; l'exécution reste dans votre code. La surface d'action de l'agent suit votre arbre de composants : naviguer change ce qu'il peut faire, sans liste globale à maintenir.
Tools. Un outil est une action métier : un nom, une description que lit le modèle, un schéma d'arguments, un niveau de risque et un handler. Trois parties du runtime les gèrent. L'enregistrement ajoute l'outil au registre du client au montage du composant et prévient le serveur. Le désenregistrement le retire au démontage, sauf pour les outils déclarés global. L'exécuteur reçoit chaque appel, valide les arguments, applique la politique de risque, attend votre handler et renvoie le résultat. Le client et le serveur partagent le même registre : mêmes règles des deux côtés, et une limite d'outils actifs par session (30 par défaut) que vous réglez sur le serveur.
Shadow Context. C'est l'état utile de l'écran que vous choisissez de publier : page, produit affiché, nombre d'articles au panier. Le DOM brut n'est jamais envoyé au modèle. L'agent sait où en est l'utilisateur sans voir plus que ce que vous montrez.
Exécution HITL. Chaque outil porte un niveau de risque appliqué avant toute exécution :
| Niveau | Comportement |
|---|---|
none | exécution directe |
low | exécution, puis notification à l'utilisateur |
high | attente de l'approbation de l'utilisateur |
critical | approbation obligatoire, avec un avertissement d'action irréversible |
En React et en HTML, la fenêtre d'approbation s'affiche dans un Shadow DOM fermé : le CSS de la page ne peut pas la masquer. Le serveur peut aussi bloquer un outil, même si le client le déclare.

AITP. L'Agent-to-Interface Transfer Protocol est un protocole JSON typé de 14 messages. Il synchronise le contexte, les outils, les appels, les approbations, les résultats et l'audio entre l'interface et le serveur, en WebSocket ou en WebRTC. Le texte et la voix passent par le même contrat d'exécution.
Ce qui est disponible aujourd'hui
- Des SDK pour React, Vue, Svelte, Angular et le HTML, y compris pour des pages rendues côté serveur. Hooks, composables, actions, directives ou attributs
data-owllayer-tool: chacun suit le cycle de vie de son framework. - Un runtime serveur avec des adaptateurs OpenAI, Google Gemini et Anthropic Claude, la voix temps réel avec OpenAI Realtime et Gemini Live, et les salons vocaux LiveKit.
- Deepgram pour la voix, en trois modes : transcription et synthèse par lots (Nova, Aura-2), streaming avec détection des tours de parole (Flux), et temps réel avec le Deepgram Voice Agent. Les outils, les approbations et la conversation restent gérés par OwlLayer AI.
- Un widget conversationnel prêt à l'emploi, ou votre propre interface : le contrat reste le même.
- Un tableau de bord et des DevTools embarqués pour voir les sessions, les outils actifs et simuler des appels.
- Des démos exécutables : une boutique React, un back-office Vue, un planificateur de voyage Svelte, une place de marché Angular et une boutique en HTML.
- Des intégrations Shopify et WooCommerce, en version expérimentale.
Le projet est sous licence MIT et en 0.x : les API peuvent encore évoluer, fixez vos versions.
Pour qui ?
Pour les équipes qui veulent un agent qui agit dans leur produit, tout en gardant l'action sûre, bornée et traçable : commerce guidé, tableaux de bord métier, parcours de support, expériences vocales. Partout où l'agent doit être utile sans devenir une couche d'automatisation qu'on ne contrôle plus.
Commencer
- Suivez le démarrage rapide : un serveur, un composant, un premier outil.
- Lisez notre guide pas à pas : rendre une boutique React pilotable par un agent.
- Parcourez le dépôt et lancez les démos.
- Racontez-nous ce que vous construisez dans les GitHub Discussions. Les contributions sont les bienvenues.
Votre interface existe déjà. Il est temps de la rendre agentique.