La biblioteca FAIRouter para C# llega a NuGet y elige modelo entre 54 opciones listas para usar
La biblioteca FAIRouter para C# ya está en NuGet, el catálogo de paquetes de .NET, en la versión 0.1.0, así que ya no hace falta compilarla desde el código fuente. El enrutador elige por sí solo el modelo de lenguaje para cada tarea, ya sea de la lista del desarrollador o de los 54 modelos populares incluidos en el paquete. Un modelo juez independiente revisa la respuesta y le asigna una puntuación de 0 a 1, mientras que el feedback humano reajusta los pesos. La instalación requiere un solo comando, dotnet add package FAI.Router, y se necesita .NET 10. • Los perfiles Quality, Balance y Price se pueden cambiar en cada solicitud • El umbral de suficiencia bar empieza a funcionar tras tres valoraciones humanas • Conexión: OpenRouter, FractalRouter o un servidor compatible con OpenAI
Procesado por IA desde Habr AI; editado por Hamidun News
La biblioteca FAIRouter, que enruta solicitudes entre modelos de lenguaje, ya está disponible en NuGet, el catálogo de paquetes de la plataforma .NET. El paquete se llama FAI.
Router, la versión actual es la 0.1.0 y ya no es necesario compilarlo desde el código fuente.
Los modelos difieren en precio, velocidad y puntos fuertes, por lo que FAIRouter elige por sí solo el ejecutor para cada tarea concreta: bien de la lista que define el desarrollador, bien de los 54 modelos populares incluidos en el paquete. Un modelo juez revisa la respuesta final y, después, el enrutador aprende del feedback humano. El esquema tiene dos partes: el enrutador elige el modelo, el juez acepta o critica el resultado, y ambos se entrenan.
Instalación y primera solicitud
Para trabajar se necesita .NET 10 y una clave de un proveedor de modelos. En los ejemplos, el autor usa OpenRouter y guarda la clave en la variable de entorno OPENROUTER_API_KEY. El proyecto de consola se crea de forma estándar y después se añade el paquete con el comando dotnet add package FAI.Router.
A continuación basta con llamar a FaiRouter.FromOpenRouterAsync y pasarle la clave, la lista de identificadores de modelos y la ruta al archivo de base de datos. En el ejemplo, los candidatos son google/gemini-2.5-flash, openai/gpt-4.1-mini y anthropic/claude-haiku-4.5. El archivo fai-router.db almacena los pesos y el registro de turnos; si no existe, se crea. Si no se indica la lista de modelos, la elección se hace entre los 54 modelos incluidos en el paquete.
El método AskAsync devuelve un objeto RouterAnswer con cuatro campos: Winner (el modelo elegido), Text (la respuesta), Score (la puntuación del juez, de 0 a 1) y Critic (las discrepancias entre lo pedido y la respuesta, punto por punto). Si la tarea pedía cuatro secciones y una tabla, y llega una sola sección sin tabla, se verá en Critic. Por defecto, el juez es openai/gpt-4o-mini, a través del mismo proveedor.
Entrenamiento, perfiles y umbral de suficiencia
Lo más interesante empieza con el feedback. La persona asigna una puntuación de 0 a 1, donde 1 significa una respuesta excelente y 0,2, una respuesta débil. Para ello se llama a router.Feedback, luego a Train con el número de épocas deseado y a Save. Los pesos se guardan en la base de datos y, en tareas similares, el enrutador tiene en cuenta la experiencia acumulada. El feedback se puede ir acumulando y entrenar el enrutador con menos frecuencia, por ejemplo una vez al día. El registro guarda los textos de las solicitudes, algo que conviene tener presente.
El equilibrio entre precio y calidad lo marcan tres perfiles predefinidos: Quality, Balance y Price. Por defecto se usa Balance, y el perfil se puede cambiar en cada solicitud mediante el parámetro weights.
Hay también otra regla: encontrar los modelos que resolverían la tarea y elegir entre ellos el más barato y rápido. Para eso sirve el umbral de suficiencia bar, que es la probabilidad mínima de que la respuesta guste a la persona. El campo Reached indica si algún modelo llegó a ese umbral. El umbral empieza a funcionar cuando se acumulan al menos tres valoraciones humanas.
AskAsync también acepta un diálogo completo. La tarea se determina por la última intervención del usuario, mientras que el modelo ve todo el historial.
Modelos propios, herramientas y agentes
Hay tres formas de conectarse: FromOpenRouterAsync para OpenRouter, FromFractalRouterAsync para FractalRouter y FromOpenAiCompatibleAsync para cualquier servidor con el protocolo OpenAI chat completions. Esta última opción sirve también para un modelo propio. El precio de ese modelo hay que indicarlo manualmente, por ejemplo Price(0, 0). Si en su servidor no existe el modelo gpt-4o-mini, en el parámetro judgeModel se indica otro modelo como juez.
Se pueden elegir no solo modelos, sino también herramientas y agentes. Para ello, al constructor de FaiRouter se le pasa una lista de objetos BaseRoutedElement y una función que ejecuta al candidato elegido. El ejemplo incluye dos variantes de búsqueda: deep-search (precio de 5 por millón de tokens de entrada y 20 por millón de tokens de salida, velocidad de 30 tokens por segundo) y fast-search (precio de 1 y 2, velocidad de 200 tokens por segundo).
En el caso de las herramientas, estas cifras son convencionales y solo importa su proporción. La función RunSearchAsync la escribe el propio desarrollador: lanza la búsqueda correspondiente y devuelve el texto. Estos candidatos arrancan con pesos aleatorios, por lo que al principio necesitan su feedback.
Licencia y documentación
El paquete se distribuye con licencia Apache-2.0. El código fuente y la documentación detallada están publicados en GitHub, y se pueden dejar comentarios y preguntas en la sección de issues. Todos los ejemplos del artículo se han elaborado con la versión 0.1.0. Para probar FAIRouter basta con un comando de instalación y unas pocas líneas de código. Los autores explicaron las matemáticas de la biblioteca, desde el vector de la tarea y la predicción de calidad hasta el juez y el entrenamiento con feedback, en un artículo aparte.
- 2 nov 2026TJ Digital: el 23% de las páginas que cita la IA empiezan con una respuesta directa, frente al 14% de las que no cita
- 2 nov 2026Arca encarga a agentes de IA tareas financieras de hasta 10 días y deja las operaciones en manos de personas
- 2 nov 2026El asistente Muse de Meta mantiene dosieres de las personas cercanas y obtiene root en Ubuntu por defecto
- 1 nov 2026Los modelos locales pierden ante Opus y Codex: 0,21 puntos en un MacBook frente a 1,00 de Codex
Preguntas frecuentes sobre la noticia
¿Qué se sabe sobre Instalación y primera solicitud?
Para trabajar se necesita .NET 10 y una clave de un proveedor de modelos. En los ejemplos, el autor usa OpenRouter y guarda la clave en la variable de entorno OPENROUTER_API_KEY. El proyecto de consola se crea de forma estándar y después se añade el paquete con el comando dotnet add package FAI.Router. A continuación basta con llamar a FaiRouter.FromOpenRouterAsync y pasarle la clave, la lista de identificadores de modelos y la ruta al archivo de base de datos. En el ejemplo, los candidatos son google/gemini-2.5-flash, openai/gpt-4.1-mini y anthropic/claude-haiku-4.5. El ar
¿Qué se sabe sobre Entrenamiento, perfiles y umbral de suficiencia?
Lo más interesante empieza con el feedback. La persona asigna una puntuación de 0 a 1, donde 1 significa una respuesta excelente y 0,2, una respuesta débil. Para ello se llama a router.Feedback, luego a Train con el número de épocas deseado y a Save. Los pesos se guardan en la base de datos y, en tareas similares, el enrutador tiene en cuenta la experiencia acumulada. El feedback se puede ir acumulando y entrenar el enrutador con menos frecuencia, por ejemplo una vez al día. El registro guarda los textos de las solicitudes, algo que conviene tener presente. El equilibrio en
¿Qué se sabe sobre Modelos propios, herramientas y agentes?
Hay tres formas de conectarse: FromOpenRouterAsync para OpenRouter, FromFractalRouterAsync para FractalRouter y FromOpenAiCompatibleAsync para cualquier servidor con el protocolo OpenAI chat completions. Esta última opción sirve también para un modelo propio. El precio de ese modelo hay que indicarlo manualmente, por ejemplo Price(0, 0). Si en su servidor no existe el modelo gpt-4o-mini, en el parámetro judgeModel se indica otro modelo como juez. Se pueden elegir no solo modelos, sino también herramientas y agentes. Para ello, al constructor de FaiRouter se le pasa una list
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
Lo esencial de la IA — una vez por semana
Siete historias que de verdad importaron, elegidas a mano. Sin ruido ni notas de prensa.
¡Listo! Revisa tu correo para la confirmación.