Building AI agents that hold up in production: what we learned from voice, interviews and GraphRAG
Narrow jobs, grounded answers, deterministic scoring, a latency budget, full logs and a human handoff: the patterns behind our voice agents, AI interviewer and GraphRAG platform.


A demo agent answers a question. A production agent does a job, in front of real customers, on a budget of seconds, and has to be right often enough that people trust it. The gap between those two is mostly engineering, not model choice.
We have shipped three kinds of AI agent: Aether Voice, a voice agent that qualifies leads on live calls; JustInterview.ai, an AI interviewer that adapts as a candidate answers; and a GraphRAG conversational platform for a US venture. These are the patterns that held across all three.
Pattern 1: give each agent a narrow job and a small set of tools
An agent with one clear job and a few well-defined tools is easier to test and cheaper to run than a general assistant. Aether Voice calls, answers, qualifies and routes high-intent leads, and its tools are specific: it can book meetings and check inventory in a CRM through function calling while the call is still going. The tool list is the agent's real capability.
Pattern 2: ground the answer in your data, not the model's memory
An LLM answers from what it learned in training, which is how you get a confident wrong answer, known as a hallucination. RAG fixes the most common case by retrieving your own documents first and answering from them.
When the answer depends on relationships between facts, plain vector search starts to miss. For the US conversational AI venture, we built a GraphRAG pipeline that combines vector similarity with knowledge graph traversal, using Apache AGE and PostgreSQL with pgvector. It is a live production platform, not a demo. See the case study.
Pattern 3: keep the deterministic parts deterministic
Do not ask a model to do what a rule can do. In JustInterview.ai, the interviewer is adaptive, following up on a candidate's answer in real time, but the outcome is scored against a standardised rubric, and code runs in a sandboxed in-browser environment. The model handles the conversation; the scoring and execution stay predictable, which is what makes the result fair to compare.
Pattern 4: design to a latency budget
Voice is the strictest case. People notice a pause, so each stage, from speech recognition to the model to speech output, has a share of a small budget. Aether Voice handles natural interruptions mid-sentence and connects through SIP trunks, Twilio, Plivo and Vonage.
In the GraphRAG platform, the context synthesis step that feeds real-time audio generation runs in under 300 milliseconds. A budget like that decides your design: what you cache, what you precompute, and which calls run in parallel.
Pattern 5: log everything an agent does
When an agent misbehaves you need to see what it heard, what it retrieved, which tool it called and what came back. Aether Voice keeps audio logs and automated transcription. JustInterview.ai builds a candidate dossier with code replay, audio transcripts and integrity checks. The same records let you improve the agent over time.
Pattern 6: plan the handoff to a person
Agents should know when to stop. Aether Voice qualifies and routes leads, and JustInterview.ai produces a scored dossier for the hiring team to review. Decide in advance which cases go to a human, and make the handoff carry the full context so nobody asks the customer to repeat themselves.
Pattern 7: orchestrate with tools you can operate
The GraphRAG platform is orchestrated through n8n workflow triggers with streaming WebSockets, with a background pipeline that parses multimodal user documents into graph nodes. A workflow engine your team can inspect makes the pipeline observable. Our companion post covers running n8n in production.
One agent or many?
A single agent with good tools is the right starting point. Split into several agents only when roles genuinely differ, such as one that retrieves, one that drafts and one that checks, and when you can test each separately. More agents add more handoffs, and every handoff is another place for context to be lost.
How this looks at Techdome
Our AI agents topic page collects the agent work, and the automation practice builds and runs agents and the pipelines around them. The fixed-scope sprints in our Blueprint suit a first agent: the GraphRAG platform went from blank repository to production in two to three weeks.
Related reading
- Production n8n: patterns that keep automation from failing quietly
- Engineering HIPAA-ready telehealth platforms: what changes when an agent touches patient data.
- The Techdome Blueprint
- Webhook retries and idempotency keys, together
Takeaways
- Give each agent one job and a short list of tools it can call.
- Ground answers in your own data, and reach for GraphRAG when relationships matter.
- Keep scoring, routing and rules in code, and keep the model for language.
- Set a latency budget early, log every step, and plan the handoff to a person.
Have a project like this? Talk to our engineers.








