Análisis profundo de IA

Análisis profundo de 9Router: enrutamiento de IA gratuito, ahorro de tokens y respaldo de proveedores para agentes de codificación

9Router es una puerta de enlace y un panel de control de IA local que expone un endpoint OpenAI-compatible, traduce formatos de solicitud, rastrea cuotas, comprime la salida de herramientas con RTK y enruta el tráfico de agentes de codificación a través de niveles de proveedores de suscripción, económicos y gratuitos.

Actualizado en junio de 2026
Imagen principal de la guía de 9Router que muestra un panel de puerta de enlace de IA local que enruta agentes de codificación a través de múltiples niveles de proveedores

La forma útil de entender este proyecto es como infraestructura entre tu herramienta de codificación y tus cuentas de modelo. Claude Code, Codex, Cursor, Cline, clientes estilo Copilot, Antigravity, OpenClaw y otras herramientas OpenAI-compatible pueden apuntar a `http://localhost:20128/v1`; 9Router luego decide cómo traducir, comprimir, enrutar, reintentar y registrar la solicitud.

Get the latest on AI, LLMs & developer tools

New MCP servers, model updates, and guides like this one — delivered weekly.

Ver el video de 9Router

¿Prefieres leer? La guía escrita a continuación cubre la arquitectura, la configuración, los riesgos y el veredicto práctico.

Nota editorial

Este artículo se basa en el repositorio de GitHub, README, metadatos del paquete, árbol de fuentes, metadatos de npm, lanzamientos/etiquetas, problemas recientes, PRs recientes y archivos de configuración de proveedores investigados el 3 de junio de 2026. El lenguaje sobre gratuidad/ilimitado del README se trata como posicionamiento del proyecto, no como asesoramiento de cuotas verificado de forma independiente.

1. 9router en una frase

9Router es una puerta de enlace de LLM local con licencia MIT para agentes de codificación que combina APIs OpenAI-compatible, traducción de proveedores, respaldo de múltiples cuentas, seguimiento de cuotas, compresión de salida de herramientas RTK, un panel de control y despliegue en Docker/local.

ÁreaDetallePor qué importa
Repositoriodecolua/9routerhttps://github.com/decolua/9router
Lenguaje principalJavaScriptLenguaje principal de GitHub en el momento de la investigación.
LicenciaMITRevisa por separado las licencias empaquetadas o binarias cuando corresponda.
Creado5 de enero de 2026Paquete publicado verificado: 0.4.66 el 29 de mayo de 2026; última entrada de GitHub Releases verificada: v0.4.63 el 26 de mayo de 2026.

2. Por qué importa

El proyecto es importante porque los flujos de trabajo de codificación con IA ya no están vinculados a un solo cliente o proveedor de modelos. Los desarrolladores a menudo usan Claude Code, Codex, Cursor, Cline, Antigravity y herramientas OpenAI-compatible en paralelo, mientras que el acceso al modelo proviene de suscripciones, claves de API, niveles gratuitos, proveedores regionales y endpoints compatibles localmente.

9Router intenta normalizar ese desorden en un solo endpoint y un solo panel de control. En lugar de reconfigurar cada herramienta de codificación cuando un proveedor alcanza su cuota o cambia la forma de un evento, creas cuentas de proveedor, alias de modelo, combinaciones y cadenas de respaldo en el enrutador.

El enfoque agresivo de ahorro de tokens también es práctico. Los agentes de codificación consumen contexto en diffs, salidas de grep, registros, listados de archivos y transcripciones de herramientas repetidas. La compresión RTK se ejecuta antes de la traducción de formato, por lo que el proyecto puede reducir el tamaño de la carga útil sin requerir que cada cliente ascendente conozca el formato de compresión.

3. Arquitectura y modelo mental

9Router es un panel de control de Next.js más una puerta de enlace API con un paquete CLI publicado por separado. La aplicación reescribe rutas OpenAI-compatible en manejadores de API de Next, delega el trabajo de chat en el núcleo de traducción/enrutamiento `open-sse`, almacena el estado de ejecución en almacenamiento de datos local y expone un panel de control para la gestión de proveedores, cuotas, registros y combinaciones.

ÁreaDetallePor qué importa
Superficie del cliente`http://localhost:20128/v1`Endpoint OpenAI-compatible utilizado por Claude Code, Codex, Cursor, Cline, Antigravity y clientes similares.
Panel de controlAplicación Next.jsConfiguración de proveedores, combos, alias, cuotas, uso, registros, ajustes de endpoint, sincronización en la nube y pruebas de modelos.
Paquete CLI`9router` en npmInicia el tiempo de ejecución local, el lanzador, los hooks orientados a la bandeja del sistema y el comportamiento de la aplicación empaquetada.
Manejadores de solicitudes`src/app/api/v1/*`Rutas para completado de chat, respuestas, mensajes, modelos, embeddings, imágenes, voz, búsqueda y fetch.
Núcleo de traducción`open-sse/*`Traducción de formatos, ejecución de proveedores, asistentes de streaming, actualización de tokens y asistentes de respaldo.
Registro de proveedores`src/shared/constants/providers.js`Proveedores OAuth, proveedores de API-key, proveedores gratuitos/de nivel gratuito, tipos de medios, alias y metadatos de riesgo.
AlmacenamientoDirectorio de datos local y adaptadores SQLiteLa fuente actual utiliza adaptadores de base de datos aunque la documentación de arquitectura antigua todavía menciona el almacenamiento JSON.

4. Configuración end-to-end mínima

Los comandos de abajo se copiaron de la documentación del repositorio y se contrastaron con la instantánea de investigación actual. Úsalos como punto de partida y lee después el README enlazado antes de instalarlo en producción.

# Global install path
npm install -g 9router
9router

# Source development path
git clone https://github.com/decolua/9router.git
cd 9router
cp .env.example .env
npm install
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev

# Docker path
docker run -d \
  --name 9router \
  -p 20128:20128 \
  -v "$HOME/.9router:/app/data" \
  -e DATA_DIR=/app/data \
  decolua/9router:latest

Una primera tarea pequeña debe demostrar la integración antes de conectarla a datos críticos o workspaces grandes.

# Configure your coding client with the local router
Endpoint: http://localhost:20128/v1
API key: copy from the 9Router dashboard
Model: choose a 9Router model alias or combo, for example kr/claude-sonnet-4.5

# Local URLs
Dashboard: http://localhost:20128/dashboard
OpenAI-compatible API: http://localhost:20128/v1

5. Análisis técnico profundo

5.1 Es una puerta de enlace, no un proveedor de modelos

9Router no crea mágicamente un nuevo modelo fundacional. Se sitúa entre los clientes de programación y los proveedores upstream. El router traduce las formas de las solicitudes, actualiza los tokens cuando es compatible, gestiona las API keys, enruta a las cuentas y decide qué hacer cuando el proveedor preferido falla o alcanza un límite configurado.

Esa distinción es importante para el riesgo. Si un proveedor upstream cambia un evento de stream, rechaza un esquema, elimina un nivel gratuito o limita el uso de la cuenta, 9Router tiene que adaptarse rápidamente. Problemas recientes muestran exactamente ese tipo de rotación de proveedores.

Claude Code / Codex / Cursor / Cline
  -> http://localhost:20128/v1
  -> 9Router endpoint settings
  -> combo / alias / provider account
  -> upstream model API
  -> translated stream back to client

5.2 Los combos son la primitiva de enrutamiento

El README estructura el respaldo como una cadena de tres niveles: suscripción primero, proveedores económicos segundo, proveedores gratuitos al final. En la práctica, eso se convierte en una configuración de combo en el panel de control. Un combo es donde codificas las preferencias de modelo, el orden de respaldo y qué cuentas tienen permiso para servir una solicitud.

Esto es útil para largas jornadas de programación porque cambiar de proveedor manualmente genera fricción. También es peligroso si no comprendes los términos, cuotas, latencia y calidad de modelo de cada proveedor. Una cadena de respaldo puede mantener el flujo de trabajo, pero también puede cambiar silenciosamente el comportamiento del modelo a mitad de una tarea.

5.3 RTK comprime la salida de herramientas del agente antes de la traducción

La característica técnica más concreta es RTK Token Saver. Los resultados de las herramientas de los agentes de programación suelen ser enormes: diffs, resultados de búsqueda, árboles, registros, lecturas numeradas y salida de shell. 9Router detecta esas estructuras y aplica filtros de compresión especializados antes de que la solicitud sea traducida a Claude, OpenAI, Gemini, Vertex, Kiro u otro formato de destino.

El README dice que el filtro es seguro por diseño: si la compresión falla o hace que la salida sea más grande, se mantiene el texto original. Esa es la configuración predeterminada correcta porque una compresión con pérdida o rota de un diff puede hacer que un agente edite el código incorrecto.

tool_result: git diff / grep / tree / logs
  -> RTK filter selection
  -> compressed or original payload
  -> format translation
  -> upstream provider request

5.4 La traducción de formatos es la parte difícil

El proyecto admite chat completions de OpenAI, respuestas de OpenAI, mensajes estilo Claude, Gemini, Cursor, Kiro, Vertex, Antigravity, rutas estilo Ollama, embeddings, generación de imágenes, voz, búsqueda y rutas de web fetch. Esa es una gran superficie de compatibilidad.

Los errores recientes muestran el costo: el comportamiento de prefill del asistente, las limitaciones de Vertex, los parámetros de token específicos del proveedor, el ensamblaje de streams de GitHub Gemini y las pruebas de modelos de medios pueden fallar de formas distintas. El valor de 9Router proviene de absorber esas diferencias, pero eso significa que el repositorio debe rastrear los cambios upstream constantemente.

5.5 El almacenamiento local y los registros son parte del modelo de amenazas

Un router como este almacena o accede a credenciales de proveedores, sesiones de OAuth, registros de solicitudes, registros de uso, alias de modelos y posiblemente prompts sin procesar. El código fuente actual incluye adaptadores de base de datos local; el README describe los datos locales bajo un directorio de datos. Trata a la máquina que ejecuta 9Router como infraestructura que contiene credenciales.

Eso no hace que el proyecto sea inutilizable. Significa que debes configurar el registro de forma intencional, usar claves de API con el menor privilegio posible, evitar enrutar datos confidenciales de clientes a través de cuentas con términos poco claros y mantener el puerto del Web UI privado a menos que lo hayas desplegado deliberadamente detrás de una autenticación.

6. Patrones reales: incorrecto vs correcto

IncorrectoCorrectoRazón
Asume que 9Router proporciona acceso ilimitado a modelos por sí mismo.Trátalo como un router sobre cuentas upstream reales, suscripciones y niveles gratuitos.Los términos de los proveedores, las cuotas y la disponibilidad de los modelos siguen aplicando.
Apuntar cada herramienta a una combinación de respaldo sin probar.Crear combinaciones separadas para programación, experimentación económica, medios y trabajo confidencial.Diferentes clientes y tareas necesitan diferentes perfiles de latencia, calidad y riesgo.
Habilitar registros detallados permanentemente.Usa el registro de solicitudes para depurar, luego reduce la retención y protege el directorio de datos.Los registros pueden contener prompts, código, claves y contexto de negocio.
Confiar únicamente en la página de lanzamientos de GitHub para la frescura.Revisa npm, etiquetas y la rama predeterminada al depurar comportamientos específicos de una versión.El estado de npm/etiquetas de 9Router ha avanzado respecto a la última entrada de lanzamiento en GitHub.

7. Errores comunes y problemas actuales

El issue tracker importa porque estos repos son jóvenes y cambian rápido. El artículo usa los issues como señales de riesgo, no como prueba de que el proyecto sea inutilizable.

ÁreaDetallePor qué importa
Términos del proveedorLos proveedores respaldados por OAuth/suscripción pueden conllevar riesgos de restricción de cuenta.El código fuente incluye avisos de riesgo; no dirija tráfico crítico de negocio a ciegas.
Divergencia de versionesnpm/tag 0.4.66 era más reciente que la última entrada de lanzamiento en GitHub al momento de la investigación.Sea preciso al informar versiones.
Bloqueos en el streamingLos problemas reportan bloqueos, flujos vacíos, marcadores de posición y comportamiento de eco en los prompts.El razonamiento largo y los adaptadores de proveedores necesitan pruebas de humo.
Endpoints de mediosLos PR recientes dirigen las sondas de imagen y STT a endpoints de medios reales.No asuma que las pruebas de chat-completion validan todas las modalidades.
Dependencias de tiempo de ejecuciónUn problema reporta la eliminación de la dependencia de SQLite en las rutas de tiempo de ejecución empaquetadas.Las instalaciones empaquetadas merecen una verificación de lanzamiento local.
Documentación obsoletaLa documentación de arquitectura antigua menciona almacenamiento JSON, mientras que el código fuente actual incluye adaptadores de SQLite.Prefiera el código fuente y el README sobre las notas de arquitectura antiguas cuando entren en conflicto.

8. Notas de rendimiento, escalado y coste

El rendimiento de 9Router está dominado por dos variables: el comportamiento del proveedor upstream y la sobrecarga de traducción/compresión del lado del router. El router puede reducir el tamaño del prompt con RTK, pero no puede hacer que un proveedor upstream lento o sobrecargado sea rápido.

El fallback mejora la disponibilidad solo si los modelos de respaldo realmente pueden manejar la tarea. Un modelo barato/gratuito puede mantener el flujo activo pero producir ediciones de código de menor calidad, llamadas a herramientas más débiles o estructuras de llamadas a funciones incompatibles.

El mejor patrón de costos es la segmentación explícita: combinación premium para ediciones y revisiones arriesgadas, combinación más barata para exploración, combinación local/gratuita para búsquedas amplias y resúmenes, y rutas específicas de medios para solicitudes de imagen/voz/video.

9. Para quién es

Úsalo siEvítalo si
Usted utiliza múltiples clientes de codificación AI y desea un único endpoint local.Usted solo utiliza un proveedor y valora la simplicidad sobre la flexibilidad de enrutamiento.
Usted gestiona activamente cuotas, suscripciones, niveles gratuitos y API baratas.Su organización prohíbe el proxy de sesiones respaldadas por OAuth/suscripción.
Sus prompts de coding-agent incluyen diffs grandes, registros y resultados de búsqueda.Necesitas controles de puerta de enlace empresariales auditados antes de enrutar el código fuente.
Te sientes cómodo depurando adaptadores de proveedores que cambian rápidamente.Necesitas un dispositivo estable con lanzamientos lentos y conservadores.

10. Señal de la comunidad

La superficie de issues y PR en GitHub es extremadamente activa y altamente técnica. La mayor parte de la señal proviene de usuarios que prueban combinaciones de proveedores en Claude Code, Antigravity, OpenClaw, MiniMax, Xiaomi, GitHub Gemini, Vertex y endpoints compatibles personalizados.

La señal positiva más fuerte es práctica: la gente lo está usando con clientes de programación reales e informando rápidamente sobre casos extremos. La mayor precaución es el mismo hecho a la inversa: los protocolos de proveedores y clientes cambian lo suficientemente rápido como para que un router deba ser parcheado continuamente.

El README del repositorio utiliza un lenguaje fuerte sobre gratuidad/ilimitación, pero el rastreador de issues cuenta una historia más fundamentada en la ingeniería: los IDs de modelo cambian, los formatos de streaming difieren, las rutas de OAuth se rompen y las pruebas del dashboard deben ser conscientes de la modalidad.

11. El veredicto: ¿merece la pena usarlo?

Nuestra opinión

Usa 9Router si deseas una puerta de enlace local y práctica para enrutar herramientas de programación de IA a través de múltiples proveedores y estás dispuesto a gestionar el riesgo del proveedor cuidadosamente. Evítalo para rutas de código de producción reguladas hasta que hayas revisado el almacenamiento de credenciales, el registro, los términos del proveedor y el comportamiento de respaldo bajo tus propias políticas.

12. El panorama general

9Router es parte de un movimiento más amplio desde clientes de modelo único hacia infraestructura de IA local. Los desarrolladores quieren cada vez más enrutamiento de modelos, control de presupuesto, visibilidad de cuotas, compatibilidad con proxy y abstracción de proveedores sin cambiar cada editor o agente de terminal.

El problema sin resolver es la confianza. El enrutamiento es fácil de demostrar; el enrutamiento seguro es más difícil. La próxima generación de herramientas necesitará controles de política explícitos, separación de credenciales, registros de auditoría, redacción y decisiones de enrutamiento de modelos reproducibles.

13. Preguntas frecuentes

P: ¿Es 9Router un proveedor de modelos de IA?

No. Es un router local y un dashboard que envía solicitudes a proveedores upstream, cuentas, niveles gratuitos, suscripciones o endpoints compatibles que tú configures.

P: ¿Qué endpoint debo configurar en mi herramienta de programación?

Usa `http://localhost:20128/v1` y la clave de API que se muestra en el dashboard de 9Router, luego elige un alias de modelo o combinación definida dentro de 9Router.

P: ¿Qué es RTK Token Saver?

RTK comprime las salidas comunes de herramientas de agentes de programación como diffs, resultados de grep, árboles de archivos, registros y lecturas numeradas antes de que la carga útil sea traducida y enviada upstream.

P: ¿Por qué difieren las versiones entre npm y GitHub Releases?

En el momento de la investigación, los tags de npm estaban por delante de la última entrada de lanzamiento en GitHub. Para depurar, verifica los metadatos de npm, los tags, los lanzamientos y la rama predeterminada en conjunto.

P: ¿Es seguro usar cuentas de OAuth/suscripción a través de un router?

Eso depende de los términos del proveedor y de tu tolerancia al riesgo. El proyecto incluye avisos de riesgo para algunos proveedores, así que trátalo como una decisión de política, no solo como un paso de configuración técnica.

P: ¿Dónde residen los datos locales?

El README describe los datos locales bajo el directorio de datos configurado, y el código fuente actual incluye adaptadores de SQLite. Protege ese directorio porque puede contener credenciales, registros de uso y logs.

P: ¿Qué es lo que se rompe con más frecuencia?

Los problemas recientes apuntan a cambios en el esquema de proveedores upstream, ensamblaje de streaming, IDs de modelo, parámetros de tokens, pruebas de endpoints de medios y dependencias de tiempo de ejecución empaquetadas.

14. Glosario

ÁreaDetallePor qué importa
Puerta de enlaceUn servicio local que recibe solicitudes de modelos y las reenvía a otro lugar.El rol principal de 9Router.
ComboUna cadena de enrutamiento/respaldo configurada.Se utiliza para elegir rutas de suscripción, económicas o gratuitas.
RTKCapa de compresión de salida de herramientas.Reduce los resultados extensos de las herramientas del agente antes de la traducción del proveedor.
OpenAI-compatibleForma de API a la que pueden apuntar muchas herramientas.9Router expone endpoints `/v1` compatibles.
Proveedor de OAuthProveedor autenticado a través de una sesión de usuario.Puede conllevar un riesgo adicional de política de cuenta.
Endpoint de mediosRuta de imagen, voz, video o STT.No debería probarse únicamente a través de chat completions.
Respaldo (Fallback)Enrutamiento al siguiente proveedor/cuenta cuando el primero falla.Útil, pero puede cambiar el comportamiento del modelo.

15. Todas las fuentes y enlaces

Enlaces internos

16. Tabla de atribución de fuentes

ÁreaDetallePor qué importa
READMEPosicionamiento, inicio rápido, endpoint, niveles de proveedor, RTK, Docker, superficie del dashboard.Fuente primaria.
Metadatos del paquetePaquete CLI, matiz de versión, requisito de Node, entrada ejecutable.Fuente primaria.
Árbol de fuentesRutas de Next.js, núcleo de traducción, registro de proveedores, adaptadores de base de datos.Fuente de arquitectura.
Issues/PRsRotación de proveedores, interrupciones de streaming, sondeos de medios, advertencias de dependencias en tiempo de ejecución.Señal de frescura.
npm y lanzamientosDivergencia de versiones entre el paquete publicado, las etiquetas y las entradas de lanzamiento.Fuente de frescura.

Related Guides