Why does an agent misroute between two similar tools, and what's the first fix?
Space to flipTool descriptions are the primary mechanism for tool selection — minimal or overlapping ones misroute. First fix: expand each description with input formats, example queries, edge cases, and boundaries vs. similar tools.
← → navigateWhat makes a tool description differentiate one tool from a similar alternative?
Space to flipState its purpose, expected inputs, outputs, and when to use it versus similar alternatives — plus input formats, example queries, edge cases, and boundary explanations.
← → navigateTwo tools still overlap after better descriptions — two structural fixes?
Space to flipRename to eliminate overlap (analyze_content → extract_web_results); or split a generic tool into purpose-specific tools with defined I/O contracts (analyze_document → extract_data_points, summarize_content, verify_claim_against_source).
A well-written tool description still gets ignored. Where else should you look?
Space to flipThe system prompt. Keyword-sensitive instructions can create unintended tool associations that override even a well-written description. Review and remove that wording.
← → navigateHow does an MCP tool signal failure, and why isn't "Operation failed" enough?
Space to flipThe isError flag marks the tool result as a failure. A uniform generic "Operation failed" prevents the agent from making appropriate recovery decisions — attach structured metadata instead.
What structured metadata should an MCP error response carry?
Space to fliperrorCategory (transient / validation / permission), an isRetryable boolean, and a human-readable description. Structured metadata prevents wasted retry attempts.
Name the four error categories and the recovery each implies.
Space to flipHow should a business-rule violation be returned to the agent?
Space to flipWith retriable: false plus a customer-friendly explanation, so the agent communicates appropriately — not a raw error and not a pointless retry.
A subagent hits a transient failure — what is handled locally, what propagates?
Space to flipRecover transient failures locally; propagate to the coordinator only errors that can't be resolved locally — with partial results and what was attempted. And distinguish an access failure (needs a retry decision) from a valid empty result (success, no matches).
← → navigateWhy cap an agent near 4–5 tools instead of giving it 18?
Space to flipMore tools increase decision complexity and degrade tool selection reliability. Restrict each subagent's tool set to its role to prevent cross-specialization misuse.
← → navigateWhy do agents misuse tools outside their specialization, and what's the principle?
Space to flipAn agent given off-role tools tends to misuse them (a synthesis agent attempting web searches). Apply scoped tool access: give each agent only the tools its role needs, with limited cross-role tools for specific high-frequency needs.
← → navigateThe synthesis agent needs frequent simple fact-checks. Best approach?
Space to flipGive it a scoped cross-role verify_fact tool for simple lookups, while complex verifications keep routing through the coordinator. Don't hand it all web-search tools.
What are the three tool_choice options and what does each do?
"auto" — model decides whether to call a tool"any" — must call some tool (no conversational text){"type":"tool","name":"…"} — forces one specific toolHow do you guarantee extract_metadata runs before enrichment tools?
Use forced tool_choice ({"type":"tool","name":"extract_metadata"}) to call it first, then process subsequent steps in follow-up turns. (Also: replace a generic fetch_url with a constrained load_document that validates URLs.)
Where do shared team MCP servers go versus personal/experimental ones?
Space to flipShared team tooling → project-level .mcp.json (committed to the repo). Personal/experimental servers → user-level ~/.claude.json.
How do you keep auth tokens out of git when configuring an MCP server?
Space to flipUse environment-variable expansion in .mcp.json — e.g. ${GITHUB_TOKEN} — instead of committing the literal token.
When are tools from configured MCP servers available to the agent?
Space to flipAt connection time — tools from all configured MCP servers are discovered and available to the agent simultaneously.
← → navigateThe agent keeps using built-in Grep over a better MCP tool. Why, and the fix?
The MCP tool's description is too thin. Enhance MCP tool descriptions to explain capabilities and outputs in detail so the agent prefers the more capable MCP tool. (And choose a community server, e.g. Jira, over a custom one for standard integrations.)
← → navigateWhat are MCP resources, and what problem do they solve?
Space to flipA mechanism to expose content catalogs — issue summaries, documentation hierarchies, database schemas. They give agents visibility into available data without requiring exploratory tool calls.
← → navigateGrep vs Glob — what does each one search?
Grep searches file contents for patterns (function names, error messages, import statements). Glob matches file paths by name/extension pattern (e.g. **/*.test.tsx).
Read/Write vs Edit — and what do you do when Edit fails?
Read/Write = whole-file operations; Edit = targeted change via unique text match. When the anchor text isn't unique and Edit fails, fall back to Read + Write.
How should an agent build understanding of an unfamiliar codebase?
Space to flipIncrementally: start with Grep to find entry points, then Read to follow imports and trace flows — rather than reading all files upfront.
How do you trace a function's usage across wrapper modules?
Space to flipFirst identify all the exported names, then Grep each name across the codebase.
Keyboard: ← → navigate · Space flip · S shuffle · R restart · G got it · V review again