Agents

AI agent development, including voice agents

An agent is a loop with tools, and the interesting engineering is entirely in what happens when the loop goes wrong. Agents that work in a demo tend to fail in production for boring reasons: a tool returns something unexpected, the context window fills, a retry fires twice against something that should only happen once. The difference between a novelty and a feature is how carefully those cases were handled.

Book a strategy call

What you get

  • Tool definitions written so the model can actually use them correctly — the single biggest determinant of whether an agent works
  • State and memory design that fits the task, without stuffing conversation history until the context window bursts
  • Guardrails on anything irreversible, so an agent cannot send, spend or delete without the check you decided on
  • Voice pipelines where they apply — turn-taking, interruption handling, and latency budgets that keep a conversation feeling live
  • Evals over multi-step traces, not just single responses, because agents fail across steps rather than in them
  • Tracing and observability, so a failed run can be read after the fact instead of reproduced by guesswork

How it runs

  1. 01

    Bound the job

    Agents work when the task is narrow and the tools are few. The first decision is what this agent will refuse to do.

  2. 02

    Design the tools

    Each tool gets a clear contract, honest error messages and a name the model will not misuse. Most agent failures start here.

  3. 03

    Add the guardrails

    Confirmation on irreversible actions, idempotency on retries, and hard limits on loops and spend.

  4. 04

    Trace and iterate

    Full traces on every run, evals across whole trajectories, and tuning against the runs that actually failed.

Questions

What is an AI agent, practically?
A language model in a loop with a set of tools it can call, deciding which to use and when. The value is in doing multi-step work unattended; the risk is that it does multi-step work unattended, which is why the guardrails matter more than the prompt.
What does a voice AI agent need that a text one does not?
A latency budget, mostly. Speech-to-text, model inference and text-to-speech all add delay, and past roughly a second the conversation stops feeling live. It also needs turn-taking and interruption handling, which have no equivalent in a text interface.
How do you keep an agent from doing something irreversible?
By making irreversible actions structurally require a confirmation step rather than trusting the prompt to hold. Anything that sends, charges, deletes or publishes goes behind an explicit check, and retries are made idempotent so a repeat call cannot double-fire.
How do you test an agent?
On whole trajectories rather than single turns. A run can produce a good final answer through a broken path, and that path will break differently tomorrow — so the traces are the unit of evaluation.

Ready to ship the AI feature your team has been planning?

Book a strategy call