Aller au contenu principal
Version: Cible · roadmap

Concepts

Convoy décide qui peut faire quoi, avec quels outils, dans quel ordre, quand — et ce qui se passe ensuite.

Une station, toutes les portes, les mêmes règles : notre agent n'est qu'un client parmi les autres.

dans la phraseprimitive
quiaccès : identité, profils, sous-identités
peutpolitiques
faire quoi, avec quels outilscapacités : skills et leurs actions
dans quel ordreparcours : playbooks
quandce qui ouvre : un événement entrant, une automatisation, l'intention reconnue par le modèle
et ce qui se passe ensuitece qui suit : événements émis, livraisons, automatisations

Puis, autour de ces règles :

  • la station les porte une seule fois, pour tout agent ;
  • ses canaux sont les portes par lesquelles les agents la joignent : MCP, WebMCP, l'API ;
  • les agents sont ses clients : Claude, ChatGPT, l'agent d'une entreprise, et le nôtre ;
  • les portails sont l'endroit où notre agent rencontre des personnes : widget, PWA, Teams, Slack, WhatsApp.

Un canal relie un agent à la station ; un portail relie une personne à notre agent.

Les mots​

motce que c'est
stationun déploiement : APIs + config, joignable par ses canaux. Versionnée : staging, puis production.
organisationle client. Elle possède ses stations, son annuaire, ses clés.
usercelui que la station sert : le client (product), l'employé (process). Profils et permissions s'appliquent à lui et à ses agents.
admincelui qui construit et fait tourner la station : le product builder (product), l'admin IT (process). Il agit dans la console, jamais dans une room.
propriétaire (owner)le user à qui la room appartient, une fois son identité vérifiée. La personne dont il s'agit, elle, est concernée (concerns).
identifiantune donnée qui identifie la room : phone, email, customer_id… Il est déclaré quand la personne l'a tapé (il reste dans sa room), vérifié quand un fournisseur l'a prouvé (il retrouve ses autres rooms).
fournisseur d'identitéun mécanisme que Convoy prépare et que la station configure : otp, oidc (Okta, Auth0, Keycloak, Entra ID), assertion. Il dit quelle donnée il vérifie (verifies:).
globalce qui vaut pour toute la station : langue, devise de tous les champs price, format, fuseau.
agentl'agent que Convoy déploie : sa voix, ses consignes, ses portails. Un client de la station, comme un agent externe.
canalune porte de la station pour les agents : MCP, WebMCP, l'API. Les mêmes règles derrière chacune.
portaillà où notre agent parle : web (widget, PWA), teams, slack, whatsapp. Chacun dit comment il prouve qui parle.
actionce qu'une skill propose : « acheter cet article », « rembourser 72 € ». Dans la config, une action s'appelle un item ($item). Une action se lit ou s'écrit.
kindune catégorie d'actions, reconnue par une condition sur leurs champs. Un kind peut être présenté, choisi et exécuté autrement, et déclarer les champs que la personne remplit pour chacune de ses lignes.
profilune catégorie d'acteurs, reconnue par une condition sur l'identité. Un profil peut être servi autrement, sur les mêmes points qu'un kind.
skillune compétence : elle répond à un besoin en proposant des actions. Elle dit comment les obtenir (invoke), les classer (kinds), les présenter (present), les réserver (select) et les exécuter (submit).
sélectionl'ordre d'actions de la room : les écritures réservées, et les traces des lectures.
gardeune politique évaluée avant qu'une action soit réservée (ou lue).
playbookun ensemble de tâches qui mène à un résultat. Il impose leur ordre, ajoute des gardes, et se termine par son submit. Une commande qui envoie en une requête les lignes de plusieurs tâches se déclare une fois, sur ce submit.
sous-playbookune tâche qui est elle-même un playbook, avec son propre submit. Le parent reçoit son résultat déjà exécuté.
submitl'exécution des écritures réservées, dans l'ordre : un appel qui lit la sortie d'un autre part après lui ; sinon les appels des skills, puis ceux du playbook. Il ferme le playbook.
automatisationun acteur qui démarre, relance ou notifie sur un événement. Elle n'écrit jamais dans un outil et ne soumet jamais.
politiquetoute restriction, où qu'elle s'applique. Type rule (déterministe, budgets compris) ou smart (un modèle et un seuil : elle peut demander un humain, jamais autoriser).
événementun fait : entrant (d'un outil, d'une autre station), interne à Core, ou émis par la station. Il ne se refuse pas ; il se livre.
outboundla livraison des faits émis à un système externe. Elle ne décide rien.
budgetune politique rule qui plafonne plusieurs actions : une somme ou un nombre, par portée et par période.
consommationce que la station coûte au tenant (parcours, appels au modèle, livraisons). Se lit et se facture ; ce n'est pas une politique.
boîtelà où la station demande à une personne de décider, avec un délai et une escalade. Ce n'est pas un portail.
rooml'espace d'une personne (ou d'une équipe) avec la station. Le parcours en cours appartient à la room : plusieurs personnes, plusieurs sessions, plusieurs jours.
testun comportement promis par la station, rejoué sans modèle. Vrai ou faux ; un échec bloque la version de la station.
evalce que notre agent fait d'une demande, joué plusieurs fois avec son modèle. Un taux ; un échec bloque la version de l'agent.
journalce qui a été décidé, par qui, sur quoi, avec quelles règles. On peut le rejouer.

Le cycle de vie d'une action​

Une action placée dans la sélection a un état. Les événements internes portent les mêmes noms : action.pending, action.reserved, action.executed…

actionvieau submit
une écritureproposée → en attente (d'une personne ou d'un service) → réservée → exécutée · refusée · en attente d'un parentexécutée, dans l'ordre
une lecturelue → remplacée · périméejamais rejouée ; portée dans le reçu

Une lecture laisse une trace parce que la personne qui soumet doit voir sur quoi repose l'action (« Facture INV-2291 vérifiée · 120 € » au-dessus de « Rembourser 120 € »). Une trace ne compte pas dans le total. Elle est remplacée, jamais supprimée.

Un refus ne fait pas reculer le parcours : l'action revient à proposée, et le plan est recalculé.