LLM voice agents from a template and the dashboard LLM tab

October 26, 2026 · release

@voicethere/agent 0.14.1

Most LLM voice agents start the same way: a loop that sends the caller's words to a model, streams the answer into speech, handles interruptions and calls a tool now and then. The llm-agent template ships that loop. You pick a provider and a model, write a prompt, and the agent talks.

The settings live in two files, voicethere.llm.json and prompt.md, and the LLM tab of your project edits them with a form. Provider, model, API key secret, greeting, barge-in, history length and tool limits are all there. An edit in the Code tab and an edit in the LLM tab change the same text. The LLM agents guide goes through each field, and the agent templates page covers the other starters.

Fillers while the caller waits

A model that needs two seconds to answer, or a tool that takes six, leaves the line silent. Fillers are short phrases the agent says in those gaps. There are three situations:

The limits keep them from becoming noise. A turn gets at most three fillers, two never play back to back, and the same phrase never plays twice in a row. A caller who starts talking cuts a filler off unless you turn that off. Fillers are not sent to the model, so they never show up in its history. A situation with no phrases stays silent, and the llm-agent template ships phrases for all three. The details are in the fillers section.

Sentences that follow each other

Before agent 0.14.0 a reply was spoken one sentence at a time, with about 1.75 seconds of silence between sentences of the same answer. Now sentences that finish within speech.coalesceMs (default 150 ms) are spoken as one utterance, and on the same kind of reply the gap is about 0.25 seconds.

{
  "fillers": {
    "thinking": { "phrases": ["Let me think about that."], "afterMs": 1500 },
    "toolCall": { "phrases": ["One moment, I'll check."] },
    "toolWait": { "phrases": ["Still looking, thanks for waiting."], "afterMs": 4000 }
  },
  "speech": { "coalesceMs": 150 }
}

Set coalesceMs to 0 if you want every sentence spoken on its own.

Tools and MCP servers

The tab also lists the tools your agent can use: the ones a project service exposes over MCP, plus MCP servers run by someone else over https. Authentication is none, a bearer token from an AGENT_ secret, or headers filled from AGENT_ secrets. You can allow or block tools by name per source.

A smaller bundle that is checked before it ships

Agent 0.13.0 makes the provider SDK modules explicit, which brought the template bundle from 4.8 MB to about 1.8 MB before minification. Agent 0.14.1 fixes a bundle that failed to load and adds a "Bundle parses" step to verify, so a bundle that cannot load is caught before you publish it.

Start from the LLM agents guide, and look at fillers first if your agent goes quiet during tool calls.

Similar posts

← All posts