Applied AI systems case study

Building AI agents that know when to stop.

Two hands-on builds from 2026. A multi-agent orchestrator that routes each request to the right agent, pauses for human approval before risky actions and checks the output before it is returned. And an outbound voice agent that holds a real phone conversation in Singapore English and Mandarin.

Multi-agent orchestrator

A local service that takes a request, decides what kind of work it is, and hands it to the right worker: a direct model call, a coding agent, or a general tool-using agent. The design principle is that the model is not the permission system. Rules in code decide what may run.

Requestany chat front end or API
Routerintent, risk, required capabilities
Approval gatehuman sign-off for write or risky actions
Worker agentmodel, coding agent or tool agent
Review gaterejects empty, placeholder, cut-off or refusal output
Answer + run log
Routing

Picks requirements, not vendors.

The router outputs what the task needs (repository access, tests, terminal, risk level) and a resolver maps that to an available worker. Swapping a model or agent does not change the routing logic.

Fail closed

Missing capability means stop.

If no worker has the required capability, or approval has not been given, the run is blocked and logged rather than attempted with a weaker tool. Policy comes from server configuration, and a request cannot switch its own safeguards off.

Human in the loop

Approval before risky actions.

Write, destructive, sensitive or financial requests stop for a human decision. A permission check runs before any local agent process starts.

Measuring the review gate

A gate is only useful if it catches bad output without blocking good output, so I built a labelled set of 30 test cases and scored the gate against it. Each case states what should happen and why.

MeasureNew gateRules it replaced
Planted defects caught (empty, placeholder, truncated, refusal)12 of 123 of 12
Good outputs wrongly flagged0 of 120 of 12
Defects caught for the wrong reason0n/a
Pilot runs13 recorded runs: 5 completed, 7 blocked by design, 1 failed. 3 approvals granted by a human before execution, 2 left pending.
What the test coversThe rule-based review gate. It checks that output is complete and usable, not whether the model's answer is correct.
What it does not cover yetAnswer quality from the model-backed reviewer, and off-topic or unsupported claims. Six cases in the set are kept as known limits that a text filter cannot settle.

Outbound voice agent

A proof of concept for an AI agent that places a real phone call and holds a natural conversation. Built over a week in October 2026 on a voice platform, with the conversation design, provider choices and call handling done in my own code.

Transparency

Always says it is an AI.

The agent states it is an AI at the start of the call, never denies it when asked, and gives a recording notice when the call is recorded.

Conversation

Built to be interrupted.

Callers can cut in mid-sentence and the agent stops and answers. Tuning fixed repeated greetings, over-long replies and awkward hang-ups, which are the details that make a call feel human or robotic.

Language

Singapore English and Mandarin.

The agent understands mixed English and Chinese and can reply in Mandarin with the same voice. Voice, listening model and AI model are each swappable through configuration.

Choosing the speech model with data

An agent cannot answer well if it mishears the caller. Rather than default to the platform's standard speech model, I built a small benchmark of 15 recorded clips across Singapore English, Singlish, Mandarin and mixed speech, and scored each provider.

ProviderOverall errorSinglishKey terms caught
MERaLiON-3 (A*STAR)3%9%96%
ElevenLabs Scribe v26%9%96%
Gladia Solaria14%35%72%

15 clips gives a direction, not a verdict. These are file transcription results; live-call behaviour was checked separately on real test calls.

“Getting an agent to act is easy. The real work is deciding when it should not.”

What this demonstrates

Capabilities shown through design decisions, tests and measured results across both builds.

AI Product

Designs for trust, not just capability.

Approval gates, AI disclosure and honest limits are product decisions, made up front.

Technical Product

Measures before claiming.

Labelled test sets and provider benchmarks drive decisions, with the limits of each test stated.

AI Solutions

Integrates agents, models and APIs.

Routing, tool calling, coding agents, speech, voice and telephony providers combined into working systems.

Delivery

Ships working builds quickly.

Hundreds of automated tests and real-phone testing, with each change verified before it is relied on.