// the find
bolna-ai/bolna
Conversational voice AI agents
Bolna is a Python orchestration layer for building voice AI pipelines that wire together ASR, LLM, and TTS providers over WebSockets, with telephony integration via Twilio/Plivo. It targets developers who want to ship phone-based voice agents without building the streaming plumbing from scratch. The architecture is provider-agnostic by design, using LiteLLM under the hood for the LLM layer.
The provider matrix is genuinely wide — Deepgram, AssemblyAI, ElevenLabs, Cartesia, Sarvam, and more are all first-class, with clean base classes that make adding a new provider a matter of subclassing and filling in a handful of methods. The interruption and barge-in handling is a real differentiator; most DIY implementations get this wrong and the test suite has dedicated tests for it (test_end_call_bargein_guard, test_task_manager_interruption_chain). The graph-based conversational agent type supports branching conversation flows that go beyond simple prompt-response loops. Test coverage is surprisingly solid for a project this size — there are latency tests, pool reconnect tests, and SSRF validation, not just happy-path smoke tests.
The README openly admits the team has 'fluctuated between maintaining this repository' due to time constraints and is actively looking for maintainers — that's a red flag if you're building production infrastructure on it. The local setup requires ngrok and four Docker containers just to make a test call, which is a lot of friction for evaluating the core orchestration. Redis is used for agent/prompt persistence but there's no guidance on what happens when Redis is unavailable or how to migrate state, so the failure mode is opaque. The hosted API and no-code UI are closed source, meaning the open-source repo is technically complete but you lose access to the full platform experience unless you're a paying customer.