Habilitar el soporte nativo de LLMs.txt en Discourse

:bookmark: Esta guía explica cómo hacer que tu comunidad sea descubrible y utilizable por agentes de IA y rastreadores de LLM a través del estándar llms.txt. Cubre tanto el documento predeterminado generado automáticamente como los archivos personalizados subidos.

:person_raising_hand: Nivel de usuario requerido: Administrador

Resumen

Discourse incluye soporte nativo para el estándar llms.txt, una convención propuesta para proporcionar una descripción general amigable para LLM de un sitio web. Piensa en ello como el «robots.txt para la IA»: un pequeño archivo Markdown en /llms.txt que ayuda a los modelos de lenguaje de gran escala (LLM) y a los agentes de IA a entender de qué trata tu sitio y cómo acceder a él de manera responsable.

Puedes elegir entre dos enfoques, o combinarlos:

  1. Dejar que Discourse genere un documento predeterminado automáticamente a partir de la configuración de tu sitio
  2. Subir tu propio archivo personalizado llms.txt para tener control total sobre el contenido

Una subida personalizada siempre tiene prioridad sobre el documento generado.

¿Qué es llms.txt?

llms.txt es un estándar propuesto que proporciona un mapa curado y amigable para agentes de un sitio web. Se sirve en la raíz del sitio (/llms.txt) y sigue un formato Markdown preciso:

  • Un encabezado H1 con el nombre del sitio (la única sección obligatoria)
  • Una cita bloque con un resumen breve
  • Secciones Markdown opcionales con más detalles
  • Secciones delimitadas por H2 que contienen listas de enlaces útiles

A diferencia de sitemap.xml, que lista páginas para los motores de búsqueda, llms.txt es una descripción general concisa diseñada para encajar en la ventana de contexto de un LLM. El detalle está detrás de los enlaces, que solo se obtienen cuando es necesario.

A partir de Discourse v2026.1.0, Discourse puede servir llms.txt desde la raíz del sitio.

Cómo Discourse sirve /llms.txt

Discourse maneja las solicitudes a /llms.txt en este orden:

  1. Si has subido un archivo personalizado, Discourse lo sirve sin cambios como text/plain
  2. Si no se ha subido un archivo personalizado y el predeterminado generado está habilitado, Discourse genera y sirve el documento
  3. De lo contrario, Discourse devuelve un 404

El documento generado es idéntico para visitantes anónimos y usuarios iniciados sesión, y no se ve afectado por las redirecciones de login required (inicio de sesión requerido).

El documento predeterminado generado

Cuando no se sube un archivo personalizado y la función está habilitada, Discourse construye un documento conciso utilizando la configuración existente de tu sitio y el idioma predeterminado del sitio. Incluye:

  • El título del sitio (de la configuración title), con el nombre de host como respaldo
  • Una cita bloque de resumen que utiliza tu site_description, o short_site_description como respaldo
  • Una política de comunidad para humanos que establece que el sitio es para discusión humana y que los agentes solo deben escribir cuando un humano les pida explícitamente hacerlo
  • Una política de acceso para agentes que pide a los agentes que solo obtengan lo que necesiten, respeten robots.txt y los controles del rastreador, y honren el HTTP 429 con el intervalo Retry-After
  • Una referencia a Discourse MCP, que señala a los agentes al servidor Discourse MCP como la interfaz preferida, consciente de los permisos
  • Una sección de Interfaz de agente preferida con el enlace de configuración de Discourse MCP
  • Una sección de Acceso web público con enlaces a /search, /filter, /latest y /categories, además de /sitemap.xml cuando la configuración enable_sitemap está activada
  • Una sección Opcional con enlaces a /about, /guidelines, /tos y /privacy

Si tu sitio tiene login_required habilitado, el documento añade una nota indicando que el contenido solo está disponible para miembros autenticados y omite los enlaces de descubrimiento público descritos anteriormente. Los enlaces son conscientes de la ruta base, por lo que funcionan correctamente en instalaciones en subcarpetas.

Puedes ver el anuncio y discutir la plantilla generada en llms.txt generado automáticamente. Meta actualmente sirve un archivo personalizado específico del sitio.

Habilitar el documento predeterminado generado

El predeterminado generado se entrega a través del sistema de Cambios Próximos como un cambio beta en el que los administradores pueden optar por participar o no.

  1. Ve a Admin → Configure → Upcoming Changes (Administración → Configurar → Cambios próximos), o visita /admin/config/upcoming-changes
  2. Busca el cambio que genera un /llms.txt predeterminado cuando no se ha subido un archivo personalizado
  3. En el menú desplegable Enabled for (Habilitado para), elige Everyone (Todos) para habilitarlo para todos los visitantes
  4. Para desactivarlo, elige No one (Nadie)

Los cambios promovidos aparecen aquí automáticamente cuando están listos, y los administradores son notificados en el panel de control. Si prefieres que no se sirva ningún archivo llms.txt, establece este cambio en No one o sube un archivo personalizado mínimo.

Subir un llms.txt personalizado

Si prefieres controlar el contenido exactamente, puedes subir tu propio archivo.

  1. Prepara un archivo llms.txt en formato .txt o .md (el tamaño máximo del archivo es de 512 KB)
  2. Ve a Admin → Settings → Security (Administración → Configuración → Seguridad), o visita /admin/config/security, y busca LLMs TXT
  3. Sube tu archivo y guarda la configuración

Una vez configurado, Discourse sirve tu archivo sin cambios en:

https://yourforum.com/llms.txt

Consulta llmstxt.org para obtener orientación sobre sintaxis y formato. Una subida personalizada siempre anula el documento generado. Para referencia, puedes ver el archivo de Meta.

Verifica tu configuración

Puedes comprobar lo que verán los agentes solicitando el archivo en un navegador o con curl:

curl https://yourforum.com/llms.txt

Mejores prácticas

  • Mantén el archivo conciso. llms.txt es un mapa, no un manifiesto; cada token cuesta contexto, y un archivo enorme lleva a agentes confundidos y peores resultados
  • Solo sirve el predeterminado generado si su contenido coincide con tus políticas. Si necesitas una redacción diferente, copia el texto generado, edítalo para adaptarlo a tu comunidad y súbelo como archivo personalizado
  • Estructura los archivos personalizados según la especificación: título H1, cita bloque de resumen, luego secciones H2 con listas de enlaces, utilizando una sección Optional (Opcional) para enlaces secundarios
  • Combina llms.txt con controles de rastreador. Para ajustar el acceso automatizado, configura las configuraciones slow_down_crawler_user_agents y slow_down_crawler_rate (Administración → Configuración → Seguridad)
  • Recuerda que llms.txt describe tu sitio, mientras que robots.txt controla el acceso. Sirven propósitos diferentes y se complementan entre sí

Problemas comunes y soluciones

Obtengo un 404 en /llms.txt

Esto sucede cuando no se ha subido un archivo personalizado y el predeterminado generado no está habilitado. Sube un archivo personalizado, habilita el predeterminado generado en Admin → Upcoming Changes (Administración → Cambios próximos), o ambos.

Uso un plugin Generador de llms.txt y el archivo principal dejó de funcionar

Discourse core sirve la ruta /llms.txt, por lo que tiene prioridad sobre los plugins que lo generan. Si dependes de los archivos generados dinámicamente por el plugin (como un índice completo de temas), una solución práctica es subir un llms.txt personalizado mínimo que señale a los agentes al contenido generado por el plugin, por ejemplo:

# [Título de tu sitio]

Ve a https://yourforum.com/llms-full.txt

El plugin también genera archivos por categoría, por tema y por etiqueta que no se ven afectados.

Subí un archivo pero /llms.txt devuelve 404

Si el archivo subido no se puede leer desde el almacenamiento (por ejemplo, falta en un almacén de objetos externo), Discourse devuelve 404 y no vuelve al documento generado. Vuelve a subir el archivo para resolver esto.

Mi sitio requiere inicio de sesión, ¿cómo se comporta esto?

El documento generado sigue funcionando: contiene el aviso de cuenta requerida y omite los enlaces de descubrimiento público. Una subida personalizada siempre se sirve sin cambios. Si quieres que los agentes accedan al contenido, considera cómo tus configuraciones de inicio de sesión afectan la rastreabilidad.

Preguntas frecuentes

¿Discourse lista automáticamente todos mis temas en llms.txt?

El predeterminado generado no lista intencionalmente temas individuales. Es un mapa mínimo que describe tu sitio, establece políticas de acceso y señala a los agentes a la interfaz Discourse MCP y a algunas rutas de descubrimiento.

¿En qué idioma está el documento generado?

Se genera en el idioma predeterminado de tu sitio (la configuración default_locale), independientemente del idioma de la solicitud.

¿Puedo optar por no participar?

Sí. Establece el cambio en No one (Nadie) en Admin → Upcoming Changes (Administración → Cambios próximos). Alternativamente, sube un archivo personalizado con tu propio contenido.

¿Por qué el documento generado hace referencia a Discourse MCP?

El servidor Discourse MCP proporciona herramientas conscientes de los permisos para temas, publicaciones, búsqueda, usuarios, categorías y acciones de comunidad admitidas. Es la forma preferida para que los agentes trabajen con tu comunidad, por lo que se enlaza una configuración local de MCP en la sección «Interfaz de agente preferida» cuando está disponible.

Recursos adicionales

14 Me gusta

¿No es posible que Discourse genere dinámicamente el archivo llms.txt para el sitio? Eso parecería una función mucho más útil y lo alinearía con el 🤖 Discourse llms.txt Generator Plugin - #2 by Ivan_Rapekas, con el que esta nueva característica entra en conflicto, sobrescribiendo la ruta /llms.txt y devolviendo un error 404 incluso si el plugin está configurado correctamente.

¿Está prevista esta ampliación de la funcionalidad en la hoja de ruta?

5 Me gusta

Mi solución temporal para este problema fue:

  • Crear un archivo llms.txt en VS Code que contenga únicamente:

    Ve a [https://<TU-URL-BASE>/llms-full.txt](https://<TU-URL-BASE>/llms-full.txt)
    
  • Subir esto a la sección llms.txt del núcleo de Discourse en admin/config/security?filter=LLMs%20TXT. Guarda los cambios.

  • Prueba que https://<TU-URL-BASE>/llms.txt muestre el contenido del archivo de texto anterior.

  • Ahora, con suerte, los LLMs que accedan a llms.txt serán guiados a navegar hacia llms-full.txt, que se genera dinámicamente por 🤖 Discourse llms.txt Generator Plugin

1 me gusta

Guía actualizada para reflejar los cambios anunciados en llms.txt generado automáticamente.

3 Me gusta