ADK.Tool.Declarative (ADK v0.0.1-alpha.1)

Copy Markdown View Source

Macro-based tool declaration using @tool module attributes.

Usage

defmodule MyTools do
  use ADK.Tool.Declarative

  @tool name: "greet", description: "Greet a person"
  def greet(_ctx, %{"name" => name}) do
    {:ok, "Hello, #{name}!"}
  end

  @tool name: "add", description: "Add two numbers"
  def add(_ctx, %{"a" => a, "b" => b}) do
    {:ok, a + b}
  end
end

MyTools.__tools__()
# => [%ADK.Tool.FunctionTool{name: "greet", ...}, ...]