Generative AI Applications

Narrow jobs, done reliably, with an honest route to a human

We build the assistants, agents and voice products your customers speak into — measured on resolutions rather than messages.

  • Chat, voice, document, vision
  • WhatsApp, Telegram, web, SIP
  • Evaluated before launch

Assistant core

  • WhatsApp and Instagram
  • Telephony
  • Web and in-app
  • Business systems
  • Retrieval
  • Human handover
One brain, many surfaces. Scope, tools and policy live in one service; each channel only presents it.

The method

Narrow jobs, done reliably, with a way out

We start from the transaction, not the chat window: which requests the assistant completes end to end, which it triages, and which it hands over. That decision sets the architecture, the tools and the guardrails. Four intents done well beats forty gestured at.

  • Intent and journey design before any prompt
  • Tools scoped to what the job actually requires
  • Handover designed as a path, not a failure state

Agents

An agent is a control loop, not a personality

Agents earn their cost only when the number of steps is unknown at request time. Otherwise one call with structured output and two tools is faster and far easier to debug.

  • state machines
  • step budgets
  • typed tools
  • trace replay

Voice

<800 ms

Speech-to-speech round trip before a caller starts talking over it

Chat

≤2 s

First-token budget past which users re-send and double your load

Discipline

Prompts are source code

Versioned, reviewed in pull requests and tested against a held-out set before release. Guardrails are specified: what to refuse, what to escalate, what never to state as fact.

  • prompt versioning
  • regression evals
  • refusal policy
  • PII redaction

Measurement

Count resolutions, not messages

Containment, resolution verified against the source system, escalation reason, and cost per resolved conversation — the only number that says whether this is worth running.

  • containment
  • resolution
  • escalation
  • cost / resolution

Models

  • OpenAI GPT
  • Anthropic Claude
  • Google Gemini
  • Llama
  • open-weight fine-tunes

Orchestration

  • function calling
  • structured output
  • LangGraph
  • Temporal
  • MCP

Voice

  • Whisper
  • streaming TTS
  • Twilio
  • Asterisk
  • SIP / WebRTC

Channels

  • WhatsApp Business API
  • Instagram
  • Messenger
  • Telegram
  • web SDK

Evaluation

  • Langfuse
  • promptfoo
  • Ragas
  • OpenTelemetry

Who we do this for

  • Retail and e-commerce
  • Telecoms operators
  • Hospitality, travel and live sport
  • Startups building AI-native products
  • Enterprise customer operations

Three ways in. Stop after any of them.

2–3 weeks

Application design sprint

Intent inventory, journey and handover design, and a working prototype on your real content.

Conversation design, prototype, evaluation set, build estimate

8–16 weeks

Build and launch

Full build across the agreed channels, system integration, pilot and a staged production rollout.

Application code, versioned prompts and guardrails, evaluation harness, runbook

Ongoing

Product ownership

Monthly quality reviews, prompt and model upgrades, and new intents as volume shifts.

Quality and unit-cost dashboard, roadmap, quarterly model review

Questions

Usually not, at least not at first. If the steps are known in advance — look up an order, check a policy, book a slot — a single call with structured output and two tools is faster, cheaper and easier to evaluate. Agents earn their cost when the number and order of steps cannot be known at request time.

When the process behind it is broken, when nobody owns the content it would answer from, or when the systems it must act in have no usable interface. An assistant in front of a process your own staff cannot complete simply exposes that faster. Fix the process first, or start with the integration work.

Constrain where it gets facts and what it may say. Answers come from retrieval over your own content with the source attached; anything out of scope is refused with a route to a human. Exact claims — a price, a policy limit, an appointment time — come from a system call, not the model.

Talk to someone who has built this

Send us the constraint you are actually up against — budget, latency, regulator, deadline.