Feature Flags (Español)
Qué son los indicadores de funcionalidad
Sección titulada «Qué son los indicadores de funcionalidad»Un indicador de funcionalidad es un conmutador con nombre (booleano o enumeración) cuyo valor puede cambiarse en
tiempo de ejecución y conservarse en la base de datos, sin necesidad de volver a desplegar el proceso. Cada
indicador se describe mediante una FeatureFlagDefinition con una key, label,
description, category, defaultValue, type y una indicación requiresRestart.
Orden de resolución
Sección titulada «Orden de resolución»El valor efectivo de un indicador se resuelve mediante
resolveFeatureFlag() con esta
precedencia (gana la más alta):
- Anulación de la BD — un valor almacenado en la tabla
key_valuebajo el espacio de nombresfeature_flags(establecido mediante el panel o la API REST). - Variable de entorno —
process.env[<KEY>], si está definida y no está vacía. - Valor predeterminado de la definición — el
defaultValuedefeatureFlagDefinitions.ts.
Un indicador booleano se considera habilitado cuando su valor efectivo es "true",
"1" o "yes" (consulte isFeatureFlagEnabled()).
[!NOTE] La mayoría de los indicadores también tienen una variable de entorno correspondiente con el mismo nombre documentada en
ENVIRONMENT.md. La anulación del indicador en la BD tiene prioridad sobre esa variable de entorno. Un indicador conrequiresRestart: truese conserva de inmediato, pero solo vuelve a leerse al iniciar el proceso; al cambiarlo, se muestra un aviso “Reiniciar servidor” en el panel.
Catálogo de indicadores
Sección titulada «Catálogo de indicadores»77 indicadores en 6 categorías. Predeterminado es el valor predeterminado de la definición, es decir, el valor utilizado cuando no existe ni una sobrescritura en la base de datos ni una variable de entorno.
Seguridad (10)
Sección titulada «Seguridad (10)»| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
REQUIRE_API_KEY |
boolean | false |
Requiere una clave de API para todas las solicitudes entrantes. |
INPUT_SANITIZER_ENABLED |
boolean | true |
Habilita la sanitización de entradas para todas las solicitudes. |
INJECTION_GUARD_MODE |
enum | off |
Modo de protección contra la inyección de prompts. Valores: off, warn, block, redact. |
PII_REDACTION_ENABLED |
boolean | false |
Censura la PII de las solicitudes (independientemente de INPUT_SANITIZER_MODE). |
PII_RESPONSE_SANITIZATION |
boolean | false |
Sanitiza la PII de las respuestas del proveedor. |
PII_RESPONSE_SANITIZATION_MODE |
enum | redact |
Modo de sanitización de PII en las respuestas. Valores: redact, warn, block, off. |
OUTBOUND_SSRF_GUARD_ENABLED |
boolean | true |
Bloquea las solicitudes salientes dirigidas a rangos de direcciones IP privadas o internas. |
ALLOW_API_KEY_REVEAL |
boolean | false |
Permite que los usuarios autenticados del panel revelen las claves de API almacenadas en lugar de ver únicamente valores enmascarados. |
AUTH_LOG_INCLUDE_ACCOUNT_ID |
boolean | false |
Incluye el prefijo de la cuenta en las líneas del registro AUTH (p. ej., «Using <provider> account: abc12345…»). Está deshabilitado de forma predeterminada para que los identificadores de cuenta se censuren en los registros de procesos compartidos o multiinquilino. Es independiente del modo de depuración; cambiar dicho modo no revela esta información. |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
boolean | false |
Cuando OIDC está habilitado, deshabilita el inicio de sesión con contraseña para que los usuarios solo puedan autenticarse mediante el inicio de sesión único de OIDC. Cuando está deshabilitado (valor predeterminado), están disponibles tanto el inicio de sesión con contraseña como OIDC. |
Red (19)
Sección titulada «Red (19)»| Clave | Tipo | Predeterminado | Reinicio | Descripción |
|---|---|---|---|---|
ENABLE_TLS_FINGERPRINT |
boolean | false |
✓ | Habilita el modo sigiloso de huella digital TLS. |
AUDIO_REMOTE_PROVIDER_NODES |
boolean | false |
Permite que las rutas /v1/audio/* utilicen nodos de proveedores compatibles con OpenAI alojados fuera de localhost. Deshabilitado de forma predeterminada: enrutar audio a un host remoto cambia la identidad de salida y debe ser una decisión explícita del operador. Los nodos de loopback siempre están permitidos y no se ven afectados. | |
RERANK_REMOTE_PROVIDER_NODES |
boolean | false |
Permite que POST /v1/rerank (y el paso de reclasificación mediante loopback del motor de memoria) utilice nodos de proveedores compatibles con OpenAI alojados fuera de localhost. Deshabilitado de forma predeterminada: enrutar a un host remoto cambia la identidad de salida y debe ser una decisión explícita del operador. Los nodos de loopback siempre están permitidos; los nodos remotos también deben cumplir la política de URL salientes del proveedor. | |
PROXY_AUTO_SELECT_ENABLED |
boolean | false |
Cuando no hay ningún proxy asignado a una conexión, selecciona automáticamente el primer proxy operativo del registro. Deshabilitado de forma predeterminada (de lo contrario, cualquier proxy del registro se convierte en una alternativa global — #3332). | |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
boolean | false |
Permite que los flujos de OAuth y de validación de proveedores omitan un proxy fijado y se conecten directamente cuando fallen las comprobaciones previas de accesibilidad del proxy. Deshabilitado de forma predeterminada porque esto puede cambiar la IP de salida. | |
NETWORK_ROTATION_SHARED_EGRESS_GUARD |
boolean | true |
Ante una excepción de red (tiempo de espera agotado, conexión rechazada/restablecida) en un ejecutor de rotación multicuenta, cuando la cuenta que falla no tiene un proxy dedicado, aplica un breve período de espera y omite las demás cuentas sin proxy durante el resto de la solicitud, en lugar de volver a intentar cada una. Habilitado de forma predeterminada (seguro: no cambia la IP de salida, solo reduce el riesgo de latencia/períodos de espera en cuentas con salida compartida). Deshabilítelo para restaurar la propagación inmediata en la primera excepción de una cuenta sin proxy. | |
ROTATION_ATTRIBUTION |
boolean | false |
La rotación de opencode registra qué cuenta atendió la solicitud o se omitió (solo identificadores enmascarados, nunca identificadores de cuenta completos) y vincula las entradas del registro del proxy con su solicitud, de modo que el operador pueda distinguir las cuentas omitidas de las no utilizadas. Deshabilitado de forma predeterminada. | |
PROXY_SKIP_RECENTLY_FAILED |
boolean | false |
Los grupos de proxies y la rotación por cuenta de opencode dejan de reutilizar un proxy que acaba de fallar (sondeo TCP rechazado o respuesta 429 recibida a través de él) durante un período por proceso que se duplica con cada repetición, hasta alcanzar un límite. No se registra ningún estado del proxy; si todos los candidatos se dejan de lado, la selección no cambia. Deshabilitado de forma predeterminada. | |
PROXY_POOL_EGRESS_OBSERVATION |
boolean | false |
Muestra, bajo un grupo de proxies en el panel, cuántas IP de salida observadas atendieron a sus miembros durante las últimas 24 h y cuántas conexiones las utilizaron. Es de solo lectura, se calcula a partir del registro del proxy y nunca se utiliza para el enrutamiento. Deshabilitado de forma predeterminada. | |
OPENCODE_RESPONSES_STALL_ROTATION |
boolean | false |
Para el ejecutor de OpenCode, supervisa el primer byte del cuerpo de una respuesta de Responses transmitida por streaming (ventana: RESPONSES_FIRST_BYTE_TIMEOUT_MS, valor predeterminado 15000). Un stream de Responses 2xx que permanezca en silencio más allá de la ventana se considera bloqueado: la cuenta entra en un período de enfriamiento y la solicitud rota una vez a la siguiente cuenta; un segundo bloqueo provoca un fallo inmediato. Desactivado de forma predeterminada: los streams bloqueados mantienen la espera actual hasta que se agote el tiempo de espera de disponibilidad del stream. |
|
OPENCODE_USER_BLOCKED_ROTATION |
boolean | false |
Ejecutor de OpenCode: ante un 403/451 que contenga un rechazo user_blocked (no geográfico ni un rechazo de huella digital de Cloudflare), pone la cuenta rechazada en período de enfriamiento y rota a la siguiente cuenta como máximo una vez por solicitud; un segundo rechazo se devuelve sin cambios y sin marcarlo como éxito. Desactivado de forma predeterminada: eludir mediante enrutamiento un bloqueo de usuario del proveedor ascendente puede parecer una evasión y propagar la marca por toda la flota. |
|
OPENCODE_TRANSIENT_FAILOVER_BACKOFF |
boolean | false |
Rotación de OpenCode: después de dos fallos transitorios consecutivos del proveedor ascendente (5xx o un 400 vacío), hace una pausa antes de pasar a la siguiente cuenta: 1,5 s, duplicándose por cada fallo adicional, con un máximo de 6 s por pausa y 10 s por solicitud; se omite si el cliente se desconecta. El cuerpo fallido se libera antes de esperar. Desactivado de forma predeterminada: la conmutación por error sigue siendo inmediata. | |
OPENCODE_PARK_AND_RESUME |
boolean | false |
Rotación de OpenCode: deja la solicitud en espera después de repetidos 429 transitorios (o de un marcador reciente de saturación del grupo) con una señal periódica y, a continuación, vuelve a ejecutar un tramo limitado de hasta 3 cuentas secuenciales en lugar de distribuirlo por toda la flota. Desactivado de forma predeterminada: cada 429 rota a la siguiente cuenta exactamente como antes. | |
FLUSH_EMPTY_RETRY_ENABLED |
boolean | false |
En turnos traducidos por streaming, cuando el turno del proveedor ascendente no contiene contenido utilizable (finalización solo con razonamiento o cero fragmentos valiosos), realiza reintentos limitados mediante la ruta normal de credenciales (hasta STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX) antes de exponer nada al cliente. Desactivado de forma predeterminada: los turnos vacíos mantienen el comportamiento actual (200 vacío o 502 por contenido vacío). |
|
OPENCODE_RATE_LIMITED_429_EARLY_STOP |
boolean | false |
Rotación de OpenCode: detiene la ronda de cuentas ante el primer 429 clasificado como un límite de frecuencia real (Retry-After analizable o un cuerpo que mencione un límite de frecuencia/uso) y devuelve ese 429 del proveedor ascendente sin cambios. Los 429 no clasificados siguen provocando la rotación. Desactivado de forma predeterminada: el nivel gratuito está limitado por IP de salida (#9611), por lo que cada 429 provoca una rotación y una ronda agotada devuelve el último 429 del proveedor ascendente. |
|
MITM_DISABLE_TLS_VERIFY |
boolean | false |
✓ | Desactiva la verificación del certificado TLS para el proxy MITM. Peligro. |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
boolean | false |
Permite URLs de proveedores que apunten a redes privadas/internas. | |
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS |
boolean | true |
Permite añadir/validar proveedores en direcciones locales/privadas (127.0.0.1, localhost, LAN). Activado de forma predeterminada (prioridad local); desactívelo para aplicar un bloqueo estricto que solo permita direcciones públicas. Los metadatos de la nube permanecen bloqueados. | |
ENABLE_CC_COMPATIBLE_PROVIDER |
boolean | false |
✓ | Activa el modo de proveedor compatible con Claude Code. |
Políticas (5)
Sección titulada «Políticas (5)»| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
TOOL_POLICY_MODE |
enum | disabled |
Modo de aplicación de la política de uso de herramientas. Valores: disabled, warn, block. |
RATE_LIMIT_AUTO_ENABLE |
boolean | false |
Habilita automáticamente la limitación de tasa en función de los patrones de uso. |
DISABLE_CONTEXT_WINDOW_CHECKS |
boolean | false |
Omite la comprobación local de OmniRoute sobre la ventana de contexto o el número máximo de tokens de entrada para solicitudes directas a un único modelo. Los límites del proveedor ascendente siguen aplicándose. |
CAPABILITY_FILTER_ENABLED |
boolean | false |
Rechaza las solicitudes antes de enviarlas cuando el modelo de destino carece de las capacidades requeridas (visión, herramientas, salida estructurada, ventana de contexto). Protege las solicitudes directas a un único proveedor que omiten el filtro de compatibilidad de la capa de combinaciones. |
RADAR_ENABLED |
boolean | false |
Habilita el módulo Radar de OmniRoute (pantallas y sincronización del feed del catálogo). Está desactivado de forma predeterminada; habilitarlo solo desbloquea la interfaz de usuario, ya que la sincronización de datos requiere una activación independiente. |
Tiempo de ejecución (33)
Sección titulada «Tiempo de ejecución (33)»| Clave | Tipo | Predeterminado | Reinicio | Descripción |
|---|---|---|---|---|
UNIVERSAL_CONTEXT_HANDOFF_ENABLED |
boolean | true |
Genera e inyecta resúmenes de conversaciones cuando el enrutamiento combinado cambia de modelo. Desactívalo para tratar los cambios de modelo de forma independiente y evitar solicitudes de transferencia en segundo plano para todas las combinaciones existentes y futuras. | |
RESPONSES_PASSTHROUGH_DROP_COMMENTARY |
boolean | true |
Descarta los elementos de salida internos de la fase de comentarios de los flujos de transferencia directa de la API Responses antes de reenviarlos a los clientes. Desactívalo para recibir los comentarios sin procesar del servicio de origen. | |
OMNIROUTE_MCP_ENFORCE_SCOPES |
boolean | true |
Aplica restricciones de ámbito al acceso a las herramientas MCP. | |
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS |
boolean | false |
Comprime las descripciones de las herramientas MCP para reducir el uso de tokens. | |
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS |
boolean | false |
Habilita el procesamiento de tareas en segundo plano durante la ejecución. | |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
boolean | false |
✓ | Deshabilita todos los servicios en segundo plano (actualización de cuotas, sincronización, etc.). |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
booleano | false |
Confiar en los filtros RTK a nivel de proyecto sin validación. | |
OMNIROUTE_ENABLE_LIVE_WS |
booleano | true |
✓ | Iniciar el servidor WebSocket del panel en tiempo real al importar (puerto 20132 de forma predeterminada). |
OMNIROUTE_CODEX_WS_ENABLED |
booleano | true |
Permitir que Codex use el transporte Responses sobre WebSocket. Cuando está desactivado, Codex recurre a Responses mediante HTTP. | |
OMNIROUTE_CODEX_APP_SERVER_ENABLED |
booleano | true |
Permitir que Codex use el transporte JSON-RPC mediante WebSocket del servidor de aplicaciones local (codexTransport=app-server). Cuando está desactivado, las conexiones configuradas para usar el servidor de aplicaciones recurren a los demás transportes de Codex. | |
OMNIROUTE_EMERGENCY_FALLBACK |
booleano | true |
Enviar las solicitudes con el presupuesto agotado al proveedor/modelo alternativo gratuito de emergencia. (Consulte Alternativa de emergencia por presupuesto más abajo). | |
STREAM_RECOVERY_ENABLED |
booleano | false |
Habilitar el reintento anticipado transparente para flujos SSE ascendentes truncados antes de que cualquier byte de respuesta llegue al cliente. | |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
booleano | false |
Permitir que la recuperación del flujo vuelva a solicitar y concatene una respuesta después de que los bytes ya hayan llegado al cliente. | |
STREAM_RECOVERY_TOOLCALL_ORDER_FIX |
booleano | false |
Hacer que la continuación a mitad del flujo sea segura para las llamadas a herramientas: nunca reanudar un flujo interrumpido una vez emitida una llamada a una herramienta (en curso o ya finalizada con finish_reason tool_calls) y cerrar después de una continuación vacía, en lugar de agotar todo el presupuesto. Desactivado: comportamiento de la versión publicada. | |
STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED |
boolean | false |
Realiza una conmutación por error una vez a una conexión hermana cuando un flujo SSE se cierra antes de emitir algún frame útil y se agota el reintento limitado en la misma conexión; si no hay una conexión hermana utilizable, se devuelve el error 502 STREAM_EARLY_EOF original. Desactivado de forma predeterminada: el EOF anticipado sigue siendo definitivo después del reintento en la misma conexión. |
|
MODEL_CATALOG_INCLUDE_NAMES |
boolean | true |
Incluye campos de nombre fáciles de mostrar en las respuestas de /v1/models. Desactívalo para los clientes que solo esperan ID de modelos. |
|
MODELS_CATALOG_PREFIX_MODE |
enum | dual |
Controla cómo se anteponen prefijos a los ID de modelos en /v1/models. ‘dual’ (valor predeterminado) emite tanto los prefijos de alias como los de ID canónico del proveedor para mantener la compatibilidad con versiones anteriores. ‘alias’ emite únicamente el prefijo de alias corto (p. ej., ds-web/model, no deepseek-web/model). ‘canonical’ emite únicamente el prefijo completo del ID del proveedor. Valores: dual, alias, canonical. |
|
ARENA_ELO_SYNC_ENABLED |
boolean | true |
Habilita la sincronización periódica de ELO de la clasificación de Arena AI para las clasificaciones de inteligencia de los modelos. | |
EXPOSE_CC_DISCOVERY_ALIASES |
boolean | false |
Publica los ID espejo claude/<provider>/<model> en /v1/models para que el descubrimiento de modelos de la puerta de enlace de Claude Code muestre modelos que no son de Claude. Nivel global del control de tres niveles (la variable de entorno tiene prioridad sobre la configuración del panel). Consulta Configuración de Claude Code. |
|
NO_THINKING_ALIAS_ENABLED |
boolean | true |
Interruptor principal para los alias de puerta de enlace no-think/<provider>/<model>. Activado (valor predeterminado): /v1/models publica una variante sin razonamiento para cada modelo Claude apto con capacidad de razonamiento, y un ID no-think/ enviado en una solicitud se resuelve al modelo real con el razonamiento suprimido. Desactivado: no se publica ninguna variante y un ID no-think/ se trata como cualquier otro ID de modelo desconocido. La opción de inclusión/exclusión por modelo ModelSpec.noThinkingAlias sigue aplicándose mientras esta opción esté activada. | |
OMNIROUTE_DISABLE_THINKING_LEVEL_VARIANTS |
boolean | false |
Deshabilita la generación de variantes de nivel de razonamiento (p. ej., -low, -medium, -high) en el catálogo de /v1/models. | |
OMNIROUTE_CHAT_VIRTUAL_LANES |
boolean | false |
✓ | Habilita carriles virtuales adaptativos de admisión por inquilino para el envío al proveedor (#9654): la ráfaga de un inquilino ya no provoca errores 503 a otro. La variable de entorno OMNIROUTE_CHAT_VIRTUAL_LANES tiene prioridad sobre esta configuración del panel; los cambios surten efecto al reiniciar el servidor. |
EXPOSE_FUNCTIONAL_GATEWAY_MIRRORS |
boolean | false |
Anuncia identificadores espejo <gateway-alias>/<model> en /v1/models para los modelos cuyo propietario canónico no tiene credenciales activas, pero que son enrutados por una puerta de enlace de paso con credenciales activas. Advertencia: al habilitarse globalmente, añade entradas al catálogo para todos los clientes. | |
NEWAPI_AGGREGATOR_BALANCE |
boolean | false |
Habilita la detección de saldo para nodos agregadores compatibles con New-API / One-API / Sub2API. Cuando está habilitada, los nodos compatibles que tengan activado el indicador de agregador mostrarán su saldo en el panel y en el enrutamiento de comprobación previa de cuota. | |
SERVER_OWNED_TOOL_LOOP_ENABLED |
boolean | false |
Continúa las llamadas no transmitidas a herramientas controladas por el servidor hasta que el modelo devuelva una respuesta utilizable por el cliente. | |
SEARCH_STATS_HIDE_DELETED_CONNECTIONS |
boolean | false |
Las estadísticas y búsquedas recientes solo cuentan los proveedores que aún tienen una conexión activa (los proveedores sin clave, como duckduckgo-free, siempre cuentan). Si está desactivada, conserva todas las filas de búsqueda retenidas que tengan un identificador de proveedor. | |
FREE_BADGE_REQUIRES_PROVIDER_FREE_TIER |
boolean | false |
Páginas de proveedores del panel: muestra la insignia Gratis únicamente cuando haya señales que el proveedor reconozca; descarta la heurística basada en el nombre para mostrar, los campos de gratuidad no booleanos y los sufijos :free en proveedores registrados sin un nivel gratuito documentado. Si está desactivada, mantiene la regla histórica de la insignia. | |
RETRY_AFTER_PROVENANCE_ENABLED |
boolean | false |
En respuestas agregadas 429/503 de indisponibilidad, omite Retry-After cuando no se conozca un momento futuro concreto para el reintento (en lugar de usar 1 s sintético), añade error.retry_after_provenance (signal | none) y permite que las rutas de agotamiento de combinaciones lean indicaciones textuales de reintento en cuerpos JSON y de texto sin formato de servicios ascendentes. El campo solo aparece en respuestas creadas por unavailableResponse(); los demás cuerpos 429/503 no cambian. |
|
PROTECTED_PRIORITY_INFRA_502_ENABLED |
boolean | false |
Cuando un destino de combinación priority marcado para usarse como respaldo únicamente al agotarse la cuota detiene la combinación por una causa que se puede demostrar que no está relacionada con la cuota (disyuntor del proveedor abierto, omisión por latencia predictiva), responde con 502 en lugar del 503 que aparenta ser de cuota. Las detenciones por bloqueo, periodo de espera, indisponibilidad, agotamiento y límite de concurrencia mantienen el 503. |
|
MISTRAL_AMBIGUOUS_401_SOFT_LOCKOUT |
boolean | false |
Una respuesta 401 simple de Mistral ({"detail":"Unauthorized"}, sin una señal explícita de autenticación) es idéntica tanto para una clave revocada como para una cuota agotada. Cuando está activada, pone la conexión en periodo de espera en lugar de marcarla como expired, como máximo 3 veces por hora y por conexión; la siguiente vez la marca como tal, por lo que una clave revocada acaba convergiendo igualmente. Desactivada de forma predeterminada: cada respuesta 401 simple de Mistral marca la conexión como antes. |
|
XAI_OAUTH_LIVE_MODEL_DISCOVERY |
boolean | false |
Obtiene el catálogo de modelos de xAI en tiempo real para las conexiones xai-oauth desde https://api.x.ai/v1/models mediante el token portador de OAuth, en lugar de la fuente estática congelada. Desactivado de forma predeterminada: xai-oauth continúa sirviendo la fuente estática sin cambios. Ante cualquier error de resolución, el descubrimiento vuelve a usar la fuente (no se ha verificado si x.ai acepta un token portador de OAuth en este endpoint). |
|
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
boolean | false |
Permite que el proceso de limpieza automática elimine los trabajos terminales (completados/fallidos/cancelados/caducados) de la API de lotes con una antigüedad superior a OMNIROUTE_BATCH_RETENTION_DAYS, junto con sus puntos de control por línea, y borre el contenido BLOB de los archivos cargados que hayan superado su propio expires_at. Desactivado de forma predeterminada: todas las instalaciones existentes conservan estos datos exactamente como antes hasta que un operador lo habilite. La ruta DELETE /api/v1/batches/delete-completed, activada por el operador, no se ve afectada en ningún caso: es un contrato de API pública independiente e incondicional. |
|
ANTIGRAVITY_ACCOUNT_LEASE_ENABLED |
boolean | false |
Reserva la cuenta de Antigravity seleccionada durante el ciclo de vida de streaming de la solicitud que la eligió, para que un reintento simultáneo o la transferencia de credenciales no puedan volver a seleccionar una cuenta ya asignada a un flujo en curso. La reserva se limita a (conexión, modelo invocable del proveedor), por lo que una cuenta puede seguir atendiendo dos modelos diferentes a la vez. Cuando todas las cuentas aptas ya están reservadas para ese modelo, la solicitud devuelve una respuesta 503 estructurada antigravity_pool_busy con un valor Retry-After acotado, en lugar de acumularse sobre una cuenta ocupada. Desactivado de forma predeterminada: la selección de cuentas permanece exactamente como antes y no se realiza ninguna reserva. |
CLI (5)
Sección titulada «CLI (5)»| Clave | Tipo | Predeterminado | Reinicio | Descripción |
|---|---|---|---|---|
CLI_COMPAT_ALL |
boolean | false |
✓ | Habilita el modo de compatibilidad para todos los clientes CLI. |
MODEL_ALIAS_COMPAT_ENABLED |
boolean | false |
Habilita la capa de compatibilidad de alias de modelos. | |
PRICING_SYNC_ENABLED |
boolean | false |
Habilita la sincronización automática de los datos de precios (también requiere la variable de entorno PRICING_SYNC_ENABLED). |
|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
boolean | false |
Después de sincronizar los modelos de un proveedor, (re)escribe automáticamente los archivos de perfil ~/.codex/*.config.toml a partir del catálogo en tiempo real. Nunca modifica la configuración activa/predeterminada de Codex. Desactivado de forma predeterminada. | |
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
boolean | false |
Después de sincronizar los modelos de un proveedor, (re)escribe automáticamente los perfiles de Claude Code ~/.claude/profiles/<name>/settings.json a partir del catálogo en tiempo real. Nunca modifica la configuración activa/predeterminada de Claude. Desactivado de forma predeterminada. |
Estado (5)
Sección titulada «Estado (5)»| Clave | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
boolean | false |
Deshabilita el endpoint de comprobación de estado de la instancia local. |
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK |
boolean | false |
Deshabilita la comprobación de estado de validación del token. |
SKILLS_SANDBOX_NETWORK_ENABLED |
boolean | false |
Habilita el acceso a la red en el entorno aislado de habilidades. |
PROXY_HEALTH_BLOCKED_RESETS_STREAK |
boolean | false |
En el barrido de estado de los proxies, un sondeo rechazado por el destino (401/403/429) reinicia la racha de fallos consecutivos del proxy. Deshabilitado de forma predeterminada: un rechazo permanece neutral (#10654). Un error 5xx sigue sin ser concluyente en cualquier caso; un rechazo nunca elimina, deshabilita ni reactiva un proxy. |
DB_HEALTHCHECK_STARTUP_DEFERRED_ENABLED |
boolean | false |
Ejecuta la comprobación de integridad/estado de la base de datos al inicio después de que el servidor comience a aceptar solicitudes (mediante setImmediate), en lugar de bloquear el inicio hasta que finalice (#13717). Deshabilitado de forma predeterminada: el inicio se bloquea exactamente igual que antes de este PR. |
[!NOTE]
INPUT_SANITIZER_BLOCK_THRESHOLDy su alias heredadoINJECTION_GUARD_BLOCK_THRESHOLDajustan el modoblockdeINJECTION_GUARD_MODE, pero son variables de entorno normales que leesrc/shared/utils/injectionSeverity.ts, no indicadores de funcionalidad: no tienen ninguna sobrescritura en la base de datos ni ningún interruptor en el panel de control. ConsulteENVIRONMENT.md.
[!NOTE] La columna
Restartmarca los indicadores conrequiresRestart: true: el valor se conserva al instante, pero solo surte efecto después de que se recarga el proceso. Los indicadores de enumeración rechazan cualquier valor que no pertenezca a su conjunto permitido (validado en el servidor tanto ensetFeatureFlagOverride()como en el controlador RESTPUT).
Activación y desactivación de indicadores
Sección titulada «Activación y desactivación de indicadores»Panel de control
Sección titulada «Panel de control»Ve a Panel de control → Configuración → Indicadores de funcionalidades
(/dashboard/settings/feature-flags). La cuadrícula
(src/app/(dashboard)/dashboard/settings/components/FeatureFlagsGrid.tsx)
permite:
- Buscar por clave o descripción y filtrar por categoría (además de una vista sintética de Requiere reinicio).
- Un interruptor para los indicadores booleanos y un menú desplegable para los indicadores de enumeración
(
src/app/(dashboard)/dashboard/settings/components/FeatureFlagCard.tsx). - Una insignia de origen por indicador —
DB,ENVoDEF— que muestra de dónde procede el valor efectivo. - Un botón Restablecer (que se muestra únicamente para los indicadores cuyo origen es
DB) para eliminar la sobrescritura, y un botón Restablecer todas las sobrescrituras en la parte inferior. - Un aviso de Reiniciar servidor cuando se modifica un indicador
requiresRestart.
API REST
Sección titulada «API REST»Todas las operaciones pasan por una única ruta:
src/app/api/settings/feature-flags/route.ts.
Cada método requiere una sesión autenticada en el panel de control (401 en caso contrario).
GET /api/settings/feature-flags
Sección titulada «GET /api/settings/feature-flags»Devuelve todos los indicadores con su valor efectivo, origen y un resumen.
{ "flags": [ { "key": "REQUIRE_API_KEY", "label": "Requerir clave de API", "description": "Requerir una clave de API para todas las solicitudes entrantes", "category": "security", "type": "boolean", "enumValues": null, "defaultValue": "false", "effectiveValue": "false", "source": "default", // "db" | "env" | "default" "requiresRestart": false, "warningLevel": "caution", }, // ... los 77 indicadores ], "summary": { "total": 56, "active": 0, "inactive": 0, "overriddenByDb": 0, "overriddenByEnv": 0, },}PUT /api/settings/feature-flags
Sección titulada «PUT /api/settings/feature-flags»Establece o elimina una única sobrescritura. Cuerpo: { key: string; value?: string }.
Omitir value elimina la sobrescritura (restaurando el valor de entorno/predeterminado).
# Establecer una sobrescritura en la base de datoscurl -X PUT http://localhost:20128/api/settings/feature-flags \ -H "Content-Type: application/json" \ -d '{"key":"REQUIRE_API_KEY","value":"true"}'
# Eliminar la sobrescritura (sin "value")curl -X PUT http://localhost:20128/api/settings/feature-flags \ -H "Content-Type: application/json" \ -d '{"key":"REQUIRE_API_KEY"}'La respuesta devuelve los nuevos effectiveValue/source, los valores previousValue/
previousSource y requiresRestart. Las claves desconocidas y los valores de enumeración
fuera del intervalo permitido se rechazan con 400.
DELETE /api/settings/feature-flags
Sección titulada «DELETE /api/settings/feature-flags»Elimina todas las sobrescrituras de la base de datos a la vez, restaurando cada indicador a su valor de entorno/predeterminado.
Devuelve { cleared: <count>, message: "..." }.
[!NOTE] Los indicadores con
requiresRestart: truesolo surten efecto después de reiniciar el proceso. El flujo de reinicio del panel de control llama aPOST /api/restarty luego consulta periódicamenteGET /api/health/pinghasta que el servidor vuelve a estar operativo.
Alternativa de emergencia para el presupuesto
Sección titulada «Alternativa de emergencia para el presupuesto»OMNIROUTE_EMERGENCY_FALLBACK (categoría runtime, valor predeterminado true) controla la
ruta alternativa gratuita de emergencia en
open-sse/services/emergencyFallback.ts.
Cuando está habilitada, las solicitudes que agotan su presupuesto se enrutan a un
proveedor/modelo alternativo gratuito en lugar de fallar directamente. Establécela en false (o 0) —mediante el
interruptor del panel de control, una sobrescritura de DB o la variable de entorno
OMNIROUTE_EMERGENCY_FALLBACK— para deshabilitar este comportamiento y permitir que las solicitudes que hayan agotado
su presupuesto fallen. (Se incorporó como interruptor del panel de control en las PR #3741 / #3752.)
Véase también
Sección titulada «Véase también»- Referencia de variables de entorno — la mayoría de las opciones tienen una variable de entorno con el mismo nombre documentada allí (la sobrescritura de la DB tiene prioridad sobre ella).
src/shared/constants/featureFlagDefinitions.ts— fuente de referencia para todas las opciones.src/shared/utils/featureFlags.ts— lógica de resolución (resolveFeatureFlag,isFeatureFlagEnabled,resolveAllFeatureFlags).src/lib/db/featureFlags.ts— persistencia de sobrescrituras de la DB en el espacio de nombresfeature_flagsde la tablakey_value.
HagiCode
HagiCode es un espacio de trabajo de programación con agentes, flujos estructurados, ejecución multiagente y vistas de Hero Dungeon.
Convierte ideas en software útil con un flujo de trabajo con agentes más inteligente, rápido y ameno.

- SmartLos flujos estructurados convierten la intención en un itinerario ejecutable desde la idea hasta la entrega.
- EfficientLos flujos multiagente permiten avanzar en paralelo con la investigación, implementación y revisión.
- FunHero Dungeon hace que las largas sesiones de programación sean visuales y colaborativas.