Repository navigation
v1.0.0 β First stable release
First stable release of General Disarray β the self-hosted, voice-powered AI phone assistant. This release brings a smarter agentic conversation engine, a large expansion of voice tools, caller-settable agent personas, an n8n integration package, and a round of latency/barge-in reliability fixes found by testing on real calls.
Highlights
Smarter conversations
- LangGraph agentic engine (
LLM_BACKEND=langgraph) β chains multiple tool calls per turn to reason through multi-step requests. - Cross-call caller memory β remembers facts about a caller and recalls them on their next call.
- RAG knowledge base β answers from your own documents via local embeddings.
- Rolling summaries β long calls no longer lose earlier context.
- "Never guess" grounding β live-data questions are answered with a real tool call, never a guess or an empty promise.
Agent personas (new)
- The caller can set the agent's demeanor for a call ("act like a formal butler") and save/recall styles by name across calls, via the
PERSONAvoice tool. - Ships 8 ready-to-use personas: Professional, Friendly, Formal Butler, Calm, Cheerful, Newscaster, Witty, Pirate.
- Tone-only β personas never override grounding, tool, or safety rules.
13 new voice tools
Fun (dice, coin, trivia, story, drink recipe), information (web search, NWS forecast, KP index, earthquakes), memory & automation (remember/forget, trigger workflow), ops (GPU status, Alertmanager, container control), and blind call transfer.
Integrations
- n8n community node package β call, speak, schedule, run tools, and provision virtual numbers from n8n, with a call-lifecycle trigger and an optional per-call caller name (e.g. "Weather Alert").
- alert-bridge example β turn Alertmanager alerts into escalation phone calls.
- DGX Spark / GB10 support β self-contained compose variant and a CUDA-enabled speaches build.
Reliability fixes (from real-call testing)
- STT latency β end-of-utterance and silence timeouts were running up to 5Γ slow (a 750 ms hangover became ~3.8 s of dead air) because the VAD miscounted variable-length audio reads. Now measured in real time; the agent responds the instant the caller stops talking.
- Barge-in β interruptions were being missed because the detector reset on the natural gaps within speech. It now tolerates inter-syllable gaps and fires reliably (~500 ms) while still ignoring clicks and line noise.
- Web-search read-aloud β no longer reads scraped page snippets verbatim; speaks a clean summary instead.
- Promised-but-not-delivered β a turn that says "let me get that for you" and then goes silent now forces a real tool call.
Testing & CI
Layered test suite (unit / component / e2e); the fast tiers run in GitHub Actions with an error-level ruff gate. 953 unit + component tests pass.
Full details: see PR #2.