Aller au contenu
Préproduction : l'API répond sur https://api.visiobank.com/v1, avec une clé de test. Les exemples gardent l'adresse de production, api.vizalia.ai, qui ouvrira à la mise en production.

Agents vocaux (MCP)

L’agent vocal d’un centre d’appel ou d’une entreprise démarre la vidéo pendant la conversation, sans rien coder : il se branche sur le serveur MCP de Vizalia, qui lui donne ses outils. Quand la voix ne suffit pas, l’agent propose la vidéo, Vizalia envoie le lien par SMS au mobile qui appelle, et le client ouvre sa caméra sans rien installer. L’agent voit alors l’image, prend des photos, filme, guide le client avec votre documentation et dépose le dossier, sans que l’appel s’interrompe.

  • Adresse : https://mcp.vizalia.ai/mcp, en Streamable HTTP.
  • Clé : Vizalia crée votre agent vocal dans son back-office et vous remet sa clé (portée mcp, plus rag pour la documentation), affichée une seule fois, avec l’adresse de fin d’appel. La clé va dans l’en-tête Authorization: Bearer <clé>, jamais dans l’adresse ni dans le prompt. Avec une clé vz_test_…, aucun SMS ne part : ouvrez vous-même le lien rendu par start_session.
  • Liée à l’appel : la plateforme joint à chaque requête l’identifiant de l’appel en cours, dans un en-tête que le modèle ne voit pas. Une session ne se pilote que depuis l’appel qui l’a ouverte. Elle se ferme au raccroché, ou après 16 minutes sans requête de cet appel.
  • Vers l’appelant seulement : le lien ne part que vers un mobile, français par défaut, et trois fois au plus par appel. Quand la plateforme transmet le numéro de l’appelant, comme ElevenLabs et Vapi, c’est le seul destinataire possible, quoi que dise le modèle.
  • Mêmes sessions : une session ouverte par l’agent est une session de l’API (ses_…), avec les mêmes webhooks. Votre logiciel reçoit le dossier par case.submitted et le rapport par report.ready.

Une plateforme qui ne parle pas MCP, comme un serveur vocal qui ne sait appeler qu’une adresse HTTP, démarre la vidéo par l’API : POST /sessions avec le numéro de l’appelant (Démarrer).

  1. Le client décrit son problème ; l’agent propose la vidéo et attend son accord.
  2. start_session envoie le lien. L’agent annonce le SMS seulement si sms_sent vaut true.
  3. session_status, avec wait_for_join, attend que le client ouvre le lien et que sa caméra passe.
  4. Selon le besoin, analyze_frame lit une étiquette ou décrit ce qui se voit, take_photo prend une photo nommée, record_video filme un bruit ou un mouvement, et rag_search puis rag_show_step ou rag_show_document guident le client pas à pas.
  5. submit_case dépose le dossier, avec l’accord du client ; il part en case.submitted.
  6. end_session, puis l’agent raccroche.

Trame de prompt, à compléter avec votre métier :

Si la voix ne suffit pas, propose au client de montrer le problème avec la caméra de son téléphone.
1. Avec son accord, appelle start_session : le lien part vers le mobile qui appelle. Annonce le SMS
seulement si sms_sent vaut true, et garde le session_id exact.
2. Appelle session_status avec wait_for_join jusqu'à customer_joined et video_active.
3. Pour chaque photo, fais cadrer, puis appelle take_photo avec un libellé court. Annonce-la seulement
si l'outil a réussi. Pour la lire, appelle analyze_frame avec son picture_id.
4. Si le bruit ou le mouvement compte, demande un accord distinct, puis appelle record_video.
5. Récapitule, demande l'accord, puis appelle submit_case. Annonce le dépôt seulement si delivered
vaut true.
6. Termine par end_session, puis raccroche.

Six outils ont leur pendant dans l’API :

  • start_session : envoie le lien au client et ouvre la session (POST /sessions).
  • session_status : dit si le client a rejoint et si la vidéo passe, et peut attendre qu’il rejoigne (GET /sessions/{session_id}).
  • take_photo : fait prendre une photo par le téléphone du client (photo.created).
  • record_video : filme 1 à 20 secondes, avec le son du téléphone, deux fois au plus (video.ready).
  • submit_case : dépose le dossier, avec résumé, données, photos et vidéos (case.submitted).
  • end_session : termine la session (POST /sessions/{session_id}/end).

Les autres sont propres au MCP, parce qu’ils agissent pendant l’appel :

  • analyze_frame : interroge le modèle de vision sur l’image en direct ou sur une photo, avec un JSON Schema pour une réponse structurée.
  • start_watch, get_findings, stop_watch : surveillent la vidéo en continu sur une consigne (« fuite d’eau ») et relèvent les constats.
  • rag_search, rag_show_step, rag_clear_steps, rag_show_document, rag_hide_document : cherchent dans votre documentation technique, puis affichent une étape ou la page d’une notice sur le téléphone du client ; la clé doit aussi avoir la portée rag.

get_agent ne sert qu’à l’agent vocal de Vizalia : le vôtre ne l’appelle pas. take_photo répond en 25 secondes au plus et record_video en 85 : réglez le délai des outils de votre plateforme au-dessus. Chaque outil décrit lui-même ses paramètres et ses erreurs : l’agent les découvre à la connexion.

Une session ouverte par l’agent est une session de l’API (ses_…) : elle envoie les mêmes webhooks. Abonnez-vous à case.submitted pour le dossier déposé par l’agent (résumé, données, photos, vidéos) et à report.ready pour le rapport.

Vous recevez déjà le dossier par le webhook de dossier réglé dans le back-office : voyez Passer du webhook de dossier à case.submitted.