Workers des agents vocaux (livekit-agents)
Workers LiveKit Agents qui répondent aux appels routés vers un agent vocal Navin : inscrits sous le nom d'agent des règles de dispatch SIP, ils lisent la configuration de l'agent dans Navin Enterprise, dialoguent par des points d'accès compatibles OpenAI de transcription, de LLM (LiteLLM) et de synthèse vocale, transfèrent vers un humain et remontent les événements d'appel.
Généré depuis catalog/services/livekit-agents.yaml : ne pas modifier à la main.
Résumé
| Version | 1.0.0 |
| Usage | installer et configurer |
| Couche | fonctionnelle (catalogue IA) |
| Catégorie | Inférence IA |
| Méthodes d'installation | python |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| Identifiant SPDX | Apache-2.0 |
| Politique de licence | licence socle (MIT ou Apache-2.0) |
| Exception de licence | - |
| Exceptions de licence de ses dépendances | LEX-029 (en attente de la décision du client), LEX-030 (en attente de la décision du client), LEX-031 (en attente de la décision du client) |
| Remarque de licence | Le SDK LiveKit Agents et ses greffons OpenAI et Silero sont sous Apache-2.0 (https://github.com/livekit/agents) ; le paquet navin-voice-agent est le code de Navin. |
| Composant de la plateforme | livekit-agents |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
| Type | Paquet | Version | Licence | Détails |
|---|---|---|---|---|
| paquet Python | navin-voice-agent | 1.0.0 | LicenseRef-Navin-Enterprise | interpréteurs, par ordre de préférence python3.12, python3.11, python3.10 |
| paquet Python | livekit-agents | 1.8.10 | Apache-2.0 | interpréteurs, par ordre de préférence python3.12, python3.11, python3.10 |
| paquet Python | livekit-plugins-openai | 1.8.10 | Apache-2.0 | interpréteurs, par ordre de préférence python3.12, python3.11, python3.10 |
| paquet Python | livekit-plugins-silero | 1.8.10 | Apache-2.0 | interpréteurs, par ordre de préférence python3.12, python3.11, python3.10 |
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|---|---|
python | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64, aarch64 (non restreintes par le descripteur) |
Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
- au moins 2048 Mo de mémoire (avertissement,
memory). - au moins 2 CPU (avertissement,
cpu).
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|---|---|---|
worker | health | 8581/tcp | non |
worker | metrics | 6793/tcp | oui |
Services et connexions nécessaires
livekit:livekit.navin_enterprise:navin-enterprise.litellm:litellm.
Détail et résolution : voir Dépendances.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|---|---|
python | oui | un environnement virtuel Python qui contient les paquets Python du descripteur |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|---|---|---|
Worker d'agent vocal (worker) | travailleur | python | 8581/tcp, 6793/tcp |
Worker unique (single) (par défaut)
Un seul hôte de worker.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
worker | min 1, max 1 |
Pool de workers (pool)
Plusieurs workers inscrits sous le même nom d'agent ; LiveKit confie chaque nouvel appel à un worker sous son seuil de charge.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
worker | min 2, recommandé 2 |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez Workers des agents vocaux. La carte affiche la licence
Apache-2.0et les dépendances dont l'installation a besoin. -
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode :
single(par défaut),pool. Chaque mode déploie les composants listés dans Méthodes et modes d'installation. -
Liez les dépendances. À l'étape Liaisons, choisissez pour chaque dépendance (
livekit,navin_enterprise,litellm) Installer avec la plateforme ou Utiliser une connexion existante ; une dépendance facultative peut rester sur Aucune liaison. -
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.
-
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.
Haute disponibilité
| Cluster | natif (native) |
| Haute disponibilité | redondance (redundancy) |
| Bascule | natif (native) |
| Réplication | aucun (none) |
| Quorum | aucun (none) |
| Découverte | registre (registry) |
| Point d'entrée | aucun (none) |
| Documentation officielle | https://docs.livekit.io/agents/server/ |
| Références | https://github.com/livekit/agents |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|---|---|---|---|---|
single | autonome (standalone) | unique (single) | - | 1 | Un worker, sans tolérance aux pannes. |
pool | ha (ha) | jobs parallèles (parallel-jobs) | - | 2 | Plusieurs workers ; LiveKit confie chaque nouvel appel à un worker disponible. |
Remarques
- La perte d'un worker arrête les sessions vocales qu'il porte ; la règle de secours de Navin Enterprise route ces appels vers une file humaine.
Paramètres de configuration
Réseau
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Port de santé (health_port) | port | 8581 | - | non | non | non | Santé HTTP du worker : 200 une fois inscrit auprès de LiveKit, 503 sinon ; /worker donne son nom d'agent et sa charge. |
Port des métriques (metrics_port) | port | 6793 | - | non | non | non | Port Prometheus du worker. |
URL LiveKit (livekit_url) | string | (vide) | - | non | non | non | URL ws:// ou wss:// du serveur LiveKit (son répartiteur en mode distribué) ; vide : le premier serveur de la liaison livekit. |
Modèles
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Nom d'agent (agent_name) | string | navin-voice | ^[a-z][a-z0-9-]{1,62}$ | non | non | oui | Nom que les règles de dispatch de Navin Enterprise donnent dans room_config.agents (dispatch explicite). |
Clé LLM (llm_api_key) | password | (vide) | - | non | oui | non | Clé virtuelle LiteLLM des workers (sk-...) ; vide : la clé maître de la liaison litellm. |
Clé vocale (speech_api_key) | password | (vide) | - | non | oui | non | Clé des points d'accès de transcription et de synthèse ; vide : la clé LLM. |
Capacité
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Seuil de charge (load_threshold) | float | 0.7 | min 0.1, max 1.0 | non | non | non | Charge CPU au-dessus de laquelle un worker ne prend plus d'appel. |
Processus prêts (idle_processes) | int | 2 | min 0, max 64 | non | non | non | Processus de tâche gardés prêts (VAD chargé) pour répondre sans délai. |
Dépendances
Pour chaque dépendance active, le Manager prend la première solution parmi : la liaison choisie dans l'assistant ; un service de la même installation qui la fournit ; un service déjà installé dans le cluster ; la seule connexion du type attendu. Sinon, une dépendance facultative reste non liée, et une dépendance obligatoire est ajoutée à l'installation dans son mode par défaut (la colonne ci-dessous nomme le service du catalogue ajouté).
| Liaison | Fournie par | Type de connexion | Point d'accès | Facultative | Quand rien n'est lié | Description |
|---|---|---|---|---|---|---|
livekit | livekit | - | signal | non | livekit est ajouté à l'installation | Serveur LiveKit auprès duquel les workers s'inscrivent (paire de clés d'API). |
navin_enterprise | navin-enterprise | - | api | non | navin-enterprise est ajouté à l'installation | API téléphonie de Navin Enterprise : configuration des agents vocaux, événements d'appel, transferts et recherches (jeton de worker de la liaison). |
litellm | litellm | - | api | non | litellm est ajouté à l'installation | Passerelle compatible OpenAI du LLM et, quand Navin Enterprise les y route, des modèles vocaux. |
Commandes
| Commande | Composant | Cible | Description |
|---|---|---|---|
État du worker (worker_info) | worker | tous les hôtes | Nom d'agent, appels en cours et charge de chaque worker. |
Journaux récents (logs) | worker | hôte choisi | Dernières lignes du journal du worker. |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|---|---|
worker | HTTP http://{{ host.ip or '127.0.0.1' }}:{{ config.health_port }}/ | Attendu 200 ; 60 tentatives ; intervalle 2 s ; délai 3 s |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|---|---|---|---|
memory | memory_mb {"min": 2048} | au moins 2048 Mo de mémoire | avertissement | tous les composants |
cpu | cpu_count {"min": 2} | au moins 2 CPU | avertissement | tous les composants |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.log }}.
Liens rapides
- Métriques :
http://{{ host.fqdn }}:{{ config.metrics_port }}/metrics
Documentation amont
- Site : https://docs.livekit.io/agents/
- Sources : https://github.com/livekit/agents
- Haute disponibilité : https://docs.livekit.io/agents/server/
- Haute disponibilité : https://github.com/livekit/agents