>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Rust

Pourquoi créer un langage de programmation entier pour l'orchestration de réseaux de neurones

Quand vous essayez de construire un système complexe basé sur des LLM en Python ou TypeScript, le code se retrouve rapidement enseveli sous le boilerplate d'infrastructure. Vous devez configurer manuellement les files d'attente de messages, écrire une logique de nouvelle tentative, persister l'état intermédiaire dans une base de données, et trouver des solutions de contournement pour attendre les réponses des utilisateurs. Les langages à usage général ne savent rien des spécificités de l'appel aux modèles de langage ou de la nécessité de mettre en pause un processus pendant quelques jours.

Les développeurs de WeaveMind ont décidé de s'attaquer radicalement au problème. Au lieu d'une autre bibliothèque, ils construisent Weft — un langage de programmation à part entière où les LLM, les API externes, les bases de données et l'intervention humaine sont des éléments de première classe du langage.

Pourquoi un nouveau langage est nécessaire

L'idée centrale derrière Weft est de libérer les ingénieurs de l'écriture de la structure des services. Les connexions entre les modèles, les bases de données et la logique sont validées par le compilateur avant même que le programme ne s'exécute.

Le projet est actuellement réécrit activement pour s'aligner sur le concept MVP, et la version officielle est prévue pour août 2026. Néanmoins, le code source est ouvert, et vous pouvez explorer l'approche proposée dès maintenant.

Principales fonctionnalités architecturales

Humain dans la boucle sans services supplémentaires

Si la logique métier nécessite l'approbation d'un responsable ou la saisie de données par un opérateur, le processus s'arrête à l'instruction concernée. Il n'est pas nécessaire de créer une base de données pour les statuts, de configurer des webhooks, ou d'interroger les API à intervalles réguliers. Un programme qui attend un clic utilisateur pendant trois secondes s'écrit exactement de la même manière qu'un scénario avec une attente de trois jours.

Deux formes de représentation

Le code Weft est simultanément un scénario textuel et un graphe visuel. Ce n'est pas simplement une interface graphique sur un fichier de configuration. Modifier un nœud sur le diagramme modifie le texte source, et vice versa. Les ingénieurs peuvent travailler avec du texte tandis que les analystes visualisent un diagramme de processus clair.

Exécution fiable via Restate

Sous le capot, le moteur Restate est utilisé. Si le serveur génère une erreur, redémarre ou perd la connectivité réseau pendant un appel LLM, l'exécution reprend à partir du point d'échec sans perdre le contexte accumulé.

Typage de bout en bout

Le compilateur vérifie les types de données sur l'ensemble de la chaîne. Si un nœud produit un objet d'une structure spécifique et que le suivant attend une chaîne simple, le compilateur signale immédiatement l'erreur. Cela permet de détecter les fautes de frappe dans les champs JSON dès la phase d'écriture du code.

À quoi ressemble un scénario Weft

La syntaxe du langage est déclarative et axée sur la liaison des blocs :

topic = Text { label: "Topic" value: "the silence between stars" } llm_config = LlmConfig { label: "Config" model: "anthropic/claude-sonnet-4.6" systemPrompt: "Write a short, beautiful poem (4-6 lines) about the given topic." temperature: "0.8" } poet = LlmInference -> (response: String) { label: "Poet" } poet.prompt = topic.value poet.config = llm_config.config output = Debug { label: "Poem" } output.data = poet.response

Dans ce petit exemple, quatre nœuds sont déclarés : le texte, la configuration du modèle, l'inférence LLM elle-même, et la sortie de débogage. Les connexions entre eux sont établies en passant explicitement les champs.

Sous le capot

Le cœur du compilateur, l'orchestrateur et l'exécuteur sont écrits en Rust. L'interface web du tableau de bord est construite avec SvelteKit (Svelte 5).

Tous les blocs disponibles se trouvent dans le répertoire catalog/. Chaque nouveau bloc est décrit par deux fichiers dans un dossier séparé :

  • backend.rs définit la logique côté serveur en Rust
  • frontend.ts spécifie le rendu du nœud, les ports et les champs de configuration dans l'interface utilisateur

Un script spécial les lie automatiquement au tableau de bord et au runtime. L'ajout de nœuds personnalisés s'avère assez simple.

Le répertoire actuel inclut déjà des blocs pour travailler avec les LLM, exécuter du code Python, envoyer des messages vers Telegram, Discord, Slack et WhatsApp, travailler avec Postgres, et la recherche web.

État actuel et licence

Le projet est à un stade précoce de développement. Les auteurs indiquent ouvertement dans le README que l'architecture est encore en formation, donc des changements cassants sont possibles.

Weft est distribué sous la licence O'Saasy (une version modifiée du MIT). Elle permet l'utilisation gratuite, la modification et l'auto-hébergement, mais interdit l'exécution d'un service commercial payant basé sur ce code qui entre en concurrence avec les auteurs.

Qui devrait suivre le projet

Weft est intéressant comme tentative de repenser l'approche de l'orchestration des agents de réseaux de neurones. Si vous êtes fatigué de lutter contre les graphes d'appels complexes dans les langages à usage général et que vous cherchez un outil avec une tolérance aux pannes intégrée, le dépôt mérite définitivement d'être ajouté aux favoris.

Projets similaires