Agentic AI · Backend & cloud
In developmentAvagenc
A multi-agent assistant that acts across your inbox, calendar, contacts, music and home devices from a single conversation.
- Role
- Co-founder · engineering lead
- Timeline
- 2025 — present
- Status
- In development.
- Core stack
- Go · Next.js · Android
What it is
Avagenc is an assistant built around agents rather than around a chat box. You ask for something in plain language — reschedule this meeting, find the thread where we agreed a price, turn the lights down — and an orchestration layer works out which tools to call, in what order, and what to do when one of them fails halfway through.
The problem
Most assistants stop at answering. The work people actually want to hand over is the connective tissue between services: read one, decide something, write to another. That forces three things a chat interface never has to solve — holding context across tools, asking before an irreversible action, and staying predictable enough that someone will point it at a real inbox.
How it went
01Answers were never the bottleneck
Every assistant I used could tell me what was in my calendar. None of them could move the meeting. The gap was not intelligence — it was that nothing was allowed to act, so the last, tedious step always came back to me: open the other tab, copy the detail across, send the message.
Avagenc started from the opposite end. Assume the model can already reason well enough, and spend the engineering on the part that is actually hard — letting it touch real accounts without becoming something you have to supervise.
02The demo worked. The second chain did not
A single tool call is easy. The first time a request needed three in a row — read the thread, find the free slot, send the invite — the failure modes stopped being about the model at all. A calendar call would time out after the email had already been read, and the run would end somewhere in the middle with no way to say what had and had not happened.
That is what pushed every integration behind one interface and every irreversible step behind a confirmation. Gmail, Calendar, Contacts, Spotify and Tuya disagree about almost everything; the orchestrator should not have to know that any of them exist.
The hard part was never the model. It was deciding what an agent is allowed to do without being asked.
03Where it is now
A Go orchestration layer, a Next.js web client and an Android client, containerised so the thing I run locally is the thing that runs in the cloud. Live integrations across five services, with conversation memory in a vector store so the assistant is still useful on the second day.
It is not finished. It is in the state where the interesting problems left are product problems rather than plumbing ones — which is where I wanted it to be.
Architecture
The decisions
Go for the orchestration layer
An agent run is mostly waiting on network I/O, and several of those calls are independent of each other. Goroutines make that fan-out cheap and keep the concurrency explicit in the code rather than hidden inside a framework.
Trade-off A much smaller AI ecosystem than Python, so a lot of the agent plumbing is written by hand instead of imported.
Every integration behind one uniform tool interface
Gmail, Google Calendar, Google Contacts, Spotify and Tuya disagree about auth, payload shape and how they fail. Wrapping each behind the same contract means the agent reasons about capabilities, not about vendor APIs.
Trade-off Each new service costs an adapter before it costs a feature.
Conversation memory in a vector store, retrieved per turn
An assistant that forgets what you told it last week is a demo. Retrieval keeps the prompt small while the useful history stays reachable.
Trade-off Retrieval quality becomes its own tuning problem, and a bad recall is harder to debug than a missing feature.
Containerised services, the same image locally and in the cloud
When one person owns both the code and the deploy, the only sustainable answer is that the two environments are the same thing.
Trade-off More setup than pushing a folder to a host, and an image to keep patched.
Where it landed
- Web platform, Android client and the agent orchestration layer built end to end.
- Live integrations across Gmail, Google Calendar, Google Contacts, Spotify and Tuya smart-home devices.
In hindsight
The hard part was never the model. It was deciding what an agent is allowed to do without asking, and making a failure legible when a tool call breaks in the middle of a chain. Starting again, I would design the confirmation and rollback story first and let the prompt follow from it.
Built with
- Go
- Next.js
- Android
- LLM agents
- Vector database
- Docker
- GCP
Next case study
Datafact
A serverless engine that turns a Google Form and a chosen persona into coherent, human-plausible survey responses at scale.