Jido.AI.Reasoning.ReAct.Config (Jido AI v2.1.0)

View Source

Canonical configuration for the Task-based ReAct runtime.

Summary

Functions

Returns a stable config fingerprint used by checkpoint tokens.

Merge request-scoped LLM option overrides into an existing normalized option list.

Build a runtime config from options.

Convert runtime tools to ReqLLM tool definitions.

Returns the effective stream consumer timeout.

Types

t()

@type t() :: %Jido.AI.Reasoning.ReAct.Config{
  effect_policy: any(),
  llm: %{
    :max_tokens => integer(),
    :temperature => number(),
    :req_http_options => [any()],
    :llm_opts => any(),
    optional(:timeout_ms) => nil | integer(),
    tool_choice: any()
  },
  max_iterations: integer(),
  model: any(),
  observability: %{
    emit_telemetry?: boolean(),
    emit_signals?: boolean(),
    redact_tool_args?: boolean()
  },
  pending_input_server: nil | nil | any(),
  request_transformer: nil | nil | atom(),
  stream_timeout_ms: integer(),
  streaming: boolean(),
  system_prompt: nil | nil | binary(),
  token: %{
    :secret => binary(),
    optional(:ttl_ms) => nil | integer(),
    compress?: boolean()
  },
  tool_exec: %{
    max_retries: integer(),
    timeout_ms: integer(),
    retry_backoff_ms: integer(),
    concurrency: integer()
  },
  tools: map(),
  trace: %{
    capture_deltas?: boolean(),
    capture_thinking?: boolean(),
    capture_messages?: boolean()
  },
  version: integer()
}

Functions

fingerprint(config)

@spec fingerprint(t()) :: String.t()

Returns a stable config fingerprint used by checkpoint tokens.

llm_opts(config)

@spec llm_opts(t()) :: keyword()

Convert config to generation options for ReqLLM.Generation.stream_text/3 and ReqLLM.Generation.generate_text/3.

merge_llm_opts(config, base_opts, overrides)

@spec merge_llm_opts(t(), keyword(), keyword() | map() | nil) :: keyword()

Merge request-scoped LLM option overrides into an existing normalized option list.

new(opts \\ %{})

@spec new(map() | keyword()) :: t()

Build a runtime config from options.

reqllm_tools(config)

@spec reqllm_tools(t()) :: [ReqLLM.Tool.t()]

Convert runtime tools to ReqLLM tool definitions.

stream_timeout(config)

@spec stream_timeout(t()) :: pos_integer()

Returns the effective stream consumer timeout.

When stream_timeout_ms is 0 (default), auto-derives from tool_exec.timeout_ms + 60_000 to ensure the stream consumer outlives the longest possible tool execution plus LLM response time.