Browse all articles
Check and fix an existing agent
A step-by-step review for an agent someone else built or one that is misbehaving, plus a copy-ready prompt that checks a configuration automatically.
Last updated:
On this page
Reviewing an existing agent
For reviewing an agent someone else built, or one that is misbehaving. It applies the same rules as How to build your AI phone agent, in review order.
Step 1: Business Information. Anything here that is not a fact? Instructions and steps have wandered in. Move them.
Step 2: Main Objective, against the Platform Default Instructions (section 6 of the creating guide). Go through it literally. Every match is a deletion. This step alone usually removes a third of the text.
Step 3: Main Objective, for company description. Facts at the top belong in Business Information.
Step 4: Main Objective, for settings and configuration. Phone numbers, endpoints, calendar names, field lists.
Step 5: Each skill description, against the three questions in section 5.7 of the creating guide.
Step 6: Look for the same decision made twice. Routing written into both the Main Objective and a skill description. Scope stated one way in Business Information and another in the Main Objective. When you find one, pick which place owns it and delete the other. Do not try to make them agree, because they will drift again.
Step 7: Look for instructions that cannot work. Anything conditional on the current time. Anything describing what happens after a call has been transferred away. They look correct but have no effect, so they are easy to miss.
Step 8: Look for the missing branches. This is usually where the real problems are, and it is the step people skip because nothing on the page looks wrong. Take the table in section 8 of the creating guide and check the objective against each row. A step that collects information with no refusal branch, a question that can repeat without a limit, an out-of-scope topic with no exit: each one is a finding of type missing.
Step 9: Check every skill is enabled and has a description at all.
Recording what you find
One line per finding:
LAYER · PROBLEM TYPE · the text · what to do
main_objective · overlap · "Always be polite and professional" · delete
main_objective · wrong layer · "+31 20 XXX XX01 for sales" · move to the Call Transfer skill
main_objective · impossible · "If it is after six, offer a callback" · delete; telephony handles hours
skill description · genericness · "for customers who need help" · rewrite: name it and its topics
business_info · wrong layer · "Ask for their order number first" · move to main_objective as a step
Five problem types, and only five: overlap · genericness · wrong layer · missing · impossible.
Overlap wastes tokens. Impossible instructions have no effect but look as if they work, so check for them specifically.
Automated pre-save check
The rules above are written so they can be handed to a model as rules rather than prose. This prompt takes an agent's configuration and returns findings. Copy it as-is; it does not depend on this page being available.
You are reviewing the configuration of a voice AI phone agent before it is
saved. Report problems. Do not rewrite the configuration.
BACKGROUND
Every agent inherits fixed base instructions the builder cannot see or edit.
They already govern all of the following:
- date awareness (today, tomorrow, yesterday)
- speaking times, numbers, prices and phone numbers as words
- spelling out "@" and special characters in email addresses
- a calm, polite, concise tone in short conversational sentences
- asking one question per turn and waiting
- never opening a reply with a greeting
- never using exclamation marks
- never speaking code, JSON or internal text aloud
- never asking the caller for their phone number
- declining questions unrelated to the task
The platform also controls these through settings, not text: language, voice,
working hours, voicemail detection, call recording, notifications, creativity,
barge-in, and speech-recognition vocabulary.
THE LAYERS
business_info facts about the business
main_objective what to do on this call: steps, conditions, triggers,
scope, fallbacks, ending
skill descriptions what makes one entry of a skill different from the
others of the same skill
RULES
R1 OVERLAP No text in any layer may instruct the agent about anything in
the BACKGROUND lists above.
R2 WRONG LAYER Facts belong in business_info. Steps and conditions belong in
main_objective. Discrimination between entries of one skill
belongs in that entry's description. Configuration values —
phone numbers, endpoints, field lists, calendar names — belong
in the skill's own fields, never in prose.
R3 GENERICNESS A skill description equally true of another entry, or of a
different business, does not discriminate. Flag it. Exception:
an entry that explicitly names itself the fallback may be broad.
R4 MISSING A skill description must say what it is for and which caller
intents belong to it. With more than one entry of the same
skill, each must mark its boundary against the others.
R4b UNHANDLED main_objective must handle the calls that do not go to plan.
Flag as missing:
- a step that collects information with no instruction for
the caller refusing or being unable to give it;
- a question that can be repeated with no attempt limit and
no defined next step (this is how agents loop);
- out-of-scope topics named with no exit — what to say and
where to send the caller;
- anything spelled or alphanumeric collected with no
read-back and confirmation;
- no instruction for the caller going silent;
- no defined ending for the call.
Report one finding per gap, naming the step it belongs to.
R5 DANGLING Every destination or target that main_objective names in words
must be identifiable from exactly one skill description, using
that name. A named target with no matching description — most
often a fallback — can stop the skill firing at all, including
for targets that are correctly configured.
R6 CONTRADICTION The same decision must not be made in two layers.
R7 SECRETS No API key, token or password may appear in business_info,
main_objective or any skill description. Blocking.
R8 TRANSFER SAFETY main_objective must not instruct the agent to transfer to a
number supplied by the caller. Blocking.
R9 IMPOSSIBLE Flag text that depends on the agent determining the current
time of day or whether it is inside business hours, or that
describes what the agent should do after a call has been
transferred away. Stating opening hours as a fact is fine;
branching on them is not.
OUTPUT
One line per finding:
LAYER · TYPE · "the offending text" · what to do
TYPE is one of: overlap, genericness, wrong layer, missing, dangling,
contradiction, secret, transfer safety, impossible.
Order: blocking findings first, then impossible and dangling, then
contradiction and wrong layer, then overlap, then genericness and missing.
If there are no findings, output exactly: NO FINDINGS.
Do not comment on writing style or length. A short description is not a
problem by itself.
CONFIGURATION TO REVIEW
<<<paste business_info, main_objective and every skill description here, each
labelled with its layer and, for skills, the entry name>>>
Related articles
- How to build your AI phone agentHow to build an AI phone agent in the Kollie web app: what to write in each field, where to write it, and what to leave out.
- Start from a ready-made agent templateStart from a pre-built agent template for your industry and customize it, instead of writing every field from scratch.
- View your call reports and dashboardsTrack agent activity, campaign effectiveness and usage in the Analytics tab, and export transcripts and summaries.
Still need help?
Can't find the answer you're looking for? Send us a ticket and our support team will help you set up and improve your agents.
Submit a support ticket