La sección Ajustes
del dashboard, opción por opción.
Cada toggle, dropdown, formulario y campo oculto del Control UI explicado en detalle. Desde Quick Settings hasta los modos avanzados de autenticación del Gateway, pasando por canales, comunicaciones, automatización e infraestructura. Sin atajos.
CeMIACE FCE-UBA
Cómo funciona todo esto.
Antes de meternos pestaña por pestaña, hay tres conceptos transversales que hacen falta entender: el flujo de guardado, los dos modos de edición (Form vs Raw), y cómo se taggean las opciones según su sensibilidad.
Toda la sección Ajustes edita el archivo ~/.openclaw/openclaw.json.
Cuando cambiás algo, el banner superior cambia de "No changes" a
"X changes". Los botones disponibles son:
Form mode (default) muestra cada opción con su tipo correcto: toggles para booleans, dropdowns para enums, inputs validados. Es el modo recomendado: el panel valida en tiempo real y no te deja guardar valores inválidos.
Raw mode te deja editar el JSON5 directamente. Tiene dos restricciones:
(1) solo está disponible cuando el snapshot puede roundtripar (preserva comentarios, trailing commas, layout de $include),
(2) si el panel detecta que no puede preservar el formato original, fuerza Form mode y muestra
"Raw mode disabled (snapshot cannot safely round-trip raw text)".
El botón Reset to saved en Raw preserva el shape autoral (no flatten el snapshot), así las ediciones externas vía vim/VSCode sobreviven al reset.
Cada campo en la UI viene taggeado para que sepas con qué te estás metiendo:
advanced = no toques esto a menos que sepas qué hace · access = afecta quién puede entrar · network = afecta exposición de red · reliability = afecta uptime/estabilidad · performance = afecta latencia/throughput · secret = contiene credenciales (se enmascara) · required = no se puede dejar vacío.
La pestaña Ajustes.
Es el "cockpit" del Gateway. Reúne en un solo lugar las decisiones más frecuentes: qué modelo usa el agente, cuánto piensa antes de responder, qué canales están conectados, qué política de seguridad rige, cómo se ve el panel, y cuántas automatizaciones tenés activas. Si necesitás algo más profundo, en la esquina superior derecha hay un botón Advanced que abre el editor avanzado (Form + Raw, con Core, Environment, Authentication, Updates, Meta, Logging, Diagnostics, CLI, Secrets, Other).
Model & Thinking
agents.defaults.model · agents.defaults.thinkingControla el cerebro del agente: qué LLM usa y con cuánto razonamiento. La elección impacta directamente latencia, costo y calidad de las respuestas.
Channels (resumen)
channels.*Vista rápida de los canales conectados. Cada item te muestra el estado: Connected (verde, está vivo y configurado), Configured (configurado pero no necesariamente conectado), o vacío (no configurado). Para configurar a fondo cada canal, andá a la pestaña Canales.
Security
gateway.auth · tools.exec · gateway.browserLa sección más crítica de Quick Settings. Define quién puede entrar al Gateway, qué puede ejecutar el agente, y qué herramientas tiene activas por defecto. El botón Configure → al lado del header te lleva al editor avanzado de seguridad.
Personal
Browser-local · no se guarda en configAspecto visual del chat. Acá definís cómo te ve el agente (USER avatar) y cómo se ve el agente a sí mismo (ASSISTANT avatar). Importante: el USER avatar es browser-local (solo lo ves vos en este navegador), mientras que el ASSISTANT avatar es un override del IDENTITY.md del agente.
Appearance (Quick)
controlUi.theme.* · browser-localAtajo a las opciones más usadas de Apariencia. Configuración completa en la pestaña Apariencia.
Automations
Quick view · countersResumen de automatizaciones. Cada item tiene un link Manage → que te lleva a la pestaña correspondiente.
Context Profile
agents.defaults.bootstrap.*Define cuánto contexto del workspace (AGENTS.md, SOUL.md, USER.md, TOOLS.md, IDENTITY.md, HEARTBEAT.md, MEMORY.md) se inyecta en cada turn del agente. Más contexto = mejor coherencia pero más tokens (= más caro y más lento).
El panel te muestra cuatro presets que cambian de un golpe los tres parámetros principales
(maxCharsPerFile, maxCharsTotal, injectOn). Si tu config actual
no matchea ninguno, aparece como Custom Configuration con un mensaje
"Choose a profile to stage a focused change to bootstrap size and follow-up behavior."
Current Values (resumen)
Advanced Editor (botón superior derecho)
Form · Raw · Core sectionsAl apretar Advanced → en la esquina superior derecha de Quick Settings se abre el editor avanzado. Tiene dos modos (Form y Raw) y agrupa las opciones por categoría.
La pestaña Canales.
Gestión completa de los canales de mensajería. Cada canal (Telegram, WhatsApp, Discord, Slack, Matrix, iMessage, Signal, Teams, Feishu, etc.) aparece como una card con su estado, modo de operación, accounts configuradas, y opciones específicas. En tu caso solo está Telegram, pero la estructura es la misma para todos los canales.
Status fields (todos los canales)
channels.<channel>.*Los siguientes campos aparecen en TODOS los canales. Cambia el botToken/secret/API endpoint, pero la estructura es idéntica.
Telegram — opciones específicas
channels.telegram.*Telegram es el canal mejor documentado y más usado. Todas las opciones que voy a listar tienen su equivalente en WhatsApp, Discord, Slack (con nombres ligeramente distintos), pero los conceptos son idénticos.
Groups (configuración por grupo)
channels.telegram.groups.<chatId>
Cuando agregás el bot a grupos, podés configurar reglas por grupo específico (o el comodín "*").
Permite tener un bot que se comporta distinto en cada grupo: distintos system prompts, distintas skills habilitadas, diferentes allowlists.
Otros canales soportados
channels.*Cada canal tiene sus quirks pero todos comparten el patrón base (token, dmPolicy, allowFrom, actions, retry, etc.). Resumen rápido:
La pestaña Comunicaciones.
Esta sección controla cómo se entregan los mensajes — agnóstico al canal. Define el comportamiento de mensajería transversal: reacciones, reglas de grupos, broadcasts, voz (Talk) y audio (STT/TTS). Es donde vive la magia que hace que un mismo agente se comporte coherentemente en Telegram, WhatsApp, Discord y Slack a la vez.
Messages
messages.*
Configuración global del comportamiento de mensajes. Estas opciones se aplican a todos los canales por defecto, salvo override específico
en channels.<name>.<option>.
Broadcast
messages.broadcast.*Envío de mensajes a múltiples destinatarios desde un cron job, hook o llamada manual. Útil para newsletters, alertas, comandos de "todos los lunes manda esto a todos". La configuración define a quiénes incluir, rate limits, y formato.
Talk
talk.*
Conversación por voz en tiempo real. Soporta tres modos:
realtime (provider-native streaming — OpenAI Realtime, Google Live),
stt-tts (transcripción + LLM + síntesis — funciona con cualquier provider),
transcription (solo captions/dictado, sin respuesta de voz).
Audio
audio.* · stt.*Configuración de inbound audio: transcripción de notas de voz que el bot recibe, plus configuración de Voice Call streaming STT.
La pestaña Apariencia.
Toda la parte cosmética del Control UI. Tema visual, modo light/dark, redondeo de esquinas, tamaño de texto. Importante: muchas de estas opciones se guardan en localStorage del navegador, no en el config del Gateway. Si abrís el dashboard desde otro browser, vas a tener que reconfigurar.
Theme
controlUi.theme.* · browser-localFamilia de tema visual del Control UI. Cada familia define paleta de colores, tipografía, iconografía y estilo general. Cuatro opciones built-in + Import para temas custom.
UI
controlUi.* · gateway.controlUi.*Configuración funcional del Control UI: animaciones, accesos, sandboxing de embeds.
Setup Wizard
acción manualRe-ejecuta el wizard de onboarding inicial. Útil para reconfigurar el Gateway sin tener que editar el JSON a mano, o para guiar a alguien que está aprendiendo.
La pestaña Automatización.
El corazón operativo del Gateway: cómo el agente ejecuta cosas por su cuenta, qué comandos puede correr, qué eventos disparan qué acciones, y cómo se ruteen los mensajes a los distintos agentes. Acá vive cron, hooks, bindings multi-agente, approvals globales y plugins.
Commands
commands.* · tools.exec.*Slash commands y comandos del shell. Define qué comandos custom existen, quién puede usar comandos de elevated access, y cómo se comporta el bash chat command.
Hooks
hooks.internal.entries.*Event-driven scripts que se disparan en eventos del ciclo de vida (mensaje recibido, comando ejecutado, sesión compactada, gateway startup, etc.). Hay internal hooks (bundled, discovered de directorios) y plugin hooks (registrados por plugins instalados).
Bindings
bindings[] · multiAgent.*Multi-agent routing. Define qué agente atiende qué canal/peer/guild/topic/rol. Si solo tenés un agente, no necesitás bindings. Si tenés varios agentes especializados (uno para coding, otro para soporte, otro para family chats), bindings te ahorran horas.
Cron (config global)
cron.*Configuración global del scheduler. Los jobs individuales se crean en la sección Tareas Cron del sidebar. Acá definís el comportamiento global: webhook auth, retry policy, alertas de falla, default destinations.
Approvals
tools.exec.approvals.* · gateway.exec.approvals.*Políticas globales de aprobación para ejecución de tools. Acá vive la política que decide qué comandos pasan (allowlist), cuáles piden confirmación, y cuáles se bloquean.
Plugins
plugins.* · npm registryExtensiones que cargan capacidades nuevas: proveedores LLM, canales, tools, hooks, channels custom. Se instalan via npm registry (no aceptan git/URL/file specs por seguridad).
La pestaña Infraestructura.
La sección más crítica desde el punto de vista de seguridad. Define cómo el Gateway escucha, quién puede entrar, cómo se sirve el Control UI, qué browser usa el agente, qué nodos están conectados, cómo se descubren entre sí, qué tools de generación de media están activas, y cómo se hablan los protocolos ACP/MCP.
Gateway
gateway.*El servidor que escucha todas las conexiones (browser, mobile apps, CLI, canales). Acá vive el config más sensible: bind mode (qué IP escucha), auth mode (cómo se valida), rate limiting, trusted proxies.
Web
web.* · gateway.controlUi.* (parcial)Configuración del WebChat y PWA. El WebChat es la interfaz browser-based para hablar con el agente desde cualquier navegador autorizado.
Browser
browser.* · gateway.browser.*Configuración del browser headless que usa el agente para navegar. Internamente: Playwright + Chromium.
NodeHost
nodes.host.*Configuración del nodo "local" (el mismo Gateway host actuando como nodo). Define qué capacidades expone el host para que el agente las pueda invocar.
Discovery
discovery.*Cómo se descubren entre sí el Gateway y los nodos (Mac, iPhone, Android, browsers). Soporta mDNS/Bonjour para LAN y DNS-based para WAN.
Media
media.* · plugins providersConfiguración de generación de imagen, video y música. Cada provider tiene su sub-config con API key y opciones específicas.
ACP (Agent Communication Protocol)
acp.*Protocolo para que múltiples agentes se comuniquen entre sí (incluyendo Claude Code, Gemini CLI, otros agentes OpenClaw, etc.). ACP es bidireccional: tu agente puede invocar a otros, otros agentes pueden invocar al tuyo.
MCP (Model Context Protocol)
mcp.*Cliente MCP. Permite que tu agente use tools expuestas por servers MCP externos (Linear, GitHub, Notion, Slack, Postgres, etc.). MCP es el protocolo abierto creado por Anthropic.
La pestaña IA y agentes.
El cerebro y la consciencia del sistema. Acá vive todo lo que define cómo el agente piensa: qué modelos LLM usa, cómo se carga el conocimiento (skills, tools, memory), y cómo se manejan las sesiones (compaction, pruning, lifecycle).
Agents
agents.defaults.* · agents.list[]
Configuración de los agentes. agents.defaults son los settings compartidos por todos. agents.list[] permite definir agentes específicos con override por agente.
Si solo tenés un agente (como Logos en tu setup), no necesitás tocar agents.list.
Models
models.* · providersCatálogo de proveedores LLM y modelos disponibles. Cada provider tiene su sub-config con API key (via SecretRefs) y opciones específicas. Tu setup usa OpenRouter como primary, Groq + DeepSeek como fallbacks.
Skills
skills.* · plugins.entries.skills.*Las skills son las "habilidades" extensibles del agente. Cada skill es una colección de prompts, scripts y configs que el agente puede invocar como una unidad de conocimiento. Built-in + ClawHub + workspace.
Tools
tools.*
Configuración del catálogo de tools del agente. tools.profile selecciona un preset; tools.effective es el computed final;
tools.loopDetection previene loops infinitos.
Memory
memory.* · plugins.entries.memory-core.config.*Sistema de memoria persistente del agente. OpenClaw usa archivos Markdown plain como storage (MEMORY.md, memory/YYYY-MM-DD.md, DREAMS.md) + un índice SQLite/QMD/LanceDB para búsqueda.
Session
session.* · agents.defaults.compaction.*Cómo se manejan las sesiones: lifecycle, compaction (resumen automático cuando el contexto se llena), pruning (limpieza de tool results viejos), timeouts.
La pestaña Depuración.
Instantáneas en tiempo real del estado del Gateway. Aparecen como bloques JSON crudo: Status (configuración runtime + heartbeat + canales), Health (eventLoop health + uptime), y heartbeat data. Es la herramienta de diagnóstico número uno cuando algo no anda.
Snapshots
RPC: status, healthEl panel muestra dos bloques JSON: Status y Health. El botón Actualizar arriba a la derecha refresca el snapshot manualmente.
La pestaña Registros.
Seguimiento en vivo de los logs del Gateway. JSONL streaming con filtros por nivel, búsqueda full-text, auto-follow. Es donde vas a pasar más tiempo cuando algo no anda.
Logs (JSONL en vivo)
/tmp/openclaw/openclaw-YYYY-MM-DD.log
Los logs viven en formato JSONL (un JSON por línea) en /tmp/openclaw/openclaw-YYYY-MM-DD.log (rota diariamente).
El panel los lee en tiempo real con WebSocket.
En tus logs aparece repetidamente este warning de gateway/ws:
closed before connect conn=<id> peer=<ip>:<port> → 172.17.0.2:18789 remote=<ip> fwd=n/a origin=http://<ip>:18789 host=<ip>:18789 ua=Mozilla/5.0... code=1008 reason=origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)
Significa que estás abriendo el Control UI desde una IP/origen que no está en gateway.controlUi.allowedOrigins.
Solución: agregá el origen exacto (con protocolo y puerto) a esa lista. Ej: ["http://69.6.227.126:18789"].
NO uses ["*"] en producción.