Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Estructura de configuración

Nota: Los campos que no se mencionan específicamente como obligatorios son opcionales.

version

  • obligatorio
KeyTypeDescriptionExample
versionStringEspecifica la versión del archivo de configuración.version: 1.3.13

cache

KeyTypeDescriptionExample
cacheBooleanActiva o desactiva el almacenamiento en caché. Establézcalo en `true` para habilitar el almacenamiento en caché (predeterminado).cache: true

skillSync

KeyTypeDescriptionExample
skillSyncObjectConfigura la replicación externa de Skill. En la v1.3.13, se admite GitHub Skill Sync.

ver: Estructura del objeto Skill Sync

messageFilter

KeyTypeDescriptionExample
messageFilterObjectConfigura filtros de mensajes del lado del servidor. En la v1.3.13, `messageFilter.pii` puede rechazar texto enviado con formato de credenciales antes de las llamadas al modelo y la persistencia.

ver: Estructura del objeto de filtro de mensajes

fileStrategy

  • Opciones: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
KeyTypeDescriptionExample
fileStrategyStringDetermina dónde guardar los archivos subidos o generados por el usuario. El valor predeterminado es `"local"` si se omite.fileStrategy: "firebase"
  • Notas:
    • "cloudfront" almacena archivos en S3 y devuelve URLs de CloudFront para una entrega de medios estable, cookies firmadas y descargas firmadas.
    • "firebase" sirve archivos a través de Firebase Storage y las ubicaciones perimetrales (edge locations) de Firebase Hosting.
    • S3 sirve archivos a través de presigned URLs (tokens firmados temporales) que caducan. Una vez caducados, cualquier imagen o avatar que haga referencia a esa URL aparecerá roto en la UI. Esto hace que S3 no sea adecuado como estrategia principal para activos visuales. Consulta la related discussion para más detalles.
    • Para obtener el mejor rendimiento de imágenes y avatares, utilice "cloudfront" o "firebase", o configure fileStrategies para dirigir avatar e image a una estrategia respaldada por una CDN.
    • Consulte la documentación de File Storage & CDN para obtener detalles sobre la configuración.

fileStrategies

Permite un control granular sobre las estrategias de almacenamiento de archivos para diferentes tipos de archivos.

  • Estrategias disponibles: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
KeyTypeDescriptionExample
fileStrategiesObjectConfigura diferentes estrategias de almacenamiento para distintos tipos de archivos. Más flexible que la opción de fileStrategy única.

Sub-claves:

KeyTypeDescriptionExample
defaultStringEstrategia de almacenamiento de respaldo cuando no se define un tipo específico. El valor predeterminado es "local".
avatarStringEstrategia de almacenamiento para imágenes de avatar de usuario y agente. Se recomienda utilizar una estrategia respaldada por CDN (`"cloudfront"` o `"firebase"`) para obtener el mejor rendimiento.
imageStringEstrategia de almacenamiento para imágenes subidas en chats. Se recomienda utilizar una estrategia respaldada por CDN (`"cloudfront"` o `"firebase"`) para obtener el mejor rendimiento.
documentStringEstrategia de almacenamiento para la carga de documentos (PDFs, archivos de texto, etc.).
skillsStringEstrategia de almacenamiento para archivos incluidos con Skills.
  • Notas:
    • Esta configuración tiene prioridad sobre la opción única fileStrategy
    • Si un tipo de archivo específico no está configurado, recurre a default, luego a fileStrategy y, finalmente, a "local".
    • Las imágenes y los avatares necesitan URLs persistentes y estables para renderizarse correctamente en toda la interfaz de usuario. Las URLs prefirmadas de S3 caducan (límite de AWS: 7 días para usuarios IAM, horas para credenciales basadas en STS/roles), lo que provoca que las imágenes se rompan en el selector de modelos y en la interfaz de chat. Consulta la discusión relacionada para obtener el contexto completo. Utiliza "cloudfront" o "firebase" para avatar e image para evitar esto.
    • S3 y Azure Blob Storage son adecuados para el almacenamiento de document, donde las URLs de descarga prefirmadas de corta duración son apropiadas.
    • Consulte la documentación de File Storage & CDN para obtener detalles de configuración para cada proveedor de almacenamiento.

Ejemplos:

# Use a single strategy for all file types
fileStrategies:
  default: 's3'
# Route images and avatars to CDN, keep documents in object storage
fileStrategies:
  avatar: 'cloudfront' # CDN delivery for avatars
  image: 'cloudfront' # CDN delivery for generated/uploaded images
  document: 's3' # Object storage for documents
# Only configure specific types, others use default
fileStrategies:
  default: 'local'
  avatar: 'firebase' # Only avatars use Firebase CDN, everything else is local

cloudfront

Clave:

KeyTypeDescriptionExample
cloudfrontObjectConfigura la entrega de CloudFront para archivos almacenados en S3.

Subclaves:

KeyTypeDescriptionExample
domainStringDominio de distribución de CloudFront o CNAME. Requerido cuando cualquier estrategia de archivo utiliza `"cloudfront"`.domain: "https://cdn.example.com"
distributionIdStringID de distribución de CloudFront. Requerido cuando `invalidateOnDelete` es true.distributionId: "E1234ABCD"
invalidateOnDeleteBooleanCrea una invalidación de CloudFront para archivos eliminados. Predeterminado: false.invalidateOnDelete: false
imageSigningStringControla el acceso a imágenes/avatares en línea. Opciones: `"none"` o `"cookies"`. `"url"` está reservado y no implementado para imágenes.imageSigning: "cookies"
cookieDomainStringSe requiere un dominio de cookie principal compartido para las cookies firmadas. Debe comenzar con un punto.cookieDomain: ".example.com"
cookieExpiryNumberDuración de la cookie firmada en segundos. Predeterminado: 1800, máximo: 604800.cookieExpiry: 1800
urlExpiryNumberTiempo de vida de la URL de descarga firmada de CloudFront en segundos. Predeterminado: 3600.urlExpiry: 3600
storageRegionStringEtiqueta de región opcional utilizada en las claves de objeto generadas cuando las rutas de región están habilitadas.storageRegion: "us-east-2"
includeRegionInPathBooleanIncluye la región de almacenamiento en las claves de objeto recién generadas. Predeterminado: false.includeRegionInPath: false
requireSignedAccessBooleanRechaza el inicio cuando el acceso a CloudFront mediante cookies firmadas no puede inicializarse. Predeterminado: false.requireSignedAccess: true

ver: Estructura de objetos de CloudFront y CloudFront con S3

filteredTools

KeyTypeDescriptionExample
filteredToolsArray of StringsFiltra herramientas específicas de los endpoints de Plugins y OpenAI Assistants.filteredTools: ["scholarai", "calculator"]
  • Notas:
    • Si se especifican tanto includedTools como filteredTools, solo se reconocerá includedTools.
    • Afecta tanto a los endpoints gptPlugins como a assistants
    • Puedes encontrar los nombres de las herramientas para filtrar en api/app/clients/tools/manifest.json
      • Utilice el valor de pluginKey
    • Además, cualquiera que aparezca en el directorio ".well-known" api/app/clients/tools/.well-known
      • Utilice el valor de name_for_model

includedTools

KeyTypeDescriptionExample
includedToolsArray of StringsIncluye herramientas específicas tanto de los endpoints de Plugins como de OpenAI Assistants.includedTools: ["calculator"]
  • Notas:
    • Si se especifican tanto includedTools como filteredTools, solo se reconocerá includedTools.
    • Afecta tanto a los endpoints gptPlugins como a assistants
    • Puedes encontrar los nombres de las herramientas para filtrar en api/app/clients/tools/manifest.json
      • Utilice el valor de pluginKey
    • Además, cualquiera que aparezca en el directorio ".well-known" api/app/clients/tools/.well-known
      • Utilice el valor de name_for_model
KeyTypeDescriptionExample
secureImageLinksBooleanDetermina si se debe proteger o no el acceso a los enlaces de imágenes alojados localmente por la aplicación. Predeterminado: false.secureImageLinks: true

imageOutputType

  • Nota: Distingue entre mayúsculas y minúsculas. El endpoint de Google solo admite los tipos de salida "jpeg" y "png".
  • Opciones: "png" | "webp" | "jpeg"
KeyTypeDescriptionExample
imageOutputTypeStringEl tipo de salida de imagen para las respuestas de imagen. Se establece en "png" de forma predeterminada si se omite.imageOutputType: "webp"

ocr

Clave:

KeyTypeDescriptionExample
ocrObjectConfigura los ajustes de Reconocimiento Óptico de Caracteres (OCR) para extraer texto de imágenes.

Subclaves:

KeyTypeDescriptionExample
apiKeyStringLa clave API para el servicio de OCR.
baseURLStringLa URL base para la API del servicio de OCR.
strategyStringLa estrategia de OCR a utilizar. Las opciones son "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", "document_parser" o "custom_ocr".
mistralModelStringEl modelo Mistral a utilizar para el procesamiento OCR.

ver: Estructura del objeto de configuración OCR

webSearch

Clave:

KeyTypeDescriptionExample
webSearchObjectConfigura la funcionalidad de búsqueda web, incluyendo proveedores de búsqueda, extractores de contenido y reordenadores de resultados.

Subclaves:

KeyTypeDescriptionExample
serperApiKeyStringNombre de la variable de entorno para la clave de API de Serper. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario.
searxngInstanceUrlStringNombre de la variable de entorno para la URL de la instancia de SearXNG. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario.
searxngApiKeyStringNombre de la variable de entorno para la clave de API de SearXNG. Si no se configura en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario.
tavilyApiKeyStringNombre de la variable de entorno para la clave de API de Tavily. Se utiliza tanto para la búsqueda como para el scraper. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario.
tavilySearchUrlStringNombre de la variable de entorno para una URL personalizada de la API de Tavily Search. Opcional; el valor predeterminado es la búsqueda alojada en Tavily si no se establece.
tavilyExtractUrlStringNombre de la variable de entorno para una URL personalizada de la API de Tavily Extract. Opcional; si no se establece, se utiliza el servicio de extracción alojado por Tavily de forma predeterminada.
firecrawlApiKeyStringNombre de la variable de entorno para la clave de API de Firecrawl. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario.
firecrawlApiUrlStringNombre de la variable de entorno para la URL de la API de Firecrawl. Si no se configura en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario.
jinaApiKeyStringNombre de la variable de entorno para la clave de API de Jina. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario.
cohereApiKeyStringNombre de la variable de entorno para la clave de API de Cohere. Si no se establece en .env, se solicitará a los usuarios que la proporcionen a través de la interfaz de usuario.
searchProviderStringEspecifica qué proveedor de búsqueda utilizar. Opciones: "serper", "searxng", "tavily".
scraperProviderStringEspecifica qué servicio de scraper utilizar. Opciones: "firecrawl", "serper", "tavily".
firecrawlVersionStringEspecifica la versión de la API de Firecrawl (v0 o v1).
rerankerTypeStringEspecifica qué servicio de reranker utilizar. Establézcalo en "none" para omitir el reranking. Opciones: "jina", "cohere", "none".
scraperTimeoutIntegerTiempo de espera en milisegundos para las solicitudes del scraper. Debe ser un número entero no negativo.
safeSearchNumberNivel de filtrado de búsqueda segura. 0 = DESACTIVADO, 1 = MODERADO (predeterminado), 2 = ESTRICTO.

ver: Estructura del objeto de búsqueda web

fileConfig

Clave:

KeyTypeDescriptionExample
fileConfigObjectConfigura los ajustes de manejo de archivos para la aplicación, incluyendo límites de tamaño y restricciones de tipo MIME.

Subclaves:

KeyTypeDescriptionExample
endpointsRecord/ObjectEspecifica las configuraciones de manejo de archivos para endpoints individuales, permitiendo la personalización por cada endpoint.
serverFileSizeLimitNumberEl tamaño máximo de archivo (en MB) que el servidor aceptará. Se aplica globalmente a todos los endpoint a menos que se sobrescriba mediante configuraciones específicas de cada endpoint.
avatarSizeLimitNumberTamaño máximo (en MB) para las imágenes de avatar de usuario.
clientImageResizeObjectConfigura el cambio de tamaño de imágenes en el lado del cliente para optimizar las cargas de archivos y evitar errores de carga debido a tamaños de imagen grandes.
ocrObjectConfiguración para el procesamiento de archivos mediante Reconocimiento Óptico de Caracteres (OCR).
textObjectConfiguración para el análisis directo de archivos de texto.
sttObjectConfiguración para el procesamiento de archivos de audio de voz a texto (STT).
fileTokenLimitNumberNúmero máximo de tokens de archivos de texto a incluir en los prompts antes del truncamiento.fileTokenLimit: 100000

clientImageResize

Clave:

KeyTypeDescriptionExample
clientImageResizeObjectConfigura el cambio de tamaño de imágenes en el lado del cliente para optimizar las cargas de archivos y evitar errores de carga debido a tamaños de imagen grandes.

Subclaves:

KeyTypeDescriptionExample
enabledBooleanHabilita o deshabilita la funcionalidad de cambio de tamaño de imagen del lado del cliente. Predeterminado: false.enabled: true
maxWidthNumberAncho máximo en píxeles para imágenes redimensionadas. Las imágenes más anchas que esto serán redimensionadas. Predeterminado: 1920.maxWidth: 1024
maxHeightNumberAltura máxima en píxeles para imágenes redimensionadas. Las imágenes más altas que esto serán redimensionadas. Predeterminado: 1080.maxHeight: 768
qualityNumberCalidad de compresión JPEG (0.1 a 1.0). Los valores más altos significan mejor calidad pero tamaños de archivo más grandes. Predeterminado: 0.8.quality: 0.9
compressFormatStringFormato de salida para imágenes comprimidas. Opciones: "jpeg", "webp". Predeterminado: "jpeg".compressFormat: "webp"

Descripción:

La configuración clientImageResize permite el cambio de tamaño automático de imágenes en el lado del cliente antes de subirlas. Esta función ayuda a:

  • Evitar errores de carga debido a archivos de imagen grandes que exceden los límites del servidor
  • Reduce el uso de ancho de banda comprimiendo las imágenes antes de su transmisión
  • Mejora el rendimiento de carga con tamaños de archivo más pequeños
  • Mantener la calidad de la imagen mientras se optimiza el tamaño del archivo

Cuando está habilitado, las imágenes que exceden las dimensiones maxWidth o maxHeight especificadas se redimensionan automáticamente en el lado del cliente antes de ser cargadas al servidor. El redimensionamiento mantiene la relación de aspecto original mientras asegura que la imagen se ajuste dentro de los límites especificados.

Ejemplo:

fileConfig:
  clientImageResize:
    enabled: true
    maxWidth: 1920
    maxHeight: 1080
    quality: 0.8
    compressFormat: 'jpeg'

Notas:

  • Solo se aplica a archivos de imagen (JPEG, PNG, WebP, etc.)
  • El cambio de tamaño ocurre automáticamente cuando las imágenes exceden las dimensiones especificadas
  • La relación de aspecto original se conserva durante el cambio de tamaño
  • La función funciona con todos los endpoints de carga de imágenes compatibles
  • El ajuste de calidad solo se aplica a los formatos JPEG y WebP
  • Configurar la calidad demasiado baja (< 0.5) puede resultar en una degradación notable de la imagen

ver: Estructura del objeto de configuración de archivos

rateLimits

Clave:

KeyTypeDescriptionExample
rateLimitsObjectDefine políticas de limitación de tasa para prevenir abusos limitando el número de solicitudes.

Subclaves:

KeyTypeDescriptionExample
fileUploadsObjectConfigura los límites de tasa específicamente para las operaciones de carga de archivos.
conversationsImportObjectConfigura los límites de tasa específicamente para las operaciones de importación de conversaciones.
sttObjectConfigura los límites de tasa específicamente para las solicitudes de voz a texto (stt)
ttsObjectConfigura los límites de tasa específicamente para solicitudes de texto a voz (tts)

Subclaves de fileUploads:

KeyTypeDescriptionExample
ipMaxNumberNúmero máximo de subidas permitidas por dirección IP por ventana.
ipWindowInMinutesNumberVentana de tiempo en minutos para el límite de carga basado en IP.
userMaxNumberNúmero máximo de subidas permitidas por usuario por ventana.
userWindowInMinutesNumberVentana de tiempo en minutos para el límite de carga basado en el usuario.

Subclaves de conversationsImport:

KeyTypeDescriptionExample
ipMaxNumberNúmero máximo de importaciones permitidas por dirección IP por ventana.
ipWindowInMinutesNumberVentana de tiempo en minutos para el límite de importaciones basado en IP.
userMaxNumberNúmero máximo de importaciones por usuario por ventana.
userWindowInMinutesNumberVentana de tiempo en minutos para el límite de importaciones basado en el usuario.

Subclaves de tts:

KeyTypeDescriptionExample
ipMaxNumberNúmero máximo de solicitudes permitidas por dirección IP por ventana.
ipWindowInMinutesNumberVentana de tiempo en minutos para el límite de solicitudes basado en IP.
userMaxNumberNúmero máximo de solicitudes por usuario por ventana.
userWindowInMinutesNumberVentana de tiempo en minutos para el límite de solicitudes basado en el usuario.

Subclaves de stt:

KeyTypeDescriptionExample
ipMaxNumberNúmero máximo de solicitudes permitidas por dirección IP por ventana.
ipWindowInMinutesNumberVentana de tiempo en minutos para el límite de solicitudes basado en IP.
userMaxNumberNúmero máximo de solicitudes por usuario por ventana.
userWindowInMinutesNumberVentana de tiempo en minutos para el límite de solicitudes basado en el usuario.
  • Ejemplo:
rateLimits:
  fileUploads:
    ipMax: 100
    ipWindowInMinutes: 60
    userMax: 50
    userWindowInMinutes: 60
  conversationsImport:
    ipMax: 100
    ipWindowInMinutes: 60
    userMax: 50
    userWindowInMinutes: 60
  stt:
    ipMax: 100
    ipWindowInMinutes: 1
    userMax: 50
    userWindowInMinutes: 1
  tts:
    ipMax: 100
    ipWindowInMinutes: 1
    userMax: 50
    userWindowInMinutes: 1

registration

Clave:

KeyTypeDescriptionExample
registrationObjectConfigura los ajustes relacionados con el registro para la aplicación.

Subclaves:

KeyTypeDescriptionExample
socialLoginsConfiguraciones de inicio de sesión social.
allowedDomainsEspecifica los dominios permitidos para el registro.

ver también:

memory

Clave:

KeyTypeDescriptionExample
memoryObjectConfigura la memoria de la conversación y las funciones de personalización para la aplicación.

Subclaves:

KeyTypeDescriptionExample
disabledBooleanDesactiva la funcionalidad de memoria cuando se establece en true.
validKeysArray of StringsEspecifica qué claves son válidas para el almacenamiento en memoria.
tokenLimitNumberEstablece el número máximo de tokens para el almacenamiento y procesamiento de memoria.
charLimitNumberEstablece el número máximo de caracteres para el almacenamiento en memoria. Predeterminado: 10000.
maxInputTokensNumberLimita los tokens de chat reciente enviados al agente de memoria automática antes de la extracción. Valor predeterminado: 12000.
personalizeBooleanHabilita o deshabilita las funciones de personalización.
messageWindowSizeNumberEspecifica el número de mensajes recientes a incluir en el contexto de la memoria.
agentObject | UnionConfigura el agente responsable del procesamiento de memoria.

ver: Estructura del objeto Memory

summarization

Clave:

KeyTypeDescriptionExample
summarizationObjectConfigura el resumen de conversaciones y la poda de contexto. Reemplaza los campos `summarize` y `summaryModel` por endpoint.

Subclaves:

KeyTypeDescriptionExample
providerStringProveedor de LLM para llamadas de resumen. El valor predeterminado es el propio proveedor del agente.
modelStringModelo para llamadas de resumen. Por defecto utiliza el propio modelo del agente.
parametersObjectParámetros de LLM adicionales para solicitudes de resumen.
promptStringPrompt personalizado para la sumarización inicial.
updatePromptStringPrompt personalizado para la re-compactación cuando ya existe un resumen previo.
triggerObjectDefine cuándo se activa el resumen (por relación de tokens, tokens restantes o recuento de mensajes).
maxSummaryTokensNumberTokens de salida máximos para la respuesta del modelo de resumen.
reserveRatioNumberFracción del presupuesto de tokens reservada como margen (0–1). Predeterminado: 0.05.
contextPruningObjectConfigura la degradación de resultados de herramientas basada en la posición para mensajes antiguos.

ver: Estructura del objeto de resumen

actions

Clave:

KeyTypeDescriptionExample
actionsObjectConfigura los ajustes relacionados con las acciones, utilizados por Agents y Assistants

Subclaves:

KeyTypeDescriptionExample
allowedDomainsArray of StringsLista blanca estricta de dominios para acciones. Cuando se establece, solo se puede acceder a los dominios listados.
allowedAddressesArray of StringsLista de exención de SSRF (solo espacio IP privado). Permite servicios específicos de host:puerto privados sin restringir destinos públicos cuando `allowedDomains` no está configurado.

ver también:

interface

Clave:

KeyTypeDescriptionExample
interfaceObjectConfigura los elementos de la interfaz de usuario dentro de la aplicación, permitiendo la personalización de la visibilidad y el comportamiento de varios componentes.

Subclaves:

KeyTypeDescriptionExample
privacyPolicyObjectContiene la configuración relacionada con el enlace a la política de privacidad proporcionado.
termsOfServiceObjectContiene la configuración relacionada con el enlace a los términos de servicio proporcionado.
modelSelectBooleanDetermina si la función de selección de modelo está disponible.
parametersBooleanAlterna la visibilidad de las opciones de configuración de parámetros, también conocidas como ajustes de conversación.
presetsBooleanHabilita o deshabilita el menú de ajustes preestablecidos
promptsBoolean or ObjectHabilita o deshabilita todas las funciones relacionadas con prompts para todos los usuarios
bookmarksBooleanHabilita o deshabilita todas las funciones relacionadas con marcadores para todos los usuarios
memoriesBooleanHabilita o deshabilita la función de memorias para todos los usuarios
multiConvoBooleanHabilita o deshabilita todas las funciones relacionadas con "multi convo", también conocido como streaming de respuestas múltiples, para todos los usuarios
agentsBoolean or ObjectHabilita o deshabilita todas las funciones de agentes para todos los usuarios
temporaryChatBooleanHabilita o deshabilita la función de chat temporal
temporaryChatRetentionNumberConfigura el periodo de retención para chats temporales en horas. Mín: 1, Máx: 8760. Predeterminado: 720 (30 días).
autoSubmitFromUrlBooleanControla si `/c/new?prompt=…&submit=true` se envía automáticamente al modelo. Cuando es `false`, el prompt se rellena previamente pero no se envía.
mcpServersObjectContiene configuraciones relacionadas con la selección de servidores MCP y el control de acceso.
customWelcomeStringMensaje de bienvenida personalizado que se muestra en la interfaz de chat.
runCodeBooleanHabilita o deshabilita el botón "Run Code" para los bloques de código Markdown
webSearchBooleanHabilita o deshabilita el botón de búsqueda web en la interfaz de chat
fileSearchBooleanHabilita o deshabilita el botón de búsqueda de archivos en la interfaz de chat
fileCitationsBooleanHabilita o deshabilita globalmente las citas de archivos para todos los usuarios
peoplePickerObjectConfigura qué tipos de principal están disponibles como controles en la interfaz del selector de personas
marketplaceObjectHabilita o deshabilita el acceso al Agent Marketplace

ver: Estructura del objeto de interfaz

modelSpecs

Clave:

KeyTypeDescriptionExample
modelSpecsObjectConfigura las Model Specs, permitiendo una configuración y personalización detallada de los modelos de IA y sus comportamientos dentro de la aplicación.

Subclaves:

KeyTypeDescriptionExample
enforceBooleanDetermina si las Model Specs deben anular estrictamente otras configuraciones.
prioritizeBooleanEspecifica si las Model Specs deben tener prioridad sobre la configuración predeterminada cuando ambas son aplicables.
listArray of ObjectsContiene una lista de especificaciones de modelos individuales que detallan diversas configuraciones y comportamientos.

ver: Estructura del objeto Model Specs

endpoints

Clave:

KeyTypeDescriptionExample
endpointsObjectDefine puntos de conexión de API personalizados para la aplicación.

Subclaves:

KeyTypeDescriptionExample
customArray of ObjectsCada objeto en la matriz representa una configuración de endpoint única.
azureOpenAIObjectConfiguración específica del endpoint de Azure OpenAI
assistantsObjectConfiguración específica del endpoint Assistants.
azureAssistantsObjectConfiguración específica del endpoint de Azure Assistants.
agentsObjectConfiguración específica del endpoint de Agents.
allObjectConfiguración global de endpoint que se aplica a todos los endpoints. Consulta Shared Endpoint Settings.
allowedAddressesArray of StringsLista de exención de SSRF (solo espacio IP privado). Permite que las baseURLs proporcionadas por el usuario apunten a servicios específicos de host:puerto privados (p. ej., Ollama autohospedado) sin deshabilitar la protección SSRF para todo lo demás.

Nota: Los endpoints admiten Shared Endpoint Settings tales como streamRate, headers, titleModel, titleMethod, titlePrompt, titlePromptTemplate, titleEndpoint y maxToolResultChars. Estos pueden configurarse individualmente por endpoint o globalmente utilizando la clave all. Los headers se combinan, prevaleciendo los valores a nivel de endpoint en caso de colisión de claves. La clave all no acepta baseURL.

Nota: endpoints.allowedAddresses se aplica a los valores de baseURL proporcionados por el usuario (cuando un administrador configura un endpoint personalizado con apiKey: 'user_provided' y baseURL: 'user_provided'). Cada baseURL suministrada por el usuario se valida contra el bloqueo SSRF en el momento de la solicitud; las entradas listadas aquí están exentas. Consulta mcpSettings.allowedAddresses para conocer la semántica del campo; se aplican las mismas reglas (solo espacio de IP privada, puerto requerido, sin URLs/rutas/CIDR/hosts simples/literales de IP pública).

mcpSettings

Clave:

KeyTypeDescriptionExample
mcpSettingsObjectDefine la configuración global para los servidores de Model Context Protocol (MCP)

Subclaves:

KeyTypeDescriptionExample
allowedDomainsArray of StringsLista blanca estricta de dominios para conexiones de servidores MCP. Cuando se configura, solo se puede acceder a las entradas listadas.
allowedAddressesArray of StringsLista de exención de SSRF (solo espacio IP privado). Permite servicios específicos de host:puerto privados sin cambiar `allowedDomains` al modo de lista blanca estricta.
  • Notas:
    • Esta es una función de seguridad para proteger contra el abuso / uso indebido de direcciones internas a través de servidores MCP
    • De forma predeterminada, LibreChat restringe que los servidores MCP se conecten a direcciones de red internas, locales o privadas.
    • Los servidores MCP que utilizan direcciones IP locales o dominios pueden añadirse a la lista blanca estricta allowedDomains (que se convierte entonces en el único conjunto accesible), o bien, para mantener accesibles los destinos públicos, pueden excluirse como servicios exactos de host:puerto mediante allowedAddresses.
    • Como ocurre con todos los cambios de configuración en yaml, es necesario reiniciar LibreChat para que surtan efecto.
    • Admite dominios, subdominios comodín (*.example.com), dominios Docker y direcciones IP

Ejemplo:

mcpSettings:
  # Strict whitelist mode:
  # allowedDomains:
  #   - "example.com"           # Specific domain
  #   - "*.example.com"         # All subdomains
  #   - "http://mcp-server:3000" # Internal service, explicitly whitelisted

  # Default SSRF mode with private service exemptions:
  allowedAddresses:
    - 'host.docker.internal:8080' # Permit one private host on one port
    - '10.0.0.5:8000' # Permit one private IP on one port

ver: Estructura del objeto de configuración de MCP

mcpServers

Clave:

KeyTypeDescriptionExample
mcpServersObjectDefine la configuración para los servidores del Model Context Protocol (MCP), permitiendo la integración dinámica de servidores MCP dentro de la aplicación.

Subclaves:

KeyTypeDescriptionExample
<serverName>ObjectCada clave bajo `mcpServers` representa una configuración individual de servidor MCP, identificada por un nombre único.
  • Notas:
    • La inicialización ocurre al iniciar, y la aplicación debe reiniciarse para que los cambios surtan efecto.
    • El <serverName> es un identificador único para cada configuración de servidor MCP.
    • Cada servidor MCP puede configurarse utilizando uno de los cuatro tipos de conexión:
      • stdio
      • websocket
      • sse
      • streamable-http
    • El campo type especifica el tipo de conexión al servidor MCP.
    • Si se omite type, se establece de forma predeterminada según la presencia y el formato de url o command:
      • Si se especifica url y comienza con http o https, type se establece de forma predeterminada en sse.
      • Si se especifica url y comienza con ws o wss, type se establece de forma predeterminada en websocket.
      • Si se especifica command, type toma stdio como valor predeterminado.
    • Las opciones de configuración adicionales incluyen:
      • timeout: Tiempo de espera en milisegundos para las solicitudes al servidor MCP. Determina cuánto tiempo esperar una respuesta para las solicitudes de herramientas.
      • initTimeout: Tiempo de espera en milisegundos para la inicialización del servidor MCP. Determina cuánto tiempo esperar a que el servidor se inicialice.
      • serverInstructions: Controla si las instrucciones del servidor se incluyen en el contexto del agente. Puede ser true (usar las proporcionadas por el servidor), false (deshabilitado) o una cadena personalizada (anula las proporcionadas por el servidor).
      • customUserVars: (Opcional) Define variables personalizadas (por ejemplo, claves de API, URLs) que los usuarios individuales pueden configurar para un servidor MCP. Estos valores por usuario, proporcionados a través de la interfaz de usuario, pueden ser referenciados en las configuraciones de headers o env del servidor utilizando la sintaxis {{VARIABLE_NAME}}. Esto permite la autenticación o personalización por usuario para las herramientas MCP.
    • ver: Estructura del objeto MCP Servers

Ejemplo:

mcpServers:
  everything:
    # type: sse # type can optionally be omitted
    url: http://localhost:3001/sse
    timeout: 30000
    initTimeout: 10000
    serverInstructions: true # Use server-provided instructions
  puppeteer:
    type: stdio
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-puppeteer'
    timeout: 30000
    initTimeout: 10000
    serverInstructions: 'Do not access any local files or local/internal IP addresses'
  filesystem:
    # type: stdio
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-filesystem'
      - /home/user/LibreChat/
    iconPath: /home/user/LibreChat/client/public/assets/logo.svg
  mcp-obsidian:
    command: npx
    args:
      - -y
      - 'mcp-obsidian'
      - /path/to/obsidian/vault
  streamable-http-example:
    type: streamable-http
    url: https://example.com/mcp
    headers:
      Authorization: 'Bearer ${API_TOKEN}'
    timeout: 30000
  per-user-crendentials-example:
    type: sse
    url: 'https//some.mcp/sse'
    headers:
      X-Custom-Auth-Token: '{{USER_API_KEY}}' # Placeholder for the user-provided API key, defined in `customUserVars` below.
    customUserVars:
      USER_API_KEY:
        title: 'Service API Key'
        description: "Your personal API key for this service. You can get it <a href='https://example.com/api-keys' target='_blank'>here</a>."
    serverInstructions: true

ver: Estructura del objeto MCP Servers

speech

Clave:

KeyTypeDescriptionExample
speechObjectConfigura los proveedores de Text-to-Speech (TTS) y Speech-to-Text (STT) para la aplicación.

Subclaves:

KeyTypeDescriptionExample
ttsObjectConfiguraciones del proveedor de Text-to-Speech (OpenAI, Azure OpenAI, ElevenLabs, LocalAI).
sttObjectConfiguraciones del proveedor de Speech-to-Text (OpenAI, Azure OpenAI).
speechTabObjectConfiguración predeterminada de la interfaz para funciones de voz.

ver: Estructura del objeto Speech

turnstile

Clave:

KeyTypeDescriptionExample
turnstileObjectConfigura Cloudflare Turnstile para la protección contra bots en los formularios de registro e inicio de sesión.

Subclaves:

KeyTypeDescriptionExample
siteKeyStringTu clave de sitio de Cloudflare Turnstile (obligatorio).
optionsObjectOpciones adicionales del widget Turnstile (opcional).

ver: Estructura del objeto Turnstile

transactions

Clave:

KeyTypeDescriptionExample
transactionsObjectControla las funciones de registro y visibilidad de transacciones.

Subclaves:

KeyTypeDescriptionExample
enabledBooleanHabilita o deshabilita el registro de transacciones. Predeterminado: true.

ver: Estructura del objeto Transactions

¿Qué te parece esta guía?