01 / Context
The problem.
A voice agent needs more than speech and language models. Audio state, tool boundaries, memory, application integration, and feedback shape the interaction.
02 / My contribution
What I built.
I built an inspectable stack with on-device ASR, local inference, tool selection, speech synthesis, memory, desktop automation, telemetry, and action controls. The public repository includes architecture documentation and tests.
03 / Approach
Engineering decisions.
Choose deliberate audio behavior
Default half-duplex audio gates the microphone during speech synthesis so the agent does not transcribe its own output.
Separate orchestration from tools
Configuration, memory, tools, audio, and interface responsibilities live in distinct modules.
Make failures visible
Tool outcomes feed back into the interaction instead of unconditional success messages.
Define local-first
Inference runs locally, while web search and some external tools still need internet connectivity.
04 / Outcome & context
What this work shows.
A public project exposing implementation, architecture, configuration, and limitations. Desktop automation currently targets Windows and depends on installed applications and model configuration.
An inspectable implementation makes it possible to discuss behavior beyond the model’s response.
Explore the repository