Sobre o projeto

LiveKit Agents é um framework de código aberto para criar participantes programáveis em tempo real que rodam em servidores. Seu foco são agentes de voz conversacionais e multimodais que podem ver, ouvir e entender, e é distribuído como um pacote Python (uma biblioteca irmã em JS/TS, AgentsJS, é referenciada separadamente). Principais capacidades descritas no README: - Integrações flexíveis: combine e alterne provedores de STT, LLM, TTS e Realtime API para um determinado caso de uso. - Agendamento de tarefas integrado: agendamento e distribuição de tarefas incorporados, com APIs de dispatch para conectar usuários finais a agentes. - Clientes WebRTC: aplicações cliente podem ser criadas com o ecossistema de SDKs de código aberto do LiveKit nas principais plataformas. - Telefonia: funciona com a stack de telefonia do LiveKit para que agentes possam fazer ou receber chamadas telefônicas. - Troca de dados: RPCs e outras Data APIs permitem que agentes e clientes troquem dados. - Detecção semântica de turno: um modelo transformer detecta quando um usuário terminou de falar, o que o projeto afirma ajudar a reduzir interrupções. - Suporte a MCP: ferramentas de servidores MCP podem ser integradas com uma linha de código. - Framework de testes integrado: testes e juízes podem ser escritos para verificar o comportamento do agente. - Código aberto: toda a stack pode ser auto-hospedada, incluindo o servidor LiveKit, descrito como um servidor de mídia WebRTC amplamente usado. Os conceitos centrais são Agent (uma aplicação baseada em LLM com instruções), AgentSession (um contêiner que gerencia interações com usuários finais), entrypoint (o ponto de partida para uma sessão interativa, semelhante a um manipulador de requisições) e AgentServer (o processo principal que coordena o agendamento de tarefas e inicia agentes). Exemplos de uso mostram um agente de voz simples conectando VAD, STT, LLM e TTS via LiveKit Inference ou plugins diretos de provedores, além de um exemplo de handoff entre múltiplos agentes, em que um agente de introdução coleta detalhes do usuário e passa o controle para um agente de história que pode alternar para um modelo de Realtime API. Um exemplo de teste usa pytest com um AgentSession, executa uma entrada do usuário e faz asserções sobre eventos como chamadas de função e mensagens do assistente, incluindo um juiz LLM para intenção. Modos de execução: `python myagent.py console` para teste de áudio local no terminal sem servidores externos, `dev` para um servidor de agente com hot-reloading que se conecta ao LiveKit Cloud ou a um servidor auto-hospedado, e `start` para otimizações prontas para produção. As variáveis de ambiente LIVEKIT_URL, LIVEKIT_API_KEY e LIVEKIT_API_SECRET são necessárias para os modos conectados ao servidor. O repositório inclui um diretório de exemplos cobrindo um agente de voz inicial, um chamador de saída, suporte a MCP, um transcritor multiusuário, avatares de vídeo com provedores de terceiros e uma demonstração de visão do Gemini Live. O desenvolvimento usa uv para gerenciamento de pacotes, ruff para formatação e linting, pytest para testes unitários e pdoc para geração local de documentação. O framework é licenciado sob Apache-2.0, enquanto os modelos de detecção de turno do LiveKit usam uma Licença de Modelo LiveKit separada. Contribuições são bem-vindas via issues, pull requests ou o Slack da comunidade.