Configuration Reference

July 20, 2026 · View on GitHub

SkillOpt loads structured YAML, resolves _base_ inheritance, and flattens the result for the trainer. Shipped defaults live in configs/_base_/default.yaml; benchmark configs override them.

Model and Backend Selection

Use explicit optimizer and target backends when the two roles differ or when selecting the generic OpenAI-compatible backend.

BackendOptimizerTarget
openai_chat
openai_compatible
claude_chat
qwen_chat
minimax_chat
codex_exec
claude_code_exec
cursor_exec

MiniMax currently has one shared deployment. model.minimax_model is applied when MiniMax is the target; mixed-backend runs cannot independently choose a MiniMax optimizer model and a different target model.

ParameterTypeDefaultDescription
model.backendstrazure_openaiBackward-compatible high-level run label
model.optimizerstrgpt-5.5Optimizer deployment/model
model.targetstrgpt-5.5Target deployment/model
model.optimizer_backendstropenai_chatOptimizer client path; chat backends plus codex_exec
model.target_backendstropenai_chatTarget client path; chat or exec backend
model.reasoning_effortstrmediumShared reasoning effort
model.rewrite_reasoning_effortstremptyOptional full-rewrite effort override
model.rewrite_max_completion_tokensint64000Full-rewrite output cap

Azure/OpenAI openai_chat

ParameterDefaultDescription
model.azure_openai_endpointemptyShared Azure resource URL or compatibility-mode base URL
model.azure_openai_api_version2024-12-01-previewAzure API version
model.azure_openai_api_keyemptyKey for api_key or compatibility auth
model.azure_openai_auth_modeemptyConfig value; empty falls back to env, whose default is azure_cli
model.azure_openai_ad_scopeAzure Cognitive Services scopeAAD token scope
model.azure_openai_managed_identity_client_idemptyOptional user-assigned identity client ID

Every shared key also has an optimizer_azure_openai_* and target_azure_openai_* form.

Claude claude_chat

claude_chat launches an installed, authenticated Claude Code CLI with claude -p; it does not instantiate an Anthropic API client. The executable defaults to claude and can be overridden with CLAUDE_CLI_BIN. ANTHROPIC_API_KEY is one authentication option understood by the CLI.

Qwen, MiniMax, and Exec Backends

Parameter familyDescription
model.qwen_chat_*Shared base_url, api_key, temperature, timeout_seconds, max_tokens, and enable_thinking
model.optimizer_qwen_chat_* / model.target_qwen_chat_*Per-role Qwen overrides
model.minimax_*MiniMax base_url, api_key, shared minimax_model, temperature, max_tokens, and enable_thinking; minimax_model applies when MiniMax is the target
model.codex_exec_*Codex path, sandbox, profile, SDK mode, reasoning, network/search, and approval policy
model.claude_code_exec_*Claude path, profile, SDK mode, effort, and thinking-token cap
model.cursor_exec_pathCursor Agent executable path; default cursor-agent
model.cursor_exec_sandboxCursor sandbox mode: enabled (default) or disabled; file-edit rollouts require enabled

Training (train)

ParameterTypeDefaultDescription
train.num_epochsint4Training epochs
train.train_sizeint00 derives the size from the dataset split
train.steps_per_epochintderivedRuntime field recomputed from train size, batch size, and accumulation; configured values are overwritten
train.batch_sizeint40Tasks sampled per step
train.accumulationint1Accumulation rounds per step
train.seedint42Random seed

Gradient / Reflection (gradient)

ParameterTypeDefaultDescription
gradient.minibatch_sizeint8Reflect minibatch size
gradient.merge_batch_sizeint8Patch merge batch size
gradient.analyst_workersint16Parallel reflection workers
gradient.max_analyst_roundsint3Maximum analyst rounds
gradient.failure_onlyboolfalseReflect only on failures

Optimizer (optimizer)

ParameterTypeDefaultDescription
optimizer.learning_rateint4Maximum edit patches per step
optimizer.min_learning_rateint2Floor for decaying schedules
optimizer.lr_schedulerstrcosineconstant, linear, cosine, or autonomous
optimizer.lr_control_modestrfixedfixed, autonomous, or none
optimizer.skill_update_modestrpatchpatch, rewrite_from_suggestions, or full_rewrite_minibatch
optimizer.use_slow_updatebooltrueEpoch-boundary longitudinal update
optimizer.slow_update_samplesint20Longitudinal evaluation samples
optimizer.slow_update_gate_with_selectionboolfalseGate slow-update guidance on the selection split
optimizer.longitudinal_pair_policystrmixedmixed, changed, or unchanged
optimizer.use_meta_skillbooltrueCross-epoch optimizer memory
optimizer.use_skill_aware_reflectionboolfalseEnable skill-defect vs execution-lapse routing
optimizer.skill_aware_appendix_sourcestrbothboth or failure_only
optimizer.skill_aware_consolidate_thresholdint0Appendix compaction threshold; 0 disables it

Evaluation (evaluation)

ParameterTypeDefaultDescription
evaluation.use_gatebooltrueAccept only improvements when enabled; false records validation but force-accepts each candidate
evaluation.gate_metricstrhardhard, soft, or mixed
evaluation.gate_mixed_weightfloat0.5Soft-score weight for mixed
evaluation.use_semantic_densityboolfalseAdd the optional instruction-density bonus
evaluation.semantic_density_weightfloat0.05Density bonus weight
evaluation.leading_wordslist/strbuilt inOptional custom high-influence words
evaluation.sel_env_numint0Selection size; 0 uses the full split
evaluation.test_env_numint0Test size; 0 uses the full split
evaluation.eval_testbooltrueRun final test evaluation

Environment (env)

ParameterTypeDefaultDescription
env.namestremptyBenchmark name
env.skill_initstremptyInitial skill document
env.split_modestrratioratio or split_dir
env.split_ratiostrbenchmark/defaultTrain:validation:test ratio
env.split_seedint42Deterministic split seed
env.split_dirstremptyMaterialized train/val/test directory
env.data_pathstremptyRaw data path for ratio mode
env.split_output_dirstremptyOptional materialized split output
env.exec_timeoutint120Per-task timeout in seconds
env.out_rootstrgenerated by the train/eval CLIsOutput directory

Benchmark-specific env keys are passed through to the adapter.

Credential Environment Variables

Azure-family backend

VariableDescription
AZURE_OPENAI_ENDPOINTShared Azure endpoint or compatibility base URL
AZURE_OPENAI_API_VERSIONAzure API version
AZURE_OPENAI_AUTH_MODEapi_key, azure_cli, managed_identity, or openai_compatible
AZURE_OPENAI_API_KEYKey for api_key or openai_compatible mode
AZURE_OPENAI_AD_SCOPEOptional AAD scope
AZURE_OPENAI_MANAGED_IDENTITY_CLIENT_IDOptional managed-identity client ID

Use OPTIMIZER_AZURE_OPENAI_* and TARGET_AZURE_OPENAI_* for role-specific overrides.

Generic OpenAI-compatible backend

Variable suffixShared / per-role forms
BASE_URLOPENAI_COMPATIBLE_BASE_URL, OPTIMIZER_OPENAI_COMPATIBLE_BASE_URL, TARGET_OPENAI_COMPATIBLE_BASE_URL
API_KEYCorresponding shared/optimizer/target *_API_KEY names
MODELCorresponding shared/optimizer/target *_MODEL names
TEMPERATURECorresponding shared/optimizer/target *_TEMPERATURE names
MAX_TOKENSCorresponding shared/optimizer/target *_MAX_TOKENS names
TIMEOUT_SECONDSCorresponding shared/optimizer/target *_TIMEOUT_SECONDS names

The train/eval entry points set deployments from YAML model.optimizer and model.target after backend initialization. For selected OpenAI-compatible or Qwen roles, those values override the corresponding *_MODEL environment variables; the environment model names mainly seed direct library use.

Other backend families use the authenticated Claude CLI (CLAUDE_CLI_BIN; optionally ANTHROPIC_API_KEY), QWEN_CHAT_*, and MINIMAX_*. SkillOpt-Sleep's compatible endpoint uses AZURE_OPENAI_*, not the research backend's OPENAI_COMPATIBLE_*; see the Sleep endpoint guide.