What is the fundamental role of a "tool" when interacting with Claude?	A tool is a function defined and exposed to Claude; Claude decides when to call it, but the user's code executes the function.
What are the three required components when defining a tool using JSON schemas?	A name, a description, and an input schema.
According to the transcript, what is the most critical best practice when writing tool descriptions?	Be specific, as vague descriptions are the number one reason agents misfire or fail to use available tools.
What specific `stopreason` indicates that the agent has requested a tool call?	`tooluse`.
In the manual tool execution loop, what must be fed back to Claude after the code executes the tool?	The result must be fed back as a `tool_result` block, tied to the tool call's ID.
What major problem does the Tool Runner solve compared to manually writing the loop?	It automates the generation of JSON schemas and handles the entire tool use/tool result loop internally.
When using the Tool Runner, how does it receive the tool definitions?	By accepting the actual functions (e.g., TypeScript functions), which it reads the types and documentation from.
What method must be called to wait for the final assistant message after the Tool Runner has completed all necessary tool calls?	`runner.untilDone()`.
