À propos du projet

LiveKit Agents est un framework open source permettant de créer des participants programmables en temps réel qui s'exécutent sur des serveurs. Il se concentre sur les agents vocaux conversationnels et multimodaux capables de voir, entendre et comprendre, et il est distribué sous forme de package Python (une bibliothèque sœur JS/TS, AgentsJS, est référencée séparément). Principales capacités décrites dans le README : - Intégrations flexibles : combiner et assortir les fournisseurs STT, LLM, TTS et API Realtime pour un cas d'usage donné. - Planification de tâches intégrée : planification et distribution de tâches intégrées avec des API de dispatch pour connecter les utilisateurs finaux aux agents. - Clients WebRTC : les applications clientes peuvent être construites avec l'écosystème de SDK open source de LiveKit sur les principales plateformes. - Téléphonie : fonctionne avec la pile de téléphonie de LiveKit afin que les agents puissent passer ou recevoir des appels téléphoniques. - Échange de données : les RPC et d'autres Data APIs permettent aux agents et aux clients d'échanger des données. - Détection sémantique de fin de tour : un modèle transformer détecte quand un utilisateur a fini de parler, ce qui, selon le projet, aide à réduire les interruptions. - Prise en charge de MCP : les outils provenant de serveurs MCP peuvent être intégrés avec une ligne de code. - Framework de test intégré : des tests et des juges peuvent être écrits pour vérifier le comportement des agents. - Open source : toute la pile peut être auto-hébergée, y compris le serveur LiveKit, décrit comme un serveur média WebRTC largement utilisé. Les concepts clés sont Agent (une application basée sur un LLM avec des instructions), AgentSession (un conteneur gérant les interactions avec les utilisateurs finaux), entrypoint (le point de départ d'une session interactive, semblable à un gestionnaire de requêtes) et AgentServer (le processus principal coordonnant la planification des tâches et le lancement des agents). Les exemples d'utilisation montrent un agent vocal simple reliant VAD, STT, LLM et TTS via LiveKit Inference ou des plugins de fournisseurs directs, ainsi qu'un exemple de transfert multi-agents où un agent d'introduction recueille les détails de l'utilisateur et passe le contrôle à un agent d'histoire qui peut basculer vers un modèle d'API Realtime. Un exemple de test utilise pytest avec une AgentSession, exécute une entrée utilisateur et vérifie des événements tels que les appels de fonctions et les messages de l'assistant, y compris un juge LLM pour l'intention. Modes d'exécution : `python myagent.py console` pour tester l'audio localement dans le terminal sans serveurs externes, `dev` pour un serveur d'agents avec rechargement à chaud qui se connecte à LiveKit Cloud ou à un serveur auto-hébergé, et `start` pour des optimisations prêtes pour la production. Les variables d'environnement LIVEKIT_URL, LIVEKIT_API_KEY et LIVEKIT_API_SECRET sont requises pour les modes connectés à un serveur. Le dépôt inclut un répertoire examples couvrant un agent vocal de démarrage, un appelant sortant, la prise en charge de MCP, un transcripteur multi-utilisateurs, des avatars vidéo avec des fournisseurs tiers et une démo de vision Gemini Live. Le développement utilise uv pour la gestion des packages, ruff pour le formatage et le linting, pytest pour les tests unitaires et pdoc pour la génération locale de documentation. Le framework est sous licence Apache-2.0, tandis que les modèles de détection de fin de tour de LiveKit utilisent une licence distincte, la LiveKit Model License. Les contributions sont les bienvenues via les issues, les pull requests ou le Slack de la communauté.