Un éditeur exploite pour des négociants en pièces son propre système de tickets et de chat. Les clients doivent obtenir des réponses plus vite, mais personne ne veut qu’un modèle de langage modifie seul une adresse ou envoie une étiquette de retour. La question n’est donc pas de répondre automatiquement, mais de savoir qui peut agir.
L’interface Hub de l’agent sépare nettement les deux : un tour renvoie la réponse et une liste d’actions que votre système doit exécuter. Ce qui porte requiresConfirmation n’a lieu que si votre système le confirme au tour suivant. L’agent formule, votre système agit.
| Surface | Rôles |
|---|---|
| Agent commercial | Éditeur de logiciels, Plateforme et marketplace, Commerce de pièces |
Ce que ce cas suppose
- Un profil configuré.
POST /agent/conversationsexige unprofileId; sans profil, ni instruction, ni ton, ni permissions. - Vos propres outils pour les actions. Ce que l’agent propose, votre système doit pouvoir l’exécuter — suivi d’envoi, changement d’adresse, étiquette de retour.
- Un endroit pour recueillir les confirmations. Une action avec
requiresConfirmationattend un oui explicite. - La clé API côté serveur. Cette interface est destinée à votre backend, non au navigateur du client.
Le déroulement
Le tableau indique pour chaque étape l’appel compétent et ce qui existe ensuite. La justification de l’étape figure en dessous.
| Étape | Appel | Ce qui existe ensuite |
|---|---|---|
| Lire le contrat | GET /agent/capabilities | actionTypes, intents et limits — lus à l’intégration au lieu d’être codés en dur |
| Créer la conversation | POST /agent/conversations | profileId obligatoire, en option channel et threadKey ; en retour conversationId et greeting |
| Exécuter un tour | POST /agent/conversations/{conversationId}/messages | reply et actions ; requiresConfirmation attend votre confirmation au tour suivant |
| Ajouter sans tour | POST /agent/conversations/{conversationId}/ingest | author end_user ou note — enregistré sans solliciter le modèle |
| Clore la conversation | POST /agent/conversations/{conversationId}/close | outcome comme sold, not_sold ou handed_over, avec orderRef |
Pourquoi chaque étape est nécessaire
- Lire le contrat.
GET /agent/capabilitiesindique formats, canaux,actionTypes,intentsetlimits. Le contrat recommande expressément de le lire une fois à l’intégration plutôt que de coder les limites en dur — sinon votre intégration vieillit en silence à la prochaine extension. - Créer la conversation.
POST /agent/conversationsexigeprofileIdet prend en option, entre autres,channel,threadKey,subjectetexternalRef. Le contrat ne décrit pas l’effet dethreadKeyà la création ;GET /agent/inbox/conversationsse filtre parthreadKeycomme clé de fil exacte. - Exécuter le tour.
POST /agent/conversations/{conversationId}/messagesrenvoiereply,intent,needsHuman,findingsetactions. Chaque action porte untype—customer_tool,hub_call,handoffourequest_photo— et, le cas échéant,requiresConfirmation. Les résultats reviennent au tour suivant entoolResults, les confirmations enconfirmations. - Ajouter sans tour.
POST /agent/conversations/{conversationId}/ingestenregistre un message ou une note interne avecauthorend_userounote, sans solliciter le modèle. C’est la voie pour les conversations qu’un collègue mène. - Clore la conversation.
POST /agent/conversations/{conversationId}/closeprend unoutcome— par exemplesold,not_sold,handed_overouspam— et en optionorderRef. La clôture n’est pas une formalité : elle seule permet d’évaluer ce que l’agent a réellement produit.
curl -X POST \
-H 'X-Api-Key: <API_KEY>' \
-H 'Content-Type: application/json' \
-d '{"confirmations":[{"actionId":"<actionId>","confirmed":true}]}' \
'https://api.tapinomahub.com/hub/index.php/agent/conversations/<conversationId>/messages'Ce que l’on obtient
Au final, votre système répond plus vite sans que l’agent modifie jamais lui-même une commande. Chaque action passe par vos outils, chaque action sensible par une confirmation — et chaque conversation se termine par un résultat exploitable.
Où cela figure dans la documentation
Les listes de champs contractuelles, les codes d’erreur et les réponses d’exemple se trouvent dans le contrat OpenAPI de cette surface, à l’adresse docs.tapinomahub.com (tapinoma-agent). Tous les cas d’usage classés par surface et par rôle : aperçu des cas d’usage.
Sources et références juridiques
Questions fréquentes
L’agent exécute-t-il lui-même les actions ?
Non. Il les fournit comme propositions dans actions. Votre système les exécute et renvoie le résultat au tour suivant en toolResults.
À quoi sert ingest s’il y a des tours ?
Aux messages auxquels le modèle ne doit pas répondre — par exemple quand un collègue mène la conversation ou pour une note interne. Ces messages ne sollicitent pas le modèle.
Dois-je maintenir moi-même des limites comme la longueur des messages ?
Non. Elles figurent dans GET /agent/capabilities sous limits. Lisez-les à l’intégration au lieu de les coder en dur.
