Current section

Files

Jump to
hyper_llm lib tool.ex
Raw

lib/tool.ex

defmodule HyperLLM.Tool do
@moduledoc """
Defines the behaviour that all workflow tool modules must implement.
Each tool module must implement the `call/1` callback, which takes a keyword list
of inputs and returns a tuple containing a result atom and output keyword list.
"""
@doc """
Executes the tool with the given input values.
## Parameters
* `input` - A keyword list containing the tool-specific input values
## Returns
* `{result, output}` - A tuple containing:
* `result` - An atom indicating the result of the tool execution (e.g., :ok, :error, :high, :low)
* `output` - A keyword list containing the tool's output values
"""
@callback call(input :: keyword()) :: {atom(), keyword()}
# @callback input_schema() :: map()
end