# Best practices for reliable voice agents

> Build reliable HeyRik voice agents with scoped jobs, grounded knowledge, explicit variables, safe handoffs, realistic call testing, controlled launch, and continuous improvement.

Source: https://www.heyrik.com/docs/academy/best-practices

Use specific instructions, grounded facts, observable outcomes, controlled handoffs, realistic testing, and a disciplined improvement loop to keep an agent useful after launch.

18 minute guide Production readiness checklist

Reliability is not created by a clever prompt alone. It comes from a narrow job, explicit behavior, approved facts, constrained tools, observable outputs, realistic testing, and an operator who reviews what actually happened after launch.

**Make every rule testable**

“Be helpful,” “sound human,” and “do not hallucinate” cannot be scored consistently. A good rule names the trigger and the expected action—for example, “If approved knowledge does not contain the price, say it requires confirmation and offer a human follow-up.”

## Give one agent one primary job

A focused scope reduces prompt conflicts, shortens calls, simplifies testing, and creates an outcome that can be measured.

### One audience

Name who the agent is speaking with and what they are expected to know before the call begins.

### One completion condition

Define the observable moment the job is done: confirmed requirements, an approved answer, or a tool-confirmed action.

### One boundary

Name requests this agent must not handle and the transfer, follow-up, or stop behavior for each.

### One useful result

Capture only the output fields the next person or system will use to make a decision.

Avoid

### Unmeasurable scope

Be a helpful sales and support assistant that answers everything, promotes products, books meetings, handles complaints, and keeps customers happy.

Recommended

### Measurable scope

For inbound property enquiries, capture and confirm property type, budget, location, timeline, and permission for a human follow-up; never state unverified price or availability.

## Design for a real spoken conversation

Phone callers pause, interrupt, correct themselves, refuse questions, change language, and ask unrelated things. The flow must support those behaviors without losing its job.

### Turn length

Instead of

Ask four questions in one long paragraph.

Use

Ask one short question, listen, acknowledge, then ask the next relevant question.

### Confirmation

Instead of

Silently store names, amounts, dates, and times.

Use

Repeat important values in a natural sentence and ask whether they are correct.

### Correction

Instead of

Continue using the first answer.

Use

Acknowledge the correction, replace the value, confirm it, and resume from the right step.

### Clarification

Instead of

Repeat the identical question louder.

Use

Rephrase once with simpler words or a small number of concrete options.

### Refusal

Instead of

Keep asking until the caller answers.

Use

Skip a nonessential field; for a required field, explain why it is needed and offer the safe alternative.

### Closing

Instead of

Say “thanks, bye” as soon as fields are filled.

Use

Summarize confirmed details and the real next action, invite correction, then end.

**Do not confuse a script with a conversation**

Write goals, order, branches, and constraints—not a rigid line-by-line performance that breaks as soon as the caller answers unexpectedly.

## Separate behavior, facts, and actions

Put each kind of information in the layer designed to maintain it. Mixing them creates stale facts, hidden permissions, and prompts nobody can review.

**Instructions**

Identity, tone, sequence, decisions, limits, recovery, transfer, and closing behavior.

How the agent behaves

**Knowledge Base**

Approved prices, policies, hours, locations, products, services, and frequently asked questions.

What the agent may state

**Integrations**

Current lookups and real actions such as checking an order or creating a calendar event.

What the agent may fetch or do

**Call Settings**

Speaking, turn-taking, silence, interruption, transfer destination, hard limits, and post-call delivery.

How the channel behaves

**0 of 6 complete**Loading saved progress…

**01**Every factual source has an owner and review date outside the prompt.**02**The agent is attached only to sources relevant to its job.**03**Conflicting, obsolete, internal-only, and unsupported content is removed before upload.**04**The prompt says what to do when knowledge has no answer.**05**Each tool has a narrow description, required inputs, authorized action, success signal, and failure fallback.**06**The agent never describes an action as complete until the configured tool confirms success.

## Treat variables as a data contract

Input and output variables connect a natural conversation to the rest of the workflow. Vague names and descriptions create silent operational errors.

**Weak variable definitions**

```
Input: name
Default: —

Output: budget
Description: The budget

Output: qualified
Description: Whether qualified
```

**Specific variable definitions**

```
Input: customer_name
Default: there
Description: Name supplied before the call

Output: budget
Description: Confirmed amount or range with currency; otherwise unclear

Output: qualification_status
Description: qualified, unqualified, follow_up_needed, or unclear
```

### Safe input defaults

A missing value must produce a natural sentence or disappear cleanly; a literal placeholder must never be spoken.

### Finite output shapes

Use explicit outcomes such as yes, no, or unclear when a downstream system depends on consistent values.

### Minimum necessary data

Do not capture sensitive or unrelated information merely because it appears in the conversation.

### Confirm before capture

Important values should be repeated and confirmed so the transcript and structured result agree.

## Write the limitation and the next action together

A refusal without a useful next step frustrates callers; a next step without a limitation encourages the agent to overreach.

01

### Missing fact

Say the information is not available in approved sources, record the question, and offer human follow-up.

**Avoid:** Answer as accurately as possible.

02

### Human request

Transfer when enabled and the condition matches; otherwise explain that transfer is unavailable and offer the approved follow-up.

**Avoid:** Try to retain the caller before transferring.

03

### Sensitive request

Decline to collect passwords, one-time codes, full card data, or unrelated personal information and direct the caller to the approved secure path.

**Avoid:** Ask for whatever is needed to help.

04

### Regulated advice

State the permitted factual scope and route medical, legal, financial, or other regulated judgment to an authorized person.

**Avoid:** Add a disclaimer and continue giving advice.

05

### Action failure

Say the action was not completed, preserve confirmed inputs, and offer the configured retry or human path.

**Avoid:** Tell the caller it will probably happen later.

06

### Opt-out or wrong person

Apologize, capture the correct outcome, and end without continuing the flow.

**Avoid:** Ask a few questions before ending.

**Test the actual handoff**

A written transfer rule is not enough. Verify the destination, caller experience, failure behavior, hours, and what context the receiving person receives.

## Tune for comprehension before personality

A pleasant voice cannot rescue clipped turns, long speeches, poor silence behavior, or a language mismatch.

### Voice choice

Instead of

Select by name, avatar, or novelty.

Use

Test comprehension in the target language on a phone speaker with business-specific terms.

### Speaking speed

Instead of

Make every sales agent fast and energetic.

Use

Begin near natural speed and adjust gradually after listener testing.

### Turn ending

Instead of

Use the shortest possible pause.

Use

Allow normal thinking pauses without making every exchange feel slow.

### Interruption

Instead of

Disable interruption to protect the script.

Use

Let callers interrupt where appropriate and verify that the agent resumes with context.

### Silence

Instead of

Wait indefinitely or hang up immediately.

Use

Check in after the configured delay, retry a limited number of times, then close politely.

### Maximum duration

Instead of

Rely on the prompt to end eventually.

Use

Set a hard cap appropriate for the job and still write a natural closing.

**Voice clones require continuing governance**

Keep proof of speaker consent, limit who can assign the clone, review the current credit price before creation, and remove access when permission or business need ends.

## Use a repeatable test suite

A test should state the setup, caller behavior, expected agent behavior, expected captured data, and pass or fail result.

**Happy path**

Caller gives valid answers in the intended order.

Baseline completion

**Out of order**

Caller provides later information early or changes topic.

Retain, do not re-ask

**Correction**

Caller changes a confirmed value.

Replace and reconfirm

**Ambiguity**

Caller gives an unclear amount, date, location, or intent.

Clarify once

**Missing knowledge**

Caller asks for an unsupported fact.

Limit and escalate

**Tool failure**

Integration errors or returns incomplete data.

No false success

**Silence/interruption**

Caller pauses or speaks over the agent.

Natural recovery

**Refusal/opt-out**

Caller declines a question or future contact.

Respect and stop

**Human request**

Caller explicitly asks for a person.

Correct handoff

**Unsafe request**

Caller requests prohibited or sensitive action.

Boundary plus next step

**Score the result, not the vibe**

Record whether the expected behavior occurred, whether the transcript supports the structured outputs, and where the first divergence happened. “It sounded good” is not a passing result.

## Operate the agent after launch

Production traffic changes the evidence, not the responsibility. Monitor early calls, keep rollback available, and separate factual fixes from behavioral fixes.

1

### Start small

Use controlled inbound traffic or a very small outbound set before sending broad customer traffic.

2

### Review the first calls

Read transcripts, outcomes, captured fields, recordings when available, and tool invocations—not only aggregate metrics.

3

### Classify the failure

Choose prompt, knowledge, variable, integration, voice, call setting, channel, or operator process as the likely layer.

4

### Change one cause

Make the smallest change that addresses the earliest divergence and preserves behavior that already passed.

5

### Run regression tests

Repeat the failed scenario and the entire critical test set before restoring or increasing traffic.

6

### Keep rollback ready

Return the agent to Draft, unassign the channel, pause a campaign, or route to a person when risk exceeds the launch threshold.

### Wrong fact

Instead of

Make the prompt more forceful.

Use

Correct the knowledge source and test both present and absent answers.

### Wrong behavior

Instead of

Upload more documents.

Use

Change the responsible instruction and rerun the conversation branch.

### Wrong field

Instead of

Repair reports manually.

Use

Clarify the output description and confirmation step.

### Wrong action

Instead of

Hide the tool error.

Use

Inspect invocation arguments and result, then improve validation and fallback.

## Production readiness checklist

Complete this review with a product owner and, when applicable, legal, compliance, security, or operations stakeholders.

**0 of 12 complete**Loading saved progress…

**01**The agent has one primary job, audience, definition of success, and explicit out-of-scope behavior.**02**All six builder areas were reviewed; the generated draft was not accepted without human review.**03**Instructions cover identity, language, known context, sequence, knowledge and tools, guardrails, recovery, and closing.**04**Every input placeholder has a safe default and every output has a precise expected shape.**05**Only current, approved PDF or website knowledge is attached to the agent.**06**Every configured tool has a tested success result, failure result, authorization boundary, and caller-facing fallback.**07**The voice is understandable in every configured language; any clone has documented permission and approved use.**08**Silence, interruptions, turn-ending, transfer, end phrases, maximum duration, and post-call reporting are tested.**09**The complete scenario suite passes in Draft using both conversational and channel-specific testing where needed.**10**The selected Live agent is connected to the intended phone number, direction, or controlled outbound request.**11**Consent, disclosure, do-not-contact, data minimization, recording, and retention requirements are handled for the deployment context.**12**A named owner is monitoring the first calls and can pause traffic or roll back immediately.
