AxisAgentic separates machine-specific provider secrets and storage roots from versioned YAML experiment settings.
- The active shell provides storage roots and may provide credentials.
run.env_fileloads missing provider variables; it defaults to.envs/.env.- YAML selects models, datasets, policies, tools, evaluation, and output paths.
- CLI flags override the small set of values exposed by a recipe runner, such as resume or task limits.
For provider fields that can be specified in YAML, a non-empty YAML value wins over its environment fallback. The env-file loader never replaces a variable already present in the process environment.
Recipe configuration is validated with strict Pydantic models: unknown keys fail early instead of being silently ignored. Each run writes both the input and resolved configurations to its output directory.
Start from .env.example. Common variables are:
| Variable | Purpose |
|---|---|
OPENAI_MODEL, OPENAI_BASE_URL, OPENAI_API_KEY |
Primary OpenAI-compatible model |
SERPER_API_KEY, SERPER_BASE_URL |
Web search |
JINA_API_KEY, JINA_BASE_URL |
Page scraping |
JUDGE_MODEL, JUDGE_BASE_URL, JUDGE_API_KEY |
Optional evaluator model; falls back to the primary model endpoint where supported |
SUMMARY_LLM_MODEL_NAME, SUMMARY_LLM_BASE_URL, SUMMARY_LLM_API_KEY |
Optional scrape extraction/summarization model |
COMPRESSION_LLM_MODEL_NAME, COMPRESSION_LLM_BASE_URL, COMPRESSION_LLM_API_KEY |
Optional context-compression model |
E2B_API_KEY |
Optional code sandbox |
API-key variable names used by a run are selected in YAML, for example model.api_key_env, judge.api_key_env, or eval.judge_api_key_env.
Recipe runners expand the following schemes:
| Scheme | Root |
|---|---|
repo://path |
repository root |
axis_data://path |
AXIS_DATA_DIR |
axis_model://path |
AXIS_MODEL_DIR |
axis_log://path |
AXIS_LOG_DIR |
Absolute paths are preserved. Plain relative paths are resolved from the repository root. A scheme fails with a clear error when its required environment variable is not set.
Example:
run:
output_dir: axis_log://web_search_infer/my_experiment
env_file: .envs/.env
benchmark:
name: browsecomp
data_path: axis_data://benchmarks/browsecomp/data.jsonl
max_tasks: 20
max_concurrent: 4The full, commented schemas are the best starting point:
Repository-level files in configs/ capture benchmark-specific example settings for BrowseComp, BrowseComp-ZH, DeepSearchQA, GAIA, Humanity's Last Exam, LiveBrowseComp, and WideSearch. Adapt their model names, endpoints, and portable dataset locations to your environment.
The major web-search sections are:
| Section | Controls |
|---|---|
run |
output directory, number of runs, resume policy, env file, request logging |
model |
endpoint, sampling, reasoning fields, transport retries, context window |
benchmark |
dataset, task selection, shuffle, concurrency |
agent |
turns, retry attempts, context strategy, self-verification, tool budgets |
tools |
search, scrape, extraction, cache, and optional code execution |
judge |
exact/LLM evaluation and DeepSearchQA verification |
WideSearch shares the runtime sections and adds agent_prompt plus an eval section for tabular matching and judge-assisted cells.
The runtime retains an append-only event history while deriving the exact message list visible to each model call. Relevant controls include:
model.context: context size, safety margin, token estimator, and limit detection;agent.context_compression: summarize older history while retaining recent interactions;agent.discard_all: reopen the task from a clean visible context after a threshold;- rollback and generation-limit recovery settings under
agent.retry.
context_compression and discard_all are mutually exclusive and validation fails if both are enabled. Context events are recorded in traces so SFT export can reconstruct the actual visible state for every assistant turn.
.env, .envs/, logs, outputs, and local data/model directories are excluded by .gitignore. Model and judge payload logging is disabled by default because payloads can be large and may contain sensitive task content. Enable it only when the output location and retention policy are appropriate.