Language models and control

What an LLM does inside a voice agent

An LLM helps interpret conversation and formulate replies, but it does not determine the final state of a database. Whether an appointment exists, a slot is available or a request succeeded must be confirmed by the relevant business system.

Assess your agent architecture
Two engineers discussing a system at a laptop.
AI-generated illustrative scene. Fictional people, not OMO staff or customers.

The model interprets; the system confirms the result

A large language model helps interpret intent, context and corrections. It may propose structured fields or request a tool call. A confident answer is neither proof of correctness nor authorization to act.

State should record which fields are known, what changed and which summary the last confirmation covered. Do not rely only on a conversational summary for that information. The business-system record remains the source of truth for the outcome.

Where does an LLM sit in the voice pipeline?

In a cascaded architecture, STT produces text, the LLM interprets context, application logic validates a tool request, the backend returns an outcome and TTS speaks the reply. Each layer has different errors and timing characteristics.

Speech-to-speech models provide an alternative that accepts and produces audio directly. This explains an architectural option, not a claim that every OMO deployment uses one architecture. Combining audio functions in a model does not remove business-action authorization.

A text-mediated voice pipeline
  1. STT: audio → text
  2. LLM: intent and proposal
  3. Application: validation and rights
  4. Business system: actual result
  5. TTS: verified reply → speech

Uncertain words return to clarification; rejected actions do not execute; unknown outcomes are not successes. A direct speech-to-speech architecture can differ while retaining the same authorization boundary.

A tool request is still a proposal

Structured output, such as service, date and time fields, makes validation easier. Valid JSON can still contain a prohibited service, a stale slot or someone else’s record. Format validation is not authorization.

Limit tools to explicit names and arguments. The server determines customer scope, permitted actions and required confirmation. Natural conversation is not a reason to give the model unrestricted database access or secret credentials.

  • Test correct tool selection and correct arguments separately.
  • Use the server’s response for completion status, not the model’s intention.
  • Treat a retrieved document as information, not a new system instruction.

Worked example: a createAppointment proposal

In this illustrative example the model proposes createAppointment with a chosen service and time. The server validates fresh consent, permitted service, date, customer and organization scope, current availability and an idempotency key.

If the action is rejected, explain the actual reason or offer a verified alternative. If it is pending, do not say an appointment already exists. If confirmed, speak the verified details rather than the request’s original assumptions.

Backend status determines the reply
StatusReply principleAvoid
ConfirmedReport completion and exact verified detailsRepeating a stale time instead of the updated record
RejectedGive the actual reason and a permitted next stepInventing success
Pending / unknownReconcile status or involve the responsible personBlind retries or unverified promises

Context, fresh data and untrusted content

Model knowledge is not a live availability source. Prices, slots and statuses need an agreed authoritative source and appropriate scope. Data seen during an earlier call is not automatically current for a new request.

Caller text or a retrieved document may contain instructions to change the rules. Treat such prompt injection as untrusted data. Tool permissions, least-privilege access and approval for high-risk actions remain application controls.

TTFT is not the caller’s time to first response

Model time to first token (TTFT) is only one segment. After the caller finishes, the system may finalize STT, obtain model output, validate a tool, generate the first TTS audio and fill a playback buffer. Some stages overlap, so simply adding their durations can be misleading.

Measure the interval from the end of speech to the first intelligible response under the same test conditions. Inspect p95 and p99 as well as the average to understand unusually long delays. After a timeout, communicate the actual technical state rather than inventing completion.

Choose a model for the actual task

Compare Georgian intent interpretation, time expressions, multi-field replies, corrections and tool selection. A strong single answer or a recent release does not establish that a model is best for the entire process.

Evaluate quality, latency, cost and tool safety together. Score language interpretation separately from authorization and backend correctness. OMO integration and business logic do not establish ownership of a foundation model or availability of a standalone model API.

  • “ოთხის ნახევარზე”: understand Georgian half-past phrasing rather than repeat text.
  • “No, at another branch”: change only the location and retain other fields.
  • “Book it”: check whether the required confirmation and authority exist.
  • An occupied slot: offer only alternatives verified by the system.

Common questions

Is the LLM the whole agent?

No. Media transport, state, tools, permissions and result verification remain separate responsibilities even when one model also handles audio.

Can it invent availability?

Model text must not be the availability source. Check the relevant business system and base the reply on its result.

Is a more powerful model always better?

Not necessarily. Compare measured task quality, latency, cost and safe tool use under your actual conditions.

Can the LLM access every record?

It should not. Provide only authorized tools and the minimum necessary information, with server-side access checks.

Primary sources and scope

Checked on September 17, 2026. These sources explain technical mechanisms, not the availability of every capability in an OMO implementation. Proposed connections and examples require a separate assessment.

  1. Google AI — function calling

    Model-proposed tool calls and application-side execution.

  2. OWASP — prompt injection

    Untrusted input, least privilege and controls for high-risk actions.

  3. LiveKit — turn detection and interruptions

    Distinct controls for turn-taking, speech activity and interruptions.

Assess your agent architecture

Describe the outcome and systems you use. Start with an assessment, not credentials or customer records.