Page 10 of 13 · Drill it
The lab Reading teaches you the vocabulary. Predicting what happens teaches you the subject. Commit to an answer first, then see what the real interpreter did. Every verdict, error and output in this lab came from an actual run.
By Asem Abdo · Updated 2026-10-17
Active recall
Pick a drill
Drill mode Will it run? Predict Quiz Level All Level 1 Level 2 Level 3
Score 0/ 0
Streak 0best 0
In set 36labs Lab · level 1
The model invents a tool name. Does this run cleanly, or stop with an error? class ToolNotFoundError (Exception): pass TOOLS = { "read_file" : lambda path: "# README" } def dispatch (call): if call[ "tool" ] not in TOOLS: raise ToolNotFoundError (call[ "tool" ]) return TOOLS[call[ "tool" ]](**call[ "args" ]) print ( dispatch ({ "tool" : "open_file" , "args" : { "path" : "README.md" }})) Runs cleanly 1 Stops with an error 2 Which one?Any error PermissionError ToolNotFoundError HookBlockedError RateLimitError Keys: 1 to 2 to answer, Enter for the next one.
Reference
Error decoder
Most errors fall into a few patterns. Each entry shows the real error, what it means, the habit that avoids it, and a fixed version.
/ 16 of 16 shown
ToolNotFoundError The model called a tool that does not exist Level 1 [ ToolNotFoundError ] level 1
The model called a tool that does not exist Means The model invented or misremembered a tool name, and the harness had no fallback. Habit Return unknown-tool errors to the model with the list of real tools; keep tool names short and distinct. [ RAISES ] recorded
class ToolNotFoundError (Exception): pass TOOLS = { "search_docs" : lambda q: []} name = "search_documentation" if name not in TOOLS: raise ToolNotFoundError (name) Traceback (most recent call last): File "main.py", line 7, in <module> raise ToolNotFoundError(name) ToolNotFoundError: search_documentation
[ RUNS ] recorded
TOOLS = { "search_docs" : lambda q: []} name = "search_documentation" print (TOOLS[name]( "x" ) if name in TOOLS else "unknown tool, available: " + ", " . join (TOOLS)) unknown tool, available: search_docs
TypeError Tool arguments do not match the function Level 1 SchemaValidationError Structured output is missing a field Level 1 BudgetExceededError The run hit its step or cost cap Level 1 ContextOverflowError More context than the window holds Level 2 HookBlockedError A PreToolUse hook blocked the call Level 1 RecursionError Agents or hooks that never let go Level 2 PermissionError The agent lacks permission for this tool Level 2 AssertionError An eval or check failed Level 2 StructuredOutputError The reply is not parseable JSON Level 2 RateLimitError The provider returned 429 Level 2 TimeoutError A tool did not finish in time Level 2 SecretLeakError A secret was about to enter the context Level 3 KeyError The worker expected something the brief left out Level 3 ZeroDivisionError Cost per accepted task with nothing accepted Level 3 NoProgressError The loop is going in circles Level 2