Configuration for an agent run.
Built from the options passed to Alloy.run/2. Immutable for the
duration of the run.
Summary
Functions
Builds a config from Alloy.run/2 options.
Returns an updated config with a new provider while preserving unrelated options.
Types
@type t() :: %Alloy.Agent.Config{ code_execution: boolean(), context: map(), fallback_providers: [{module(), map()}], max_pending: non_neg_integer(), max_retries: non_neg_integer(), max_tokens: pos_integer(), max_tokens_explicit?: boolean(), max_turns: pos_integer(), middleware: [module()], model_metadata_overrides: map(), on_compaction: (list(), Alloy.Agent.State.t() -> any()) | nil, on_shutdown: (Alloy.Session.t() -> any()) | nil, provider: module(), provider_config: map(), pubsub: module() | nil, retry_backoff_ms: pos_integer(), subscribe: [String.t()], system_prompt: String.t() | nil, timeout_ms: pos_integer(), tool_timeout: pos_integer(), tools: [module()], working_directory: String.t() }
Functions
Builds a config from Alloy.run/2 options.
Returns an updated config with a new provider while preserving unrelated options.
If max_tokens was not set explicitly, the budget is re-derived from the new
provider model and current model_metadata_overrides.