03 · 2026
Donna
A multi-agent assistant on a self-managed VPS, with cost-aware model routing.
- Role
- Sole engineer
- Stack
- Node.js, TypeScript, Docker, systemd, Telegram Bot API
- Status
- Running in production for one user
The problem
Running a capable agent continuously is expensive, and the obvious approach, sending everything to the largest model, costs far more than most tasks justify. The interesting problem was keeping capability while making cost a first-class design constraint.
Treating model choice as a routing problem rather than a default turned an unaffordable system into a cheap one.
What I built
A supervisor process hosting several specialised sub-agents, each with its own persona and tool surface, reachable over chat. A routing layer sends each task to the cheapest model that can handle it and escalates only when needed, with session resets and prompt caching to bound idle cost.
Next project
Google Maps Agent MCP →