Aim: 6/7+.
1. Two similar tools are confused on ambiguous requests. Best first step:
- Expand descriptions: inputs, examples, and when-to-use boundaries
- Add many few-shot routing examples into the system prompt text
- Insert a keyword routing layer that pre-selects a tool per turn
- Consolidate both into one tool that infers the backend itself
Option 1. Descriptions are the primary selection signal; thin ones are the root cause. (L1)
2. A policy-violating refund should return an error categorized as:
- Transient and retryable so the agent simply tries once more
- Business and non-retryable with a customer-friendly reason
- Validation asking the user to reformat and resubmit the input
- Permission requiring the agent to request elevated access now
Option 2. Business error, not retryable; explain rather than retry. (L2)
3. A query returns zero matches because none exist. Represent this as:
- An error so the coordinator retries with an alternate approach
- A transient failure that triggers local recovery in the subagent
- A successful result with an empty set, distinct from a failure
- A permission error indicating the records cannot be read now
Option 3. Valid empty result ≠ access failure. (L2)
4. An agent with 18 tools selects poorly. The principle to apply is:
- Add few-shot examples covering all eighteen tools in the prompt
- Scope each agent to only the tools its role actually requires
- Force tool_choice to a single tool for every incoming request
- Increase max_tokens so all tool definitions fit comfortably
Option 2. Least privilege; too many tools degrades selection. (L3)
5. The model returns chatty text when you need a structured tool call, doc type unknown. Set:
tool_choice: "auto" and let the model decide each turn
tool_choice: "any" so it must call some tool
- a forced named tool applied identically to every request
- a system prompt line asking politely for JSON output only
Option 2. "any" guarantees a call while letting the model pick the schema. (L3)
6. Agents waste calls discovering what data exists. The MCP mechanism to fix this is:
- Adding more action tools so discovery has more entry points
- Exposing a resource as a content catalog of available data
- Forcing tool_choice so a discovery tool always runs first
- Moving the catalog text into the project root CLAUDE.md file
Option 2. Resources expose catalogs, cutting exploratory tool calls. (L4)
7. Edit fails on a non-unique anchor. Reliable fallback:
- Retry the same Edit until one of the matches finally applies
- Read the whole file, then Write it back with the edit applied
- Use Grep to find the text and edit directly from those results
- Use Glob to match the filename and patch it with a Bash script
Option 2. Read+Write is the documented fallback for non-unique matches. (L4)
Scoring7/7 → Domain 3. Any miss → re-read the lesson noted in the explanation.
Tell your teacher your score. I'll log misses and drill them.