<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Model Routing on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/model-routing/</link>
        <description>Recent content in Model Routing on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Sat, 11 Jul 2026 11:00:00 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/model-routing/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Configuración de 9Router con Claude Code: API Base URL, enrutamiento de modelos y errores comunes</title>
        <link>https://knightli.com/es/2026/07/11/9router-claude-code-api-base-url-routing-errors/</link>
        <pubDate>Sat, 11 Jul 2026 11:00:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/07/11/9router-claude-code-api-base-url-routing-errors/</guid>
        <description>&lt;p&gt;Conectar Claude Code a 9Router no consiste solo en pegar una configuración. El cliente, el Provider de 9Router y el nombre del modelo deben coincidir. Si aparece un 401, 404 o «modelo no disponible», aísla primero la capa del problema en lugar de cambiar la API key repetidamente.&lt;/p&gt;
&lt;h2 id=&#34;confirma-tres-elementos-antes-de-configurar&#34;&gt;Confirma tres elementos antes de configurar
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;El servicio 9Router está iniciado y se abre su interfaz de administración local.&lt;/li&gt;
&lt;li&gt;Hay un Provider añadido en 9Router con clave y conectividad correctas.&lt;/li&gt;
&lt;li&gt;Tienes la Base URL compatible con OpenAI, la API key y los nombres de modelo o Combo disponibles que expone 9Router.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Claude Code solo debe solicitar la Base URL de 9Router. Las reglas de 9Router deciden el Provider y el modelo. Consulta la &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/08/9router-ai-coding-router-token-saver/&#34; &gt;guía de 9Router&lt;/a&gt; para la instalación y el contexto.&lt;/p&gt;
&lt;h2 id=&#34;orden-recomendado-de-conexión&#34;&gt;Orden recomendado de conexión
&lt;/h2&gt;&lt;p&gt;Primero crea en 9Router una ruta de prueba con un único Provider y apunta Claude Code a ella. Añade fallback, varias cuentas o modelos locales solo después de completar una conversación sencilla.&lt;/p&gt;
&lt;p&gt;Comprueba lo siguiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La Base URL es el endpoint compatible con OpenAI de 9Router, no la URL de un proveedor ascendente.&lt;/li&gt;
&lt;li&gt;La API key fue emitida por la instancia actual de 9Router.&lt;/li&gt;
&lt;li&gt;El nombre de modelo en Claude Code coincide exactamente con un modelo o Combo expuesto por 9Router.&lt;/li&gt;
&lt;li&gt;Has reiniciado la terminal y Claude Code tras cambiar variables de entorno o configuración.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No disperses las claves del Provider ascendente entre configuraciones de proyectos. Guárdalas en 9Router y deja en Claude Code solo las credenciales mínimas del router local; migrar y revocar será más sencillo.&lt;/p&gt;
&lt;h2 id=&#34;cómo-diagnosticar-errores-comunes&#34;&gt;Cómo diagnosticar errores comunes
&lt;/h2&gt;&lt;h3 id=&#34;401-o-unauthorized&#34;&gt;401 o Unauthorized
&lt;/h3&gt;&lt;p&gt;Primero confirma que la solicitud llega al 9Router local y luego revisa la API key. Si el panel de administración funciona pero el cliente devuelve 401, normalmente usa una clave incorrecta o apunta a otra instancia.&lt;/p&gt;
&lt;h3 id=&#34;404-o-endpoint-not-found&#34;&gt;404 o endpoint not found
&lt;/h3&gt;&lt;p&gt;Suele indicar que falta o sobra una parte de la ruta en la Base URL. No añadas &lt;code&gt;/v1&lt;/code&gt; por intuición; usa la dirección compatible con OpenAI que muestra actualmente 9Router y valídala con la solicitud más simple.&lt;/p&gt;
&lt;h3 id=&#34;model-not-found&#34;&gt;model not found
&lt;/h3&gt;&lt;p&gt;Revisa la lista de modelos en 9Router. El nombre original del Provider, un alias personalizado y un nombre Combo pueden ser distintos. Claude Code debe usar el nombre expuesto por el router.&lt;/p&gt;
&lt;h3 id=&#34;la-solicitud-funciona-pero-siempre-usa-fallback&#34;&gt;La solicitud funciona, pero siempre usa fallback
&lt;/h3&gt;&lt;p&gt;Revisa el estado, saldo o cuota, permisos del modelo y registros de solicitudes del Provider preferido. El fallback es una red de seguridad, no sustituye corregir la causa del fallo del modelo principal.&lt;/p&gt;
&lt;h2 id=&#34;conserva-una-configuración-mínima-de-prueba&#34;&gt;Conserva una configuración mínima de prueba
&lt;/h2&gt;&lt;p&gt;Antes de aplicar rutas complejas, conserva una línea base con un Provider, un modelo y sin fallback. Ante un problema, vuelve primero a ella: si funciona, el problema está en las reglas; si falla, revisa red, credenciales o Provider.&lt;/p&gt;
&lt;p&gt;Para problemas de instalación, permisos o entorno de proyecto de Claude Code, consulta &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/07/08/claude-code-multi-project-memory-team-workflow/&#34; &gt;memoria y Hooks de Claude Code para varios proyectos&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La idea central es dirigir la Base URL al router, hacer coincidir el nombre de modelo del router y mantener la lógica ascendente en el router. Revisa conectividad, autenticación, nombre del modelo y reglas de enrutamiento en ese orden.&lt;/p&gt;
&lt;h2 id=&#34;un-modelo-de-configuración-fácil-de-depurar&#34;&gt;Un modelo de configuración fácil de depurar
&lt;/h2&gt;&lt;p&gt;Piensa en la cadena como cuatro capas: &lt;code&gt;Claude Code → 9Router endpoint → Provider → modelo real&lt;/code&gt;. Cada una responde una sola pregunta: si el cliente llegó al router, si el router aceptó las credenciales, si una regla seleccionó un Provider y si ese Provider puede llamar al modelo. Separa también pruebas y registros por esas capas.&lt;/p&gt;
&lt;p&gt;Por ejemplo, comienza con un nombre de modelo fijo en Claude Code y asígnalo a un solo Provider en 9Router. Cuando sea estable, conviértelo en Combo y añade un segundo Provider. No expongas directamente muchos nombres ascendentes a Claude Code, o cada proyecto acumulará su propia configuración difícil de mantener.&lt;/p&gt;
&lt;h2 id=&#34;valida-con-una-solicitud-mínima-no-con-una-tarea-larga&#34;&gt;Valida con una solicitud mínima, no con una tarea larga
&lt;/h2&gt;&lt;p&gt;Después de configurar cada capa, realiza una prueba de bajo coste:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirma que el servicio escucha mediante la información de salud o la interfaz de 9Router.&lt;/li&gt;
&lt;li&gt;Envía una solicitud simple sin herramientas para validar API key y modelo.&lt;/li&gt;
&lt;li&gt;Pide a Claude Code que explique un texto breve del directorio actual.&lt;/li&gt;
&lt;li&gt;Solo entonces prueba lectura de archivos, ejecución de pruebas, contextos largos o Agents en paralelo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Las tareas largas mezclan red, permisos de herramientas, contexto y reintentos. Guarda una solicitud mínima en tus notas de diagnóstico para reutilizarla tras actualizaciones o en otro equipo.&lt;/p&gt;
&lt;h2 id=&#34;diseño-de-reglas-de-enrutamiento-estables&#34;&gt;Diseño de reglas de enrutamiento estables
&lt;/h2&gt;&lt;p&gt;Separa un modelo predeterminado de uno de alto coste. Usa el predeterminado para preguntas rutinarias, formato y cambios de bajo riesgo; selecciona explícitamente el más potente para razonamiento complejo, revisión de código o contexto largo. Así el gasto resulta explicable y los registros muestran qué tareas realmente requieren una mejora.&lt;/p&gt;
&lt;p&gt;Sé conservador con los activadores de fallback. Los errores de red, de cuota explícitos o una caída del Provider pueden justificar el cambio; una respuesta poco satisfactoria no debería reintentar automáticamente con varios Providers. Eso multiplica el consumo de tokens y dificulta reproducir resultados.&lt;/p&gt;
&lt;h2 id=&#34;lista-de-seguridad-para-despliegue-y-credenciales&#34;&gt;Lista de seguridad para despliegue y credenciales
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;No expongas 9Router en una dirección pública sin controles de acceso.&lt;/li&gt;
&lt;li&gt;Trata &lt;code&gt;DATA_DIR&lt;/code&gt;, copias de seguridad y registros como datos sensibles, pues pueden contener información de Providers.&lt;/li&gt;
&lt;li&gt;No incluyas claves ascendentes en repositorios, capturas ni instrucciones de proyectos Claude Code.&lt;/li&gt;
&lt;li&gt;Haz una copia antes de actualizar; prueba con una solicitud mínima antes de restaurar rutas de producción.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;faq-debo-configurar-9router-en-cada-proyecto&#34;&gt;FAQ: ¿Debo configurar 9Router en cada proyecto?
&lt;/h3&gt;&lt;p&gt;Normalmente no. Una variable de entorno a nivel de cliente o una herramienta de gestión puede reutilizar un endpoint entre proyectos. La configuración por proyecto solo aporta valor cuando un repositorio necesita realmente un modelo, permisos o facturación aislados.&lt;/p&gt;
&lt;h3 id=&#34;faq-por-qué-un-modelo-local-usa-fallback-con-frecuencia&#34;&gt;FAQ: ¿Por qué un modelo local usa fallback con frecuencia?
&lt;/h3&gt;&lt;p&gt;Consulta los registros de servicio en busca de falta de memoria, límite de contexto, cola de concurrencia o un nombre de modelo incorrecto. Antes de usarlo como ruta principal, valídalo de forma continua con longitudes de tareas reales, no solo con un prompt corto.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
