Skip to main content

Bots that work

This section summarizes the patterns we identified by analyzing Inceptia bots already in production — this isn’t generic AI theory, these are the concrete criteria that separate a well-designed bot from one that behaves inconsistently. We recommend reading it before diving into building your agent.

Design principles

The general rules before writing the first line of a prompt.

Instructions that work

How to structure an agent’s prompt so the LLM doesn’t lose track.

Common mistakes

The most frequent mistakes when building a bot, and the checklist before publishing.

One goal per agent

Each agent within the bot should have a single, clear responsibility — validating identity, negotiating a payment, classifying a call. When an agent tries to do too many things at once, the prompt becomes hard to maintain and the model starts improvising at the edges.
If you notice your Instructions need sections like “if we’re at stage X, do A; if we’re at stage Y, do B,” that’s a sign it’s probably worth splitting that into two agents with an explicit handoff between them — see Agent Handoff — instead of solving it with conditionals inside a single prompt.

Resolve ambiguity in the prompt, don’t leave it to the model

The best-performing bots don’t say “be empathetic and handle the situation”: they explicitly anticipate the conversation’s possible paths and tell the model what to do in each one, including how many times to insist before hanging up or transferring. Anything left ambiguous, the model will resolve differently every call.

Design for the ear, not the eye

A voice bot isn’t read, it’s heard. Writing rules (numbers in words, question formatting, response length) aren’t a cosmetic detail — they determine whether the bot sounds natural or robotic. See the full detail in Instructions that work.

Separate data from behavior

Campaign- or customer-specific information (name, amount, dates, company name) should live in variables — never hardcoded in the prompt. This lets you reuse the same bot design across multiple campaigns or clients without touching the logic. See Available variables and Campaign Input File.

Anticipate the worst case, not just the happy path

Much of a bot’s robustness comes from how it handles the unexpected: the aggressive contact, the off-topic question, silence, the answering machine, the invalid date, the flat refusal. If these cases aren’t explicitly covered in the Instructions, the bot will resolve them inconsistently.
See the list of common mistakes and the pre-publish checklist in Common mistakes.