> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://poly-ai.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://poly-ai.ferndocs.com/_mcp/server.

# Level 2 complete

> PolyAcademy – You now control behavior, knowledge, functions, speech, and advanced diagnostics.

> **Tip**
>
> **Level 2 complete!** Your agent is now significantly more capable – it handles multi-turn conversations, runs functions, and you can fine-tune exactly how it speaks.

You covered:

* Complex [FAQs](/agent-studio/knowledge/fa-qs/fa-qs) with actions and multi-turn logic
* [Functions](/agent-studio/tools/overview): two-request pattern, [return values](/agent-studio/tools/return-values), what the LLM sees
* Global [ASR](/agent-studio/voice/advanced-settings#keyphrases) biasing and corrections
* [Advanced voice settings](/agent-studio/voice/advanced-settings) for speech, pronunciation, and stop keywords
* [Audio and voice](/agent-studio/voice/audio-library) tuning
* [Conversation Review](/agent-studio/conversations/review) diagnostics and metrics
* Safe testing across [environments](/agent-studio/deployments/overview)

You can now answer without guessing:

* Why did the agent respond that way?
* Which topic, rule, response control, or variant was responsible?
* Where do I change *only* this behavior?
* How do I test safely before users see it?

## Level 2 recap quiz

#### Check your understanding

#### Your agent says 'Let me check that for you' before every response. You also notice the topic 'billing_help' triggers for unrelated questions. Which tools fix which problem?

* Response Control for both – it controls all agent output
* Response Control for the filler phrase; fix the Managed Topic name and sample questions for retrieval
* Keyphrase Boosting for the filler phrase; Response Control for retrieval
* Fix the Behavior field for both issues

**Answer:** Response Control for the filler phrase; fix the Managed Topic name and sample questions for retrieval

Response Controls fix what the agent says (output) – add a rule to suppress 'Let me check that for you'. Managed Topic name and sample questions fix what the agent retrieves (input) – rename 'billing_help' to something more specific and tighten its sample questions. Different layers, different tools.

#### ASR transcribes 'cancel' as 'council' for some callers but not others. What is the best fix?

* Keyphrase Boosting on 'cancel' with maximum bias
* Transcript Correction mapping 'council' to 'cancel'
* Add 'council' as a sample question to the cancel topic
* Change the topic name to match the misheard word

**Answer:** Transcript Correction mapping 'council' to 'cancel'

This is a consistent substitution error – ASR hears the wrong word. Transcript Corrections rewrite after transcription and are the right tool. Adding 'council' as a sample question would work around the issue but doesn't fix the root cause.

#### A function trace shows the agent asked for SMS consent but never called start_sms_flow. The user said 'yes'. What should you investigate?

* Whether the SMS service is down
* Whether a Response Control halted the output before the function could fire
* Whether the user's phone number is valid
* Whether the topic has too many sample questions

**Answer:** Whether a Response Control halted the output before the function could fire

When the agent says the right thing but doesn't execute the action, check for a Response Control interrupting output before the tool call fires. Also check whether the topic's action branch actually calls start_sms_flow after consent. These are structural issues – investigate the flow, not the SMS service.

#### A single variant is returning the wrong front desk number. You check Conversation Review and confirm the variant name is correct. What should you investigate next?

* Whether the variant's phone number field has a typo or outdated value
* Whether the topic name is too generic and triggering the wrong topic
* Whether ASR misheard the caller's question about the phone number
* Whether the environment needs to be re-promoted

**Answer:** Whether the variant's phone number field has a typo or outdated value

If the right variant triggered but the data is wrong, the issue is in the variant's field values – not retrieval, ASR, or environments. Open Variants, find the variant, and check the front desk number field for typos or stale data.

## What's next?

#### [Level 3: Production polish](/academy/poly-academy/poly-academy-level-3/code-organization)

Organize code, build flows, write natural speech, and polish voice quality for production

#### [Maintain your agent](/academy/maintain/home)

Best practices for keeping a live agent healthy and up to date

#### [Back to PolyAcademy](/academy/poly-academy/home)

Return to the main learning hub

> **Tip**
>
> **Level 3 is for developers and senior designers.** You'll learn to structure code for maintainability, design reliable multi-step flows, and make your agent sound genuinely natural.