Cette page est traduite de la documentation anglaise. Les commandes, identifiants et exemples sont inchangés. Runtime 7.24.4 · SDK 2.6.7. Source anglaise
Intégration du moteur local (AX Code)
Statut : actif Portée : état actuel Dernière revue : 2026-09-19 Responsable : runtime AX Code Voir aussi : document ax-engine LOCAL-ENGINE-CLIENTS
Préparation du runtime local
Sélectionnez runtime AX-Engine dans /connect, puis Choisir un modèle. AX Code
configure le runtime local et le démarre lorsque le modèle choisi est nécessaire.
Il n’y a ni formulaire d’URL de point de terminaison ni de clé d’API. Voir le statut, Arrêter le runtime local
(lorsqu’il tourne) et Désactiver gèrent le processus local.
AX Code utilise le backend HTTP en sidecar pour AX Engine. Il démarre
ax-engine serve, suit le processus dont il a la charge et résout automatiquement l’adresse
de boucle locale et le port. L’utilisateur choisit un modèle ; AX Code gère la
configuration du transport.
AX Code (TypeScript)
-> select local model -> ensure/prepare -> spawn ax-engine serve
-> managed loopback /v1 -> @ai-sdk/openai-compatible language model
Choisir un modèle explicitement enregistre le cycle de vie géré et efface les anciens
réglages de point de terminaison et de clé d’attache. Cela remplace aussi une valeur AX_ENGINE_HOST persistante.
Les clients SDK plus anciens conservent l’API d’attache héritée, limitée à la boucle locale, et sa validation
d’authentifiants. Ce chemin de compatibilité ne fait pas partie du menu des fournisseurs.
AX Code ne lie pas le SDK d’AX Engine dans le processus. AX Engine possède l’exécution du modèle, et AX Code possède le cycle de vie du processus côté client. L’éligibilité de l’hôte, la préparation du modèle et les contrôles d’appel d’outils en direct s’appliquent toujours.
Le démarrage à froid a une limite de disponibilité de 600 secondes. Le temps de démarrage dépend de la taille du modèle, du débit de stockage et de la mémoire disponible. Un démarrage épuisé arrête le tour avec le journal du serveur et le chemin du modèle ; AX Code ne relance pas automatiquement un autre chargement à froid et ne change pas de fournisseur. Résolvez le problème signalé avant de réessayer explicitement. L’enveloppe de préparation du modèle, y compris l’attente du verrou de cycle de vie et la découverte des capacités, est limitée à 660 secondes. L’expiration annule la préparation en attente et arrête les nouveaux essais automatiques. Annuler une requête arrête aussi l’attente immédiatement, même si une dépendance de préparation n’a pas encore répondu. Les réponses de santé qui arrivent après l’échéance de disponibilité, ou après la sortie du processus possédé, ne peuvent pas établir la disponibilité.
Une fois prêt, le moteur reste résident d’un tour de conversation à l’autre. Terminer ou annuler le tour initiateur n’arrête pas le moteur prêt. Annuler pendant que le démarrage est encore en cours met fin à cette tentative et retire son enregistrement de processus. Utilisez Arrêter le runtime local pour arrêter explicitement un moteur résident.
AX Code suit l’emplacement de cache Hugging Face standard et respecte le
choix de stockage de l’utilisateur, y compris les disques locaux et les montages SMB et NFS. La
résolution du cache est HF_HUB_CACHE, puis HF_HOME/hub, puis
XDG_CACHE_HOME/huggingface/hub, puis ~/.cache/huggingface/hub.
Un chemin de modèle configuré explicitement ou déjà préparé l’emporte sur la
découverte de cache. AX Code ne déplace pas les poids et ne remplace pas ces choix
selon le type de stockage. Les diagnostics de démarrage indiquent le chemin réel du modèle, afin que
les utilisateurs puissent examiner la disponibilité et la performance de lecture dans le stockage choisi.
Pour un moteur déjà présent, AX Code fait jusqu’à trois sondes de santé, chacune limitée à deux secondes et séparée de 250 millisecondes, avant de redémarrer un processus qui ne répond pas. Annuler la requête conserve le processus existant.
Pourquoi un sidecar
| Facteur | Choix du sidecar |
|---|---|
| Langage hôte | Runtime d’agent Node/Bun, avec une frontière de processus natif explicite |
| Isolation | Les modèles de plusieurs Go et les plantages natifs restent hors du processus de l’agent |
| Mise à niveau | Plancher fourni borné par version, plus une surcouche gérée facultative, sans reconstruire ax-code |
| Modèle de fournisseur | Même chemin compatible OpenAI que les autres fournisseurs locaux ou cloud |
| Multi-client | Un serveur peut être contrôlé en santé et arrêté via server.json |
Phases du cycle de vie
Implémentation : packages/ax-code/src/provider/ax-engine/lifecycle.ts
| Phase | Moment (correspondance AX Code) |
|---|---|
unavailable |
L’éligibilité de la plateforme échoue |
missing_dependency |
Binaire absent / version trop ancienne / non exécutable |
missing_model |
Chemin du modèle non préparé |
starting |
Processus serveur enregistré, mais pas encore prêt |
ready |
server.ready et santé du processus OK |
degraded |
Prêt, mais l’inspection des capacités indique un appel d’outils non pris en charge |
error |
Blocages d’échec de santé ou de démarrage sur une tentative en cours |
L’ordre de gravité correspond à ax-engine docs/LOCAL-ENGINE-CLIENTS.md.
Code associé
| Domaine | Chemin |
|---|---|
| Lancement du serveur / santé | packages/ax-code/src/provider/ax-engine/server.ts |
| Chargeur de fournisseur (géré + attache) | packages/ax-code/src/provider/ax-engine/provider-loader.ts |
| Runtime local du TUI | packages/ax-code/src/cli/tui/component/dialog-provider.tsx |
| Assistants d’actions locales | packages/ax-code/src/cli/tui/component/dialog-provider-options.ts |
| Statut agrégé | packages/ax-code/src/provider/ax-engine/status.ts |
| Correspondance des phases | packages/ax-code/src/provider/ax-engine/lifecycle.ts |
| Politique de modèles | Sélection de modèles AX Engine |
Le provisionnement géré d’un sidecar épinglé n’est pas une intégration dans le processus. Les versions
Darwin-arm64 placent engine/<version>/ à côté de la CLI ; ax-code providers ax-engine install
est la surcouche ou le metteur à jour lorsqu’une épingle plus récente est publiée.
Hors objectifs
- Remplacer le sidecar par une intégration du SDK dans le processus, dans AX Code
- Adopter gRPC comme transport de conversation principal
- Un cadrage de conversation par socket Unix personnalisé, ou non OpenAI, pour les clients de première partie
- Intégrer les poids des modèles dans l’installateur AX Code