View Source AI.Tools behaviour (fnord v0.5.4)
This module defines the behaviour for tool calls. Defining a new tool
requires implementing the spec/0
and call/2
functions.
The spec/0
function should return a map that describes the tool's
capabilities and arguments, using a map to represent the OpenAPI spec.
The call/2
function generates the tool call response. It accepts the
requesting agent's struct and a map, derived from the parsed JSON provided by
the agent, containing the tool call arguments. Note that, because the
arguments are parsed from JSON, the keys will all be strings. Whether those
are converted to symbols is between the tool implementation and the code it
calls. What happens behind closed APIs is none of MY business.
Summary
Callbacks
Calls the tool with the provided arguments and returns the response as an :ok tuple.
Returns the OpenAPI spec for the tool as an elixir map.
Return either a short string or a string tuple of label + detail to be displayed when the tool is called.
Return either a short string or a string tuple of label + detail to be displayed when the tool call is successful.
Callbacks
Calls the tool with the provided arguments and returns the response as an :ok tuple.
@callback spec() :: map()
Returns the OpenAPI spec for the tool as an elixir map.
Return either a short string or a string tuple of label + detail to be displayed when the tool is called.
@callback ui_note_on_result(args :: map(), result :: any()) :: {String.t(), String.t()} | String.t() | nil
Return either a short string or a string tuple of label + detail to be displayed when the tool call is successful.