What is possible within a single assistant message from Claude?	It can contain multiple tool use blocks, allowing operations to run in parallel.
What common issue occurs when trying to get Claude to execute multiple tools in parallel by default?	Claude often defaults to sequential tool calls, requiring multiple rounds of requests.
What technique can be used to greatly increase the chance of Claude sending back multiple tool uses in a single message?	Implementing a batch tool.
When Claude decides to use a batch tool, what structure does it provide?	A list of objects, where each object represents a specific tool invocation.
What two pieces of information must each object within the batch tool's invocation list contain?	The name of the tool Claude wants to run and the arguments for that tool.
What is the primary role of the custom `run_batch` function in the implementation?	To iterate over the list of invocations provided by Claude and execute each requested tool.
When implementing `run_batch`, what is the process for handling the arguments provided by Claude?	The arguments are encoded as JSON, so they must be parsed using `json.loads()` before being passed to the tool.
What is the final workflow after successfully implementing the batch tool?	Claude calls the batch tool once, and the system executes all listed tools in parallel.
