Skip to content

FlyBrain : routeur qui baisse la RAM de flycoder et flycoder:fast - #6

Merged
Tromset merged 1 commit into
mainfrom
claude-code/determined-cori-tpgv6h
Oct 3, 2026
Merged

Tromset merged 1 commit into
mainfrom
claude-code/determined-cori-tpgv6h

Conversation

@Tromset

@Tromset Tromset commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Résumé

FlyBrain est un petit serveur Node 22 sans dépendance. Il se place devant Ollama sur le port 11435 et répond aux noms flycoder et flycoder:fast. Chaque demande est aiguillée vers un seul expert, et un seul expert reste en mémoire.

  • Règles (aucun coût) : les demandes avec outils (agents), de plus de 6 000 caractères, avec plusieurs blocs de code, une spécification en liste ou un mot comme débogue, algorithme ou erreur vont vers le gros modèle. Les questions courtes sans code vont vers le petit.
  • Micro-modèle flycoder:router (Qwen3.5 0.8B) : il tranche les demandes ambiguës. S'il échoue ou si sa réponse est illisible, la demande part vers le gros modèle.
  • Mémoire de conversation : une conversation garde son expert et ne peut que monter vers le plus fort. Ordonnanceur : l'ancien expert est déchargé avant le chargement du suivant, et le micro-modèle est déchargé avant le 12B.
  • flycoder : 4B pour les demandes simples, 12B pour les difficiles, réflexion forcée.
  • flycoder:fast : nouveau flycoder:0.2-beta-lite (Qwen3.5 2B) pour les demandes simples, 4B pour les autres.

Les modèles 0.2 publiés ne changent pas. FlyBrain est facultatif.

Mesures (serveur Linux 16 Go, CPU, poids GGUF)

Cas Sans FlyBrain Avec FlyBrain
flycoder, demande simple 10,5 Gio 6,1 Gio
flycoder, demande difficile 10,5 Gio 10,5 Gio
flycoder:fast, demande simple 4,6 Gio 3,7 Gio
flycoder:fast, demande difficile 4,6 Gio 4,6 Gio

Routage : 59 demandes étiquetées sur 60 sont bien aiguillées (node brain/eval-router.mjs). Aucune demande difficile n'est partie vers le petit modèle. Les 20 exercices du banc vont tous au gros modèle, donc la qualité mesurée par le banc reste la même. Les règles ont été retouchées une fois après une première mesure sur ces mêmes demandes. Rien n'a encore été mesuré sur Mac avec MLX.

Fichiers

  • brain/router.mjs, brain/flybrain.mjs, brain/eval-router.mjs
  • Modelfile.router, Modelfile.lite
  • install.sh construit les deux nouveaux modèles et copie le serveur dans ~/.flycoder/brain (--no-brain pour s'en passer). scripts/publish.sh publie les tags router et 0.2-beta-lite.
  • tests/router.test.mjs couvre les règles, le repli, la mémoire, l'ordonnanceur et un faux Ollama de bout en bout (API native, OpenAI et Anthropic).
  • README, Documentation et page ollama.com mis à jour. La commande ollama launch utilise maintenant le nom publié delairvictor9/flycoder.

Vérification

  • npm test : 62/62
  • Test de bout en bout avec Ollama 0.35.1 et les vrais modèles GGUF : réponses natives, /v1/chat/completions et /v1/messages en flux, en-têtes x-flybrain-*, un seul expert dans ollama ps.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HpBMmLezKyK7FADYUBiPmx


Generated by Claude Code

FlyBrain is a dependency-free Node server in front of Ollama (port 11435)
that answers to flycoder and flycoder:fast. Cheap rules settle clear
requests, a Qwen3.5 0.8B micro-router decides the rest, and only one
expert is kept in memory. Simple requests go to a smaller expert; hard
requests, agent requests with tools and long contexts keep the strong one.

- brain/router.mjs, brain/flybrain.mjs, brain/eval-router.mjs
- Modelfile.router (Qwen3.5 0.8B) and Modelfile.lite (Qwen3.5 2B)
- install.sh builds both and installs the server; publish.sh pushes them
- tests for rules, fallback, conversation memory, scheduler and a fake
  Ollama end to end; labelled routing prompts in tests/fixtures

Measured on a 16 GB Linux server (GGUF, CPU): simple flycoder requests
use 6.1 GiB instead of 10.5, simple flycoder:fast requests 3.7 instead
of 4.6; hard requests are unchanged. Routing: 59/60 labelled prompts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HpBMmLezKyK7FADYUBiPmx
@Tromset
Tromset marked this pull request as ready for review October 3, 2026 11:37
@Tromset
Tromset merged commit 0c65e05 into main Oct 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants