% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/public__s3_methods.R
\name{asa_config}
\alias{asa_config}
\title{Create ASA Configuration Object}
\usage{
asa_config(
  agent_backend = NULL,
  backend = NULL,
  model = NULL,
  conda_env = NULL,
  proxy = NA,
  use_browser = NULL,
  workers = NULL,
  timeout = NULL,
  rate_limit = NULL,
  memory_folding = NULL,
  memory_threshold = NULL,
  memory_keep_recent = NULL,
  use_observational_memory = NULL,
  om_observation_token_budget = NULL,
  om_reflection_token_budget = NULL,
  om_buffer_tokens = NULL,
  om_buffer_activation = NULL,
  om_block_after = NULL,
  om_async_prebuffer = NULL,
  om_cross_thread_memory = NULL,
  temporal = NULL,
  search = NULL,
  tor = NULL,
  recursion_limit = NULL
)
}
\arguments{
\item{agent_backend}{Agent runtime backend: "agent" (default ASA LangGraph
pipeline), "free-code" (headless free-code backend with ASA-managed
provider routing and search MCP tools), or "opencode" (OpenCode CLI backend
with ASA-managed provider routing and search MCP tools).}

\item{backend}{LLM backend: "openai", "groq", "xai", "gemini", "exo",
"ollama", "openrouter", "anthropic", or "bedrock". Ollama also supports
shorthand like \code{"ollama-lfm2:24b-a2b"} when
\code{model} is omitted.}

\item{model}{Model identifier (e.g., "gpt-4.1-mini")}

\item{conda_env}{Conda environment name. Defaults to the package option
\code{asa.default_conda_env} (or \code{"asa_env"} if unset).}

\item{proxy}{Proxy URL (e.g., Tor SOCKS5). Use \code{NA} (default) to
auto-detect from environment variables (\code{ASA_PROXY}, \code{HTTP_PROXY},
\code{HTTPS_PROXY}); use \code{NULL} to disable proxying.}

\item{use_browser}{Enable Selenium browser tier for DuckDuckGo search.}

\item{workers}{Number of parallel workers for batch operations}

\item{timeout}{Request timeout in seconds}

\item{rate_limit}{Requests per second}

\item{memory_folding}{Enable DeepAgent-style memory folding}

\item{memory_threshold}{Messages before folding triggers}

\item{memory_keep_recent}{Exchanges to preserve after folding. An exchange is
a user turn plus the assistant response, including any tool calls and tool outputs.}

\item{use_observational_memory}{Enable observational memory pipeline.}

\item{om_observation_token_budget}{Token budget for stored observation messages.}

\item{om_reflection_token_budget}{Token budget for reflection summaries.}

\item{om_buffer_tokens}{Token budget for buffered context before reflection.}

\item{om_buffer_activation}{Fraction of buffer usage that triggers reflection.}

\item{om_block_after}{Fraction of context usage where buffering blocks generation.}

\item{om_async_prebuffer}{Whether to pre-buffer observations asynchronously.}

\item{om_cross_thread_memory}{Whether observational memory is shared across threads.}

\item{temporal}{Temporal filtering options (use \code{temporal_options()})}

\item{search}{Search configuration (use \code{search_options()})}

\item{tor}{Tor registry options (use \code{tor_options()})}

\item{recursion_limit}{Optional default maximum number of agent steps.
When NULL, mode-specific defaults are used at runtime unless overridden in
\code{\link{run_task}}/\code{\link{run_task_batch}}.}
}
\value{
An object of class \code{asa_config}
}
\description{
Creates a configuration object that encapsulates all settings for ASA tasks.
This provides a unified way to configure backend, model, search, temporal,
and resource settings in a single object.
}
\details{
The configuration object can be passed to \code{run_task()},
\code{run_task_batch()}, \code{asa_enumerate()}, and other functions
to provide consistent settings across operations.
}
\examples{
\dontrun{
# Create configuration
config <- asa_config(
  backend = "openai",
  model = "gpt-4.1-mini",
  workers = 4,
  temporal = temporal_options(time_filter = "y")
)

# Use with run_task
result <- run_task("Find recent AI breakthroughs", config = config)
}

}
\seealso{
\code{\link{temporal_options}}, \code{\link{search_options}}
}
