Codex.Tools (Codex SDK v0.3.0)

View Source

Public API for registering and invoking Codex tools.

Summary

Functions

Deregisters a tool using the handle returned from register/2.

Invokes a registered tool, passing argument and contextual data.

Looks up a registered tool by name.

Returns a snapshot of accumulated tool invocation metrics keyed by tool name.

Registers a tool module with optional overrides.

Clears all recorded metrics. Primarily used in test setups.

Functions

deregister(handle)

@spec deregister(Codex.Tools.Handle.t()) :: :ok | {:error, term()}

Deregisters a tool using the handle returned from register/2.

invoke(name, args, context)

@spec invoke(String.t(), map(), map()) :: {:ok, map()} | {:error, term()}

Invokes a registered tool, passing argument and contextual data.

lookup(name)

@spec lookup(String.t()) :: {:ok, map()} | {:error, term()}

Looks up a registered tool by name.

metrics()

@spec metrics() :: %{optional(String.t()) => map()}

Returns a snapshot of accumulated tool invocation metrics keyed by tool name.

register(module, opts \\ [])

@spec register(
  module(),
  keyword()
) :: {:ok, Codex.Tools.Handle.t()} | {:error, term()}

Registers a tool module with optional overrides.

Options:

  • :name – tool identifier (defaults to metadata name or module name)
  • :description – human readable description
  • :schema – optional structured output schema metadata

reset_metrics()

@spec reset_metrics() :: :ok

Clears all recorded metrics. Primarily used in test setups.