Appendix B: Environment Variables
La lista completa de environment variables que usa el lab: el name, el purpose, el default y el component que las lee.
Propósito
Este appendix es la referencia canónica para las environment variables del lab. Cada environment variable que usa el lab está documentada aquí. Las variables están organizadas por component.
Las environment variables se leen al process startup y en cada configuration reload. El Coordinator respeta las environment variables que estén seteadas en el shell; los defaults del framework aplican en otro caso.
Conventions
- Las variables son POSIX-style: uppercase letters y underscores.
- Las variables están namespaced por component: las
variables del Coordinator empiezan con
COORDINATOR_; las del Scout conSCOUT_; y así sucesivamente. - Las variables que contienen secrets (API keys,
tokens) deben setearse de manera que no queden
expuestas en process listings o shell history. El
approach recomendado es un
.envfile que no se commitea a version control.
Framework variables
Estas variables las lee el framework (el underlying runtime, no los components del lab).
| Variable | Default | Purpose |
|---|---|---|
OPENCLAW_CONFIG | {workspace-root}/.openclaw/openclaw.json | Path al main configuration file. |
OPENCLAW_LOG_LEVEL | INFO | El log level del framework. |
OPENCLAW_LOG_FORMAT | json | El log format (json o text). |
OPENCLAW_DISABLE_TELEMETRY | false | Si se deshabilita la telemetry. |
Coordinator variables
| Variable | Default | Purpose |
|---|---|---|
COORDINATOR_PORT | 18789 | El HTTP port del Coordinator. |
COORDINATOR_HOST | 127.0.0.1 | La interface a la que se bindea el Coordinator. |
COORDINATOR_MAX_CONCURRENT | 1 | El maximum number de concurrent requests. |
COORDINATOR_SESSION_TIMEOUT_S | 3600 | El idle session timeout en segundos. |
COORDINATOR_MEMORY_ENABLED | true | Si la memory layer está active. |
COORDINATOR_SKILLS_ENABLED | true | Si el skill loader está active. |
COORDINATOR_PROMPT_PATH | {workspace-root}/prompts/coordinator.md | Path al system prompt del Coordinator. |
COORDINATOR_MODEL_PRIMARY | (from config) | Override para el primary model. |
Scout variables
El Scout gateway hostea el Research Worker y el Media Agent.
| Variable | Default | Purpose |
|---|---|---|
SCOUT_PORT | 18790 | El HTTP port del Scout gateway. |
SCOUT_HOST | 127.0.0.1 | La interface a la que se bindea el Scout. |
SCOUT_LOG_DIR | ~/.openclaw-scout/logs/ | El log directory del Scout. |
SCOUT_MODEL_PRIMARY | (from config) | Override para el Scout's primary model. |
SCOUT_PROMPT_PATH | {workspace-root-scout}/prompts/scout.md | Path al system prompt del Scout. |
Research Framework variables
Estas variables las lee el research framework.
| Variable | Default | Purpose |
|---|---|---|
SCOUTE_RESEARCH_ROOT | /tmp/scoute/research | El root directory para research runs. |
SCOUTE_RUNS_DIR | /tmp/scoute/runs | El directory donde viven mission state y artifacts. |
SCOUTE_LOG_LEVEL | INFO | El log level del framework. |
SCOUTE_PARALLEL_WORKERS | 3 | El maximum number de parallel phases. |
SCOUTE_DEFAULT_RETRY | 2 | El default retry count para phases. |
SCOUTE_MAX_BACKOFF_S | 30 | El maximum backoff entre retries. |
SCOUTE_INITIAL_BACKOFF_S | 1.0 | El initial backoff entre retries. |
SCOUTE_BACKOFF_FACTOR | 2.0 | El backoff multiplier. |
SCOUTE_JOURNAL_MAX_BYTES | 52428800 | El maximum size del request journal antes de rotation. |
SCOUTE_TOKEN_POOL_PATH | {framework-root}/config/token_pool_config.json | Path al token pool configuration. |
SCOUTE_TOKEN_POOL_STATE_PATH | {framework-root}/runtime/token_pool_state.json | Path al token pool state. |
SCOUTE_JOURNAL_PATH | {framework-root}/runtime/request_journal.jsonl | Path al request journal. |
SCOUTE_RETENTION_DAYS | 30 | El default retention period en días. |
SCOUTE_FAILED_RETENTION_DAYS | 90 | El retention period para failed missions. |
SCOUTE_CANCELLED_RETENTION_DAYS | 7 | El retention period para cancelled missions. |
Research adapter variables
Estas variables las leen los research adapters.
| Variable | Default | Purpose |
|---|---|---|
TAVILY_API_KEY | (none) | La Tavily API key. Required para el Tavily adapter. |
GOOGLE_API_KEY | (none) | La Google Custom Search API key. Required para el Google adapter. |
GOOGLE_SEARCH_CX | (none) | El Google Custom Search engine ID. Required para el Google adapter. |
PERPLEXITY_DEFAULT_MODEL | (provider default) | El default Perplexity model. |
PERPLEXITY_MAX_RETRIES | 3 | El maximum number de retries para Perplexity requests. |
ADAPTER_RATE_LIMIT_TAVILY | 60 | El per-minute rate limit para Tavily. |
ADAPTER_RATE_LIMIT_DUCKDUCKGO | 30 | El per-minute rate limit para DuckDuckGo. |
ADAPTER_RATE_LIMIT_GOOGLE | 100 | El per-minute rate limit para Google. |
ADAPTER_RATE_LIMIT_YOUTUBE | 60 | El per-minute rate limit para YouTube. |
ADAPTER_RATE_LIMIT_YT_DLP | 20 | El per-minute rate limit para yt-dlp. |
ADAPTER_RATE_LIMIT_PERPLEXITY | 20 | El per-minute rate limit para Perplexity. |
Coding sub-agent variables
Estas variables las lee el coding sub-agent (Codex, en el caso del lab).
| Variable | Default | Purpose |
|---|---|---|
CODEX_HOME | ~/.codex | El Codex configuration directory. |
CODEX_CONFIG | ~/.codex/config.toml | El Codex configuration file. |
CODEX_SANDBOX_MODE | workspace-write | El default sandbox mode. |
CODEX_TIMEOUT_S | 180 | El default per-invocation timeout. |
CODEX_MAX_ITERATIONS | 3 | El default maximum iterations. |
Web Agent variables
| Variable | Default | Purpose |
|---|---|---|
WEB_AGENT_BROWSER_PROFILE | openclaw | El browser profile a usar. |
WEB_AGENT_HEADLESS | false | Si el browser es headless. |
WEB_AGENT_CDP_PORT | 18800 | El CDP port. |
WEB_AGENT_SNAPSHOT_MODE | aria | El default ref mode para snapshots. |
WEB_AGENT_SCREENSHOT_QUALITY | 80 | El screenshot quality (0-100). |
Media Agent variables
| Variable | Default | Purpose |
|---|---|---|
MEDIA_AGENT_CHROMECAST_ENABLED | true | Si el Chromecast backend está enabled. |
MEDIA_AGENT_VLC_BINARY | vlc | El path al VLC binary. |
MEDIA_AGENT_VLC_DEFAULT_INTF | qt | El default VLC interface. |
MEDIA_AGENT_SELECTION_DEFAULT | (from config) | El default backend cuando las rules no resuelven. |
MEDIA_LAB_PORT | 8765 | El HTTP port del Media Lab Server. |
MEDIA_LAB_OUTPUT_DIR | ~/.openclaw/media/outbound/ | El output directory del Media Lab Server. |
Operational variables
Estas variables las leen los operational scripts.
| Variable | Default | Purpose |
|---|---|---|
OPS_BACKUP_DESTINATION | (none) | El backup destination. |
OPS_AUDIT_REPORT_DIR | {workspace-root}/security/audits/ | El audit report directory. |
OPS_HEALTH_CHECK_INTERVAL_S | 86400 | El health check interval en segundos (default 1 day). |
OPS_RETENTION_CHECK_INTERVAL_S | 86400 | El retention check interval. |
OPS_LOG_ROTATION_INTERVAL_S | 86400 | El log rotation interval. |
Path variables
Estas variables son paths que usa el lab.
| Variable | Default | Purpose |
|---|---|---|
WORKSPACE_ROOT | (none, required) | El workspace root del lab. |
RESEARCH_ROOT | SCOUTE_RESEARCH_ROOT | El run root del research framework. |
RUNS_DIR | SCOUTE_RUNS_DIR | El runs directory del research framework. |
FRAMEWORK_ROOT | (none) | El source root del research framework. |
MEMORY_DIR | {workspace-root}/memory/ | El daily log directory. |
SKILLS_DIR | {workspace-root}/.agents/skills/ | El skills directory. |
TOOLS_DIR | {workspace-root}/devclaw-tools/ | El tools directory. |
SESSIONS_DIR | {workspace-root}/sessions/ | El sessions directory. |
AUDIT_DIR | {workspace-root}/security/audits/ | El audit reports directory. |
INCIDENTS_DIR | {workspace-root}/security/incidents/ | El post-mortems directory. |
How variables are loaded
Las variables se cargan en el siguiente orden:
- Defaults. Los built-in defaults del framework aplican si ninguna otra source provee un value.
- Configuration files. El framework lee los configuration files y override los defaults.
- Environment variables. El framework lee las environment variables y override los configuration files.
- Command-line flags. El framework lee los command-line flags y override las environment variables.
El orden es: defaults < config files < env vars < CLI flags. El más específico gana.
How variables are documented
Las variables están documentadas en esta página. Cuando se añade una variable nueva, esta página se actualiza. Cuando una variable se depreca, esta página se actualiza con el deprecation notice y el migration path.
Sensitive variables
Las variables que contienen secrets (API keys, tokens) deben manejarse con cuidado:
- No deben loguearse.
- No deben escribirse al request journal.
- No deben commitearse a version control.
- Deben guardarse en un
.envfile con permissions owner-only.
La logging layer del framework redacta las sensitive
variables conocidas. La redaction se basa en el
variable name; las variables cuyo name contiene
KEY, TOKEN, SECRET o PASSWORD se redactan por
default.