Ingénierie · Produit

Un registre, deux interfaces : garder l’appli et l’agent au même niveau

Chaque fonctionnalité de LVLZ est définie une seule fois et devient un outil de l’agent, un endpoint d’API et une ligne sur notre site. Pourquoi cette parité compte et comment nous l’imposons.

L’équipe LVLZ · · 2 min de lecture

LVLZ a deux portes d’entrée. Vous pouvez écrire à votre agent, ou ouvrir l’espace de travail dans l’application web. Nous avons fixé une règle très tôt : tout ce que l’on peut faire d’un côté, on peut le faire de l’autre. Cet article explique comment nous tenons cette promesse sans compter sur la mémoire et les bonnes intentions.

Pourquoi la parité compte

Si l’appli peut archiver un projet mais pas l’agent, vous apprenez à ne pas le demander à l’agent. Si l’agent peut créer une routine mais que l’appli ne peut pas l’afficher, vous cessez de faire confiance à l’appli. Chaque écart vous apprend à contourner le produit. La parité, c’est ne jamais avoir à se demander quel côté peut faire quoi.

Une définition par fonctionnalité

Chaque opération, comme créer une tâche, envoyer un e-mail ou lancer une tâche de navigation, est définie une seule fois dans un registre partagé. Une définition contient :

  • une clé stable, comme task.create,
  • un schéma typé pour ses entrées,
  • son mode de contrôle (si elle nécessite votre validation),
  • les interfaces qui la proposent,
  • un exemple de la façon dont vous la demanderiez avec vos propres mots.

À partir de cette définition unique, nous générons l’outil appelé par l’agent, l’endpoint HTTP appelé par l’appli et l’entrée d’un manifeste. Le même handler sert l’agent et l’appli : le comportement est identique par construction.

Une vérification qui fait échouer le build

Les définitions ne garantissent pas à elles seules la parité, car il faut encore implémenter chaque côté. Notre build exécute donc une vérification de parité. Si une fonctionnalité est marquée comme disponible mais qu’un côté n’a pas implémenté l’une de ses opérations, le build échoue. Si une opération est implémentée partout mais toujours marquée « bientôt », le build échoue aussi : le statut public ne peut pas prendre de retard sur la réalité.

Le site lit la même liste

Le manifeste alimente aussi ce site. La page des fonctionnalités et toutes les pages qui en dépendent listent chaque fonctionnalité avec son statut, Disponible, Bientôt ou Plus tard, et l’endroit où elle fonctionne : l’appli ou WhatsApp. Quand nous livrons quelque chose, la page se met à jour au déploiement suivant. Quand nous écrivons qu’une chose arrive, c’est parce que le registre le dit.

Ce que cela change pour vous

Vous apprenez LVLZ une seule fois. Tout ce que vous trouvez dans l’appli, vous pouvez le demander par message, et tout ce que fait l’agent, vous le retrouvez dans l’appli. Et quand vous lisez notre liste de fonctionnalités, vous lisez le code.

À lire aussi

Votre agent, à un message près

Un seul abonnement : votre agent et tous les outils sur lesquels il s’appuie. Envoyez un message WhatsApp, il configure votre espace pendant que vous discutez.

Interroger une IA sur LVLZ