level: technical
anovax is a local-first voice assistant that runs as a single python process on the user's machine. it uses a wake-word gate and a speech pipeline to capture commands, then sends them to an llm planner based on gemini. the planner outputs a json plan of tool calls, which passes through a safety layer with whitelist and denylist checks. a multi-agent orchestrator then translates the plan into typed child agents running on a bounded thread pool.
each tool maps to a specialized agent class, such as appagent, typingagent, or browseragent, along with six others. these agents have their own timeouts, retry policies, and locks for shared resources. a recursive metaagent allows the planner to delegate a sub-goal back to itself, limited to two levels of nesting. this design keeps the system modular and prevents runaway recursion.
when a core step fails, an adaptive recovery loop takes over. it uses a compact representation of the failure context to decide on a fix, such as retrying with different parameters or falling back to a simpler action. the entire system runs locally, avoiding cloud pipelines and keeping raw audio on the device. this approach gives users more privacy and control over their desktop automation.
why it matters: running voice assistants locally reduces privacy risks and latency, while typed agents and recovery loops make automation more reliable for ai-driven desktop tasks.