Instructions to use Frankenstein-Labs/Cortex.0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Frankenstein-Labs/Cortex.0 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf Frankenstein-Labs/Cortex.0:Q8_0 # Run inference directly in the terminal: llama cli -hf Frankenstein-Labs/Cortex.0:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Frankenstein-Labs/Cortex.0:Q8_0 # Run inference directly in the terminal: llama cli -hf Frankenstein-Labs/Cortex.0:Q8_0
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf Frankenstein-Labs/Cortex.0:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf Frankenstein-Labs/Cortex.0:Q8_0
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf Frankenstein-Labs/Cortex.0:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf Frankenstein-Labs/Cortex.0:Q8_0
Use Docker
docker model run hf.co/Frankenstein-Labs/Cortex.0:Q8_0
- Llama new
- LM Studio
- Jan
- Ollama
How to use Frankenstein-Labs/Cortex.0 with Ollama:
ollama run hf.co/Frankenstein-Labs/Cortex.0:Q8_0
- Unsloth Desktop
- Pi
How to use Frankenstein-Labs/Cortex.0 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Frankenstein-Labs/Cortex.0:Q8_0
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Frankenstein-Labs/Cortex.0:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Frankenstein-Labs/Cortex.0 with Docker Model Runner:
docker model run hf.co/Frankenstein-Labs/Cortex.0:Q8_0
- Lemonade
How to use Frankenstein-Labs/Cortex.0 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Frankenstein-Labs/Cortex.0:Q8_0
Run and chat with the model
lemonade run user.Cortex.0-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use Frankenstein-Labs/Cortex.0 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Frankenstein-Labs/Cortex.0:Q8_0
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default Frankenstein-Labs/Cortex.0:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Frankenstein-Labs/Cortex.0 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Frankenstein-Labs/Cortex.0:Q8_0
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "Frankenstein-Labs/Cortex.0:Q8_0" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
File size: 11,732 Bytes
c429240 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 | ---
language:
- fr
- en
license: mit
tags:
- code
- python
- pintade
- laboratoires frankenstein
---
# Cortex.0
## Présentation
**Cortex.0** est un modèle d'intelligence artificielle conçu par **Frankenstein-Labs**,
sous la direction d'**Abdoulaye Coumbassa** (16 ans, créateur guinéen).
Ce modèle est spécialisé dans un domaine unique : **l'informatique**.
Il ne cherche pas à tout faire. Il ne cherche pas à être bon partout. Il fait une
seule chose, et il la fait bien : écrire, lire, corriger et expliquer du code.
Cortex.0 est né d'une idée simple : un modèle n'a pas besoin de connaître la poésie,
la philosophie ou l'histoire pour être utile à un développeur. Il a besoin de
comprendre le code. C'est ce pour quoi il a été construit, et c'est ce pour quoi il
est bon.
## Le créateur
**Abdoulaye Coumbassa**, 16 ans, créateur guinéen, est à l'origine de ce modèle.
Cortex.0 est un modèle **guinéen** et **francophone**, développé par
**Frankenstein-Labs**.
C'est un projet africain. Il montre qu'un modèle spécialisé, entraîné avec des moyens
limités, peut rendre de vrais services sur un domaine précis, sans avoir besoin des
moyens d'un grand laboratoire.
## Ce qu'il sait faire
Cortex.0 est taillé pour le code et le développement :
- **Écrire du code** — fonctions, classes, scripts, algorithmes
- **Lire et analyser le code source** — comprendre un fichier existant
- **Corriger des bugs** — trouver la cause et proposer la correction
- **Expliquer des programmes** — décrire ce que fait le code, ligne par ligne
- **Écrire des tests** — tests unitaires et cas limites
- **Analyser une base de code** — suivre les appels, repérer les dépendances
- **Utiliser la ligne de commande** — commandes shell, scripts, outils
- **Raisonner sur des problèmes techniques** — décomposer, comparer, décider
- **Refactoriser** — simplifier et nettoyer du code existant
- **Documenter** — écrire des commentaires et des docstrings
## Langues supportées
- **Français** — Langue principale et domaine de prédilection, où il offre ses
meilleurs résultats. C'est la langue de travail du modèle.
- **Anglais / Chinois** — Compréhension de base limitée. Ce n'est pas son domaine
principal. Il comprend un peu, mais il ne faut pas compter sur lui pour ces
langues.
## Résultats
Les résultats ci-dessous portent sur les tâches d'**informatique** et de
**génération de code**. Ce sont les tâches pour lesquelles le modèle a été conçu.
### Génération de code
| Tâche | Résultat |
| :--- | :--- |
| Écrire une fonction à partir d'une description | Très bon |
| Écrire un script complet | Très bon |
| Écrire des tests unitaires | Bon |
| Compléter du code existant | Très bon |
| Traduire une idée en code | Très bon |
### Correction et analyse
| Tâche | Résultat |
| :--- | :--- |
| Trouver un bug dans une fonction | Très bon |
| Expliquer un code inconnu | Très bon |
| Proposer une correction | Bon |
| Suivre un appel à travers plusieurs fichiers | Bon |
| Repérer une erreur de logique | Bon |
### Comparaison
Cortex.0 est un modèle spécialisé, avec environ **40 milliards de paramètres**.
Sur les tâches d'informatique, il se rapproche des grands modèles généralistes
comme les modèles **OpenAI**, alors qu'il est bien plus petit et bien plus
spécialisé.
| Domaine | Cortex.0 | Modèles généralistes (OpenAI) |
| :--- | :--- | :--- |
| Écriture de code | Très bon | Très bon |
| Explication de code | Très bon | Très bon |
| Correction de bugs | Bon | Très bon |
| Français technique | Très bon | Bon |
| Conversation générale | Faible | Très bon |
| Littérature et poésie | Faible | Très bon |
| Philosophie et histoire | Faible | Très bon |
| Sciences fondamentales | Faible | Bon |
Sur son domaine, Cortex.0 rivalise. Hors de son domaine, il ne rivalise pas, et il
ne le prétend pas.
### Points forts
- Le **français technique** : vocabulaire précis, phrases claires, pas de mélange
avec l'anglais.
- L'**explication de code** : il décrit ce que fait un programme sans se perdre.
- L'**écriture de code** : il produit du code lisible et structuré.
- La **taille** : un modèle spécialisé, léger, qui peut tourner localement.
### Points faibles
- La **conversation générale** : hors informatique, il n'est pas fiable.
- La **création de contenu** : histoires, poésie, chansons — ce n'est pas son
domaine.
- Les **sciences fondamentales** : mathématiques avancées, physique, chimie.
- L'**anglais et le chinois** : compréhension limitée.
## Ce qu'il ne fait pas
Ce modèle n'est pas conçu pour :
- la conversation générale
- la littérature
- la philosophie
- les langues
- les sciences fondamentales (mathématiques avancées, physique, chimie)
- la création de contenu (histoires, poésie, chansons)
- la traduction
- les conseils personnels
- toute autre tâche hors du domaine informatique
Si vous lui demandez autre chose que de l'informatique, il ne sera pas bon. Ce n'est
pas son domaine. Ce n'est pas ce pour quoi il a été fait. Ce n'est pas ce pour quoi
il a été entraîné.
## Techniques d'information
- **Créateur :** Abdoulaye Coumbassa (Frankenstein-Labs)
- **Origine :** Modèle guinéen / français
- **Architecture :** silex
- **Paramètres :** 40B
- **Format :** GGUF (Q8_0)
- **Taille du fichier :** 39,40 Gio
- **Contexte :** 262 144 jetons
- **Quantification :** Q8_0
- **Licence :** MIT
## Utilisation
```bash
# llama.cpp
llama-cli -hf Frankenstein-Labs/Cortex.0 --hf-file Cortex.0-Q8_0.gguf -p "Écris une fonction Python"
# serveur compatible OpenAI
llama-server -hf Frankenstein-Labs/Cortex.0 --hf-file Cortex.0-Q8_0.gguf --port 8080
```
## Paramètres de génération recommandés
| Paramètre | Valeur |
| :--- | :--- |
| Température | 1.0 |
| Top-p | 0.95 |
| Top-k | 20 |
| Budget de sortie | au moins 32 768 jetons |
## Limites
- Modèle spécialisé : les performances hors informatique ne sont pas garanties.
- Le code généré doit être testé et relu avant utilisation.
- Un long raisonnement augmente la latence.
- Le contexte maximal est une limite de capacité, non une garantie d'exactitude.
## En résumé
**Cortex.0** est un modèle **guinéen** et **africain**, créé par **Abdoulaye
Coumbassa** pour **Frankenstein-Labs**. Il est spécialisé en **français** et en
**informatique**. Il sait écrire du code, lire du code, corriger des bugs et
expliquer des programmes. Sur son domaine, il se rapproche des grands modèles.
Pour tout le reste, il n'est pas puissant.
---
# Intégration OpenHands
Cortex.0 est branché au SDK OpenHands comme **moteur de raisonnement de la
boucle d'action-perception**. Le modèle n'est pas un outil appelé de
l'extérieur : c'est le `llm` que le SDK consulte à chaque tour, et les outils
du SDK (terminal, éditeur de fichiers, task tracker, glob, grep) forment son
espace d'action.
```
Boucle d'événements OpenHands
│ observation
▼
Agent (SDK) ──chat/completions──▶ serveur d'inférence Cortex.0
│ │
│◀──────── tool_calls ───────────────┘
▼
sandbox : terminal · fichiers · navigateur
```
## Statut
Validé de bout en bout : un vrai point d'accès compatible OpenAI, le vrai SDK,
une vraie boucle d'agent. Le test a produit un `ActionEvent`, un
`ObservationEvent` (l'outil terminal a réellement exécuté dans le sandbox) et
un `MessageEvent` final.
## Installation
```bash
pip install -r requirements.txt
```
## Lancer le serveur d'inférence
Le modèle demande environ 45 Gio de RAM en Q8_0, ou un GPU de 48 Go de VRAM.
```bash
# llama.cpp — le plus simple
./scripts/serve_llamacpp.sh Cortex.0-Q8_0.gguf 8080
# SGLang — meilleur débit pour cette architecture MoE
./scripts/serve_sglang.sh RecursiveSI/flint 8080
```
## Utilisation
```bash
# vérifier le point d'accès, puis s'arrêter
python3 -m cortex0.cli --check
# lancer une tâche
python3 -m cortex0.cli "Corrige le bug dans utils.py et lance les tests"
```
```python
from cortex0 import Cortex0Agent, Cortex0Settings
settings = Cortex0Settings.load()
settings.base_url = "http://127.0.0.1:8080/v1"
agent = Cortex0Agent(settings=settings) # sonde le serveur, puis construit l'agent
print(agent.summary())
agent.run("Écris un serveur HTTP en Python et teste-le.")
```
## Configuration
Modifiez `configs/cortex0.yaml`. Chaque champ peut être remplacé par une
variable d'environnement `CORTEX0_<CHAMP>` :
```bash
CORTEX0_BASE_URL=http://gpu:8080/v1 CORTEX0_TEMPERATURE=0.7 python3 -m cortex0.cli --check
```
| Champ | Défaut | Rôle |
|---|---|---|
| `base_url` | `http://127.0.0.1:8080/v1` | point d'accès Cortex.0 |
| `served_model_name` | `cortex0` | nom servi par le point d'accès |
| `model` | `openai/cortex0` | nom utilisé par litellm |
| `temperature` | `1.0` | recommandé pour ce modèle |
| `top_p` / `top_k` | `0.95` / `20` | recommandés pour ce modèle |
| `max_output_tokens` | `32768` | le raisonnement long a besoin de marge |
| `tools` | terminal, file_editor, task_tracker, glob, grep | espace d'action du modèle |
| `native_tool_calling` | `true` | utilise le protocole d'outils du modèle |
| `num_retries` | `5` | survit à un incident réseau ou sandbox |
## Robustesse
- `probe_server()` vérifie `/models`, puis le chat, puis un vrai aller-retour
d'appel d'outil **avant** que l'agent soit construit : un point d'accès cassé
échoue avec un message clair au lieu d'une trace au milieu d'une exécution.
- Si le point d'accès répond mais n'émet aucun `tool_calls`, l'intégration
avertit que le modèle n'est peut-être pas entraîné aux outils, au lieu de
prétendre le contraire.
- `num_retries` absorbe les défaillances transitoires du sandbox.
- Un condenseur résumant garde les longues sessions dans la fenêtre de contexte.
## Performance
Changer le nombre d'experts MoE actifs ne rend **pas** le modèle plus fort.
C'est mesuré sur un vrai modèle MoE : passer de 8 à 15 experts tourne 1,43 fois
plus lentement, et 64 experts plantent par manque de mémoire. Le nombre
d'experts est une propriété apprise, pas un réglage.
Voir [`docs/experts.md`](docs/experts.md) pour les mesures et pour ce qui
améliore réellement le système. Pour reproduire sur n'importe quel GGUF MoE :
```bash
python3 scripts/experiments/bench_experts.py Cortex.0-Q8_0.gguf --experts 2,6,15
```
## Arborescence
```
cortex0/
settings.py configuration, YAML + environnement
llm.py lie le SDK au point d'accès Cortex.0
health.py sonde : joignable, chat, appels d'outils
agent.py construit l'agent et enregistre les outils
fusion.py Cortex0Agent — le système unifié
cli.py ligne de commande
prompts/
cortex0_system.txt prompt système de l'agent
configs/
cortex0.yaml configuration par défaut
scripts/
serve_llamacpp.sh servir avec llama.cpp
serve_sglang.sh servir avec SGLang
experiments/
bench_experts.py mesure l'effet du nombre d'experts
tests/
fake_server.py serveur compatible OpenAI de substitution
test_fusion.py validation de bout en bout
docs/
experts.md mesures sur les experts
```
## Ce que ce n'est pas
Ceci est l'**intégration**. Elle ne rend pas le modèle lui-même plus puissant :
changer les capacités d'un modèle demande de l'entraînement, donc des GPU. Si
les appels d'outils sont faibles en pratique, le modèle doit être affiné sur
des trajectoires d'usage d'outils.
## Test
```bash
python3 tests/test_fusion.py
```
|