Lab Notes
Appendix

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 con SCOUT_; 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 .env file que no se commitea a version control.

Framework variables

Estas variables las lee el framework (el underlying runtime, no los components del lab).

VariableDefaultPurpose
OPENCLAW_CONFIG{workspace-root}/.openclaw/openclaw.jsonPath al main configuration file.
OPENCLAW_LOG_LEVELINFOEl log level del framework.
OPENCLAW_LOG_FORMATjsonEl log format (json o text).
OPENCLAW_DISABLE_TELEMETRYfalseSi se deshabilita la telemetry.

Coordinator variables

VariableDefaultPurpose
COORDINATOR_PORT18789El HTTP port del Coordinator.
COORDINATOR_HOST127.0.0.1La interface a la que se bindea el Coordinator.
COORDINATOR_MAX_CONCURRENT1El maximum number de concurrent requests.
COORDINATOR_SESSION_TIMEOUT_S3600El idle session timeout en segundos.
COORDINATOR_MEMORY_ENABLEDtrueSi la memory layer está active.
COORDINATOR_SKILLS_ENABLEDtrueSi el skill loader está active.
COORDINATOR_PROMPT_PATH{workspace-root}/prompts/coordinator.mdPath 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.

VariableDefaultPurpose
SCOUT_PORT18790El HTTP port del Scout gateway.
SCOUT_HOST127.0.0.1La 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.mdPath al system prompt del Scout.

Research Framework variables

Estas variables las lee el research framework.

VariableDefaultPurpose
SCOUTE_RESEARCH_ROOT/tmp/scoute/researchEl root directory para research runs.
SCOUTE_RUNS_DIR/tmp/scoute/runsEl directory donde viven mission state y artifacts.
SCOUTE_LOG_LEVELINFOEl log level del framework.
SCOUTE_PARALLEL_WORKERS3El maximum number de parallel phases.
SCOUTE_DEFAULT_RETRY2El default retry count para phases.
SCOUTE_MAX_BACKOFF_S30El maximum backoff entre retries.
SCOUTE_INITIAL_BACKOFF_S1.0El initial backoff entre retries.
SCOUTE_BACKOFF_FACTOR2.0El backoff multiplier.
SCOUTE_JOURNAL_MAX_BYTES52428800El maximum size del request journal antes de rotation.
SCOUTE_TOKEN_POOL_PATH{framework-root}/config/token_pool_config.jsonPath al token pool configuration.
SCOUTE_TOKEN_POOL_STATE_PATH{framework-root}/runtime/token_pool_state.jsonPath al token pool state.
SCOUTE_JOURNAL_PATH{framework-root}/runtime/request_journal.jsonlPath al request journal.
SCOUTE_RETENTION_DAYS30El default retention period en días.
SCOUTE_FAILED_RETENTION_DAYS90El retention period para failed missions.
SCOUTE_CANCELLED_RETENTION_DAYS7El retention period para cancelled missions.

Research adapter variables

Estas variables las leen los research adapters.

VariableDefaultPurpose
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_RETRIES3El maximum number de retries para Perplexity requests.
ADAPTER_RATE_LIMIT_TAVILY60El per-minute rate limit para Tavily.
ADAPTER_RATE_LIMIT_DUCKDUCKGO30El per-minute rate limit para DuckDuckGo.
ADAPTER_RATE_LIMIT_GOOGLE100El per-minute rate limit para Google.
ADAPTER_RATE_LIMIT_YOUTUBE60El per-minute rate limit para YouTube.
ADAPTER_RATE_LIMIT_YT_DLP20El per-minute rate limit para yt-dlp.
ADAPTER_RATE_LIMIT_PERPLEXITY20El per-minute rate limit para Perplexity.

Coding sub-agent variables

Estas variables las lee el coding sub-agent (Codex, en el caso del lab).

VariableDefaultPurpose
CODEX_HOME~/.codexEl Codex configuration directory.
CODEX_CONFIG~/.codex/config.tomlEl Codex configuration file.
CODEX_SANDBOX_MODEworkspace-writeEl default sandbox mode.
CODEX_TIMEOUT_S180El default per-invocation timeout.
CODEX_MAX_ITERATIONS3El default maximum iterations.

Web Agent variables

VariableDefaultPurpose
WEB_AGENT_BROWSER_PROFILEopenclawEl browser profile a usar.
WEB_AGENT_HEADLESSfalseSi el browser es headless.
WEB_AGENT_CDP_PORT18800El CDP port.
WEB_AGENT_SNAPSHOT_MODEariaEl default ref mode para snapshots.
WEB_AGENT_SCREENSHOT_QUALITY80El screenshot quality (0-100).

Media Agent variables

VariableDefaultPurpose
MEDIA_AGENT_CHROMECAST_ENABLEDtrueSi el Chromecast backend está enabled.
MEDIA_AGENT_VLC_BINARYvlcEl path al VLC binary.
MEDIA_AGENT_VLC_DEFAULT_INTFqtEl default VLC interface.
MEDIA_AGENT_SELECTION_DEFAULT(from config)El default backend cuando las rules no resuelven.
MEDIA_LAB_PORT8765El 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.

VariableDefaultPurpose
OPS_BACKUP_DESTINATION(none)El backup destination.
OPS_AUDIT_REPORT_DIR{workspace-root}/security/audits/El audit report directory.
OPS_HEALTH_CHECK_INTERVAL_S86400El health check interval en segundos (default 1 day).
OPS_RETENTION_CHECK_INTERVAL_S86400El retention check interval.
OPS_LOG_ROTATION_INTERVAL_S86400El log rotation interval.

Path variables

Estas variables son paths que usa el lab.

VariableDefaultPurpose
WORKSPACE_ROOT(none, required)El workspace root del lab.
RESEARCH_ROOTSCOUTE_RESEARCH_ROOTEl run root del research framework.
RUNS_DIRSCOUTE_RUNS_DIREl 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:

  1. Defaults. Los built-in defaults del framework aplican si ninguna otra source provee un value.
  2. Configuration files. El framework lee los configuration files y override los defaults.
  3. Environment variables. El framework lee las environment variables y override los configuration files.
  4. 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 .env file 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.

See also