The tools namespace
Defining a tool
ToolParameter takes name, type, description, required (default true), and
enumValues (default []).
Controlling the loop
Tool behaviour is set throughLlmOptions:
tools.register are offered to every generation. Tools passed in
options.tools apply to that call alone.