agent:
default_agent: olium
templates_dir: ~/.vigolium/prompts/
sessions_dir: ~/.vigolium/agent-sessions/
stream: true # real-time output streaming
# Olium engine — used by every agent subcommand
olium:
provider: openai-compatible # openai-codex-oauth | anthropic-api-key | anthropic-oauth | openai-api-key | anthropic-cli | anthropic-vertex | google-vertex | openai-compatible (default: openai-compatible)
model: gemma4:latest # empty = provider default; matches custom_provider.model_id default
oauth_cred_path: ~/.codex/auth.json # openai-codex-oauth provider
oauth_token: "" # anthropic-oauth bearer token (from `claude setup-token`); supports ${ENV_VAR}
llm_api_key: "" # for anthropic-api-key / openai-api-key; supports ${ENV_VAR}; falls back to provider env
reasoning_effort: medium # minimal | low | medium | high | xhigh (codex)
system_prompt: "" # override built-in olium system prompt
max_tokens: 1000000
temperature: 0.0
max_turns: 32 # tool-loop iteration cap
cache_size: 1024 # LRU entries; 0 disables
max_concurrent: 4 # global cap on simultaneous in-flight provider calls
call_timeout_sec: 600 # per-call deadline; -1 = no enforced timeout
# Skills always loaded for autopilot/swarm regardless of planner selection.
# Empty = built-in default [triage-finding, write-jsext]. The CLI flags
# --skill / --skill-tag / --no-skill-filter override selection per-run.
always_on_skills: []
# Custom OpenAI-compatible backend (used when provider == openai-compatible).
# Drives Ollama, OpenRouter, LM Studio, vLLM, Together, Groq, etc.
custom_provider:
base_url: http://localhost:11434/v1 # e.g. http://localhost:11434/v1 (Ollama)
model_id: gemma4:latest # backend-specific model id
api_key: "" # optional; leave empty to skip Authorization header; supports ${ENV_VAR}
extra_headers: [] # list of curl-style "Key: Value" strings, applied after standard headers
# OpenRouter provider routing — typed knob for the request "provider" object.
# Only fields you set are sent; unset fields are dropped from the wire body.
provider_routing:
order: [] # upstream provider slugs in preference order
only: [] # restrict to these provider slugs
ignore: [] # exclude these provider slugs
allow_fallbacks: true # false = strict (only the chosen providers)
sort: "" # price | throughput | latency
quantizations: [] # e.g. [fp8, int8]
data_collection: "" # allow | deny
require_parameters: false # only providers that honour every request parameter
zdr: false # Zero Data Retention providers only
# Generic JSON-body passthrough merged into every openai-compatible request
# (OpenRouter extensions, vLLM/Together body options, etc.). Reserved keys
# (model, messages, tools, stream, stream_options) are rejected. Don't set a
# `provider` key here if you also use provider_routing — use one or the other.
extra_body: {}
# Vertex AI (anthropic-vertex / google-vertex) — GCP project / region.
# Credentials come from `oauth_cred_path` (service-account JSON) or
# $GOOGLE_APPLICATION_CREDENTIALS. $GOOGLE_CLOUD_PROJECT and
# $GOOGLE_CLOUD_LOCATION override these YAML values.
google_cloud_project: "" # GCP project id
google_cloud_location: "" # GCP region; default us-central1
# LLM config for JavaScript extension agent API (vigolium.agent.* in extensions)
llm:
provider: anthropic # anthropic | openai
model: claude-sonnet-4-20250514
api_key: "" # inline key (prefer api_key_env)
api_key_env: "" # env var name (default: ANTHROPIC_API_KEY or OPENAI_API_KEY)
base_url: "" # custom endpoint for OpenAI-compatible providers
max_tokens: 4096
temperature: 0.0
cache_size: 256 # LRU entries (0 = disabled)
cache_ttl: 300 # seconds
# DB context enrichment limits for swarm/autopilot
context_limits:
max_findings: 50
max_endpoints: 100
max_high_risk: 20
min_risk_score: 50
# Autopilot guardrails (SDK-era; mostly informational under olium)
guardrails:
log_commands: false
max_turns: 0 # 0 = auto (MaxCommands * 3)
disallowed_tools: []
# Optional agent-browser integration (Bash tool can drive a real Chromium for auth-walled flows)
browser:
enable: true
binary_path: agent-browser # default: looked up on $PATH
# Vigolium-audit integration (embedded harness)
audit:
enable: false # auto-enabled by --audit flag on autopilot/swarm
mode: lite # lite | balanced | deep | mock
sync_interval: 30 # seconds between state syncs
# The audit driver runs the `claude` or `codex` CLI. There is no
# platform knob here — the agent is resolved from agent.olium.provider
# (anthropic-* → claude, openai-* → codex), overridable per-run with
# --provider or --agent {claude|codex} on `vigolium agent audit`.