A tool the model may call.
ExAgent.Tool bundles everything: the serialisable ToolDefinition
(name, description, JSON-Schema parameters) and the actual callable that
runs when the model invokes it. Use definition/1 to project the shape a
provider sends to the model.
Tools are normally built via the deftool macro (see ExAgent.Tools),
which derives the JSON-Schema from the function's @spec. They can also be
built by hand with new/1.
Summary
Functions
Serialisable projection sent to the model: name + description + params.
Build a tool by hand.
Types
@type kind() :: :function | :output | :external | :unapproved