Biblioteca FAIRouter para C# chega ao NuGet e escolhe o modelo entre 54 opções prontas
A biblioteca FAIRouter para C# chegou ao NuGet, o catálogo de pacotes do .NET, na versão 0.1.0. Com isso, não é mais necessário compilá-la a partir do código-fonte. O roteador escolhe sozinho o modelo de linguagem mais adequado à tarefa, seja a partir da lista definida pelo desenvolvedor, seja entre 54 modelos populares que acompanham o pacote. Um modelo juiz separado avalia a resposta e atribui uma nota de 0 a 1, enquanto o feedback humano ajusta os pesos. A instalação leva um único comando, dotnet add package FAI.Router, e exige o .NET 10. • Os perfis Quality, Balance e Price podem ser trocados a cada requisição • O limite de suficiência bar passa a funcionar após três avaliações humanas • Conexão: OpenRouter, FractalRouter ou servidor compatível com OpenAI
Processado por IA de Habr AI; editado por Hamidun News
A biblioteca FAIRouter, que roteia requisições entre modelos de linguagem, agora está disponível no NuGet, o catálogo de pacotes da plataforma .NET. O pacote se chama FAI.
Router, a versão atual é a 0.1.0, e não é mais preciso compilá-lo a partir do código-fonte.
Cada modelo tem preço, velocidade e pontos fortes diferentes, por isso o FAIRouter escolhe sozinho quem vai executar cada tarefa: ou a partir de uma lista definida pelo desenvolvedor, ou entre 54 modelos populares incluídos no pacote. A resposta pronta é verificada por um modelo juiz, e depois o roteador aprende com o feedback humano. O esquema tem duas partes: o roteador escolhe o modelo, o juiz aceita ou critica o resultado, e os dois são treinados.
Instalação e primeira requisição
É preciso ter o .NET 10 e uma chave de API de um provedor de modelos. Nos exemplos, o autor usa o OpenRouter e guarda a chave na variável de ambiente OPENROUTER_API_KEY. O projeto de console é criado da forma padrão, e em seguida o pacote é adicionado com o comando dotnet add package FAI.Router.
Depois, basta chamar FaiRouter.FromOpenRouterAsync e passar a chave, a lista de identificadores de modelos e o caminho do arquivo de banco de dados. No exemplo, os candidatos são google/gemini-2.5-flash, openai/gpt-4.1-mini e anthropic/claude-haiku-4.5. O arquivo fai-router.db armazena os pesos e o registro de turnos; se ele não existir, é criado. Se a lista de modelos não for informada, a escolha é feita entre os 54 modelos que acompanham o pacote.
O método AskAsync retorna um objeto RouterAnswer com quatro campos: Winner (o modelo escolhido), Text (a resposta), Score (a nota do juiz, de 0 a 1) e Critic (as divergências, item por item, entre o pedido e a resposta). Se a tarefa pedia quatro seções e uma tabela, mas veio uma seção sem tabela, isso aparece no Critic. Por padrão, o juiz é o openai/gpt-4o-mini, acessado pelo mesmo provedor.
Treinamento, perfis e limite de suficiência
O mais interessante começa com o feedback. A pessoa dá uma nota de 0 a 1, em que 1 significa uma resposta excelente e 0,2, uma resposta fraca. Para isso, chama-se router.Feedback, depois Train com o número de épocas desejado e, por fim, Save. Os pesos são gravados no banco, e, em tarefas semelhantes, o roteador leva em conta a experiência acumulada. É possível acumular feedbacks e treinar o roteador com menos frequência, por exemplo uma vez por dia. O registro guarda os textos das requisições, e vale ter isso em mente.
O equilíbrio entre preço e qualidade é definido por três perfis prontos: Quality, Balance e Price. Por padrão, é usado o Balance, e o perfil pode ser trocado a cada requisição pelo parâmetro weights.
Há também outra regra: encontrar os modelos capazes de resolver a tarefa e escolher, entre eles, o mais barato e rápido. Para isso existe o limite de suficiência bar, que é a probabilidade mínima de a resposta agradar a uma pessoa. O campo Reached mostra se algum modelo atingiu esse limite. Ele só passa a funcionar quando houver pelo menos três avaliações humanas acumuladas.
O AskAsync também aceita uma conversa inteira. A tarefa é definida pela última mensagem do usuário, mas o modelo enxerga todo o histórico.
Modelos próprios, ferramentas e agentes
Há três formas de conexão: FromOpenRouterAsync para o OpenRouter, FromFractalRouterAsync para o FractalRouter e FromOpenAiCompatibleAsync para qualquer servidor com o protocolo OpenAI chat completions. A última opção também serve para um modelo próprio. O preço desse modelo precisa ser informado manualmente, por exemplo Price(0, 0). Se o seu servidor não tiver o modelo gpt-4o-mini, outro modelo juiz pode ser indicado no parâmetro judgeModel.
É possível escolher não só modelos, mas também ferramentas e agentes. Para isso, o construtor do FaiRouter recebe uma lista de objetos BaseRoutedElement e uma função que executa o candidato escolhido. No exemplo, há duas opções de busca: deep-search (preço de 5 por milhão de tokens de entrada e 20 por milhão de tokens de saída, velocidade de 30 tokens por segundo) e fast-search (preço de 1 e 2, velocidade de 200 tokens por segundo).
No caso das ferramentas, esses números são convencionais, e o que importa é apenas a proporção entre eles. A função RunSearchAsync é escrita pelo próprio desenvolvedor: ela executa a busca escolhida e retorna o texto. Esses candidatos começam com pesos aleatórios, por isso, no início, precisam do seu feedback.
Licença e documentação
O pacote é distribuído sob a licença Apache-2.0. O código-fonte e a documentação detalhada estão publicados no GitHub, e comentários e dúvidas podem ser deixados na seção de issues. Todos os exemplos do artigo foram feitos com a versão 0.1.0. Para testar o FAIRouter, bastam um comando de instalação e algumas linhas de código. Os autores explicaram a matemática da biblioteca, do vetor da tarefa e da previsão de qualidade até o juiz e o treinamento com feedback, em um artigo separado.
- 2 de nov. de 2026TJ Digital: 23% das páginas citadas por IA começam com resposta direta, contra 14% das não citadas
- 2 de nov. de 2026Arca entrega a agentes de IA tarefas financeiras de até 10 dias e deixa as transações com humanos
- 2 de nov. de 2026Assistente Muse, da Meta, mantém dossiê sobre pessoas próximas e recebe root no Ubuntu por padrão
- 1 de nov. de 2026Modelos locais perdem para Opus e Codex: 0,21 ponto no MacBook contra 1,00 do Codex
Perguntas frequentes sobre a notícia
O que se sabe sobre Instalação e primeira requisição?
É preciso ter o .NET 10 e uma chave de API de um provedor de modelos. Nos exemplos, o autor usa o OpenRouter e guarda a chave na variável de ambiente OPENROUTER_API_KEY. O projeto de console é criado da forma padrão, e em seguida o pacote é adicionado com o comando dotnet add package FAI.Router. Depois, basta chamar FaiRouter.FromOpenRouterAsync e passar a chave, a lista de identificadores de modelos e o caminho do arquivo de banco de dados. No exemplo, os candidatos são google/gemini-2.5-flash, openai/gpt-4.1-mini e anthropic/claude-haiku-4.5. O arquivo fai-router.db armaz
O que se sabe sobre Treinamento, perfis e limite de suficiência?
O mais interessante começa com o feedback. A pessoa dá uma nota de 0 a 1, em que 1 significa uma resposta excelente e 0,2, uma resposta fraca. Para isso, chama-se router.Feedback, depois Train com o número de épocas desejado e, por fim, Save. Os pesos são gravados no banco, e, em tarefas semelhantes, o roteador leva em conta a experiência acumulada. É possível acumular feedbacks e treinar o roteador com menos frequência, por exemplo uma vez por dia. O registro guarda os textos das requisições, e vale ter isso em mente. O equilíbrio entre preço e qualidade é definido por trê
O que se sabe sobre Modelos próprios, ferramentas e agentes?
Há três formas de conexão: FromOpenRouterAsync para o OpenRouter, FromFractalRouterAsync para o FractalRouter e FromOpenAiCompatibleAsync para qualquer servidor com o protocolo OpenAI chat completions. A última opção também serve para um modelo próprio. O preço desse modelo precisa ser informado manualmente, por exemplo Price(0, 0). Se o seu servidor não tiver o modelo gpt-4o-mini, outro modelo juiz pode ser indicado no parâmetro judgeModel. É possível escolher não só modelos, mas também ferramentas e agentes. Para isso, o construtor do FaiRouter recebe uma lista de objetos
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.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.