On peut forcer un LLM a ne produire que des reponses valides

YouTube vient de publier en open source un projet appele STATIC qui resout un probleme que la plupart des gens ignorent: les LLMs peuvent dire n’importe quoi, mais parfois vous avez besoin qu’ils choisissent uniquement parmi une liste specifique. Le probleme Quand un LLM genere du texte, il choisit un token (mot/chiffre) a la fois parmi un vocabulaire de ~32 000 options. C’est ideal pour la conversation, mais terrible quand vous avez besoin qu’il produise quelque chose de precis: un identifiant de produit valide, un code medical, ou une recommandation video parmi un catalogue de millions d’entrees. ...

Passer les reponses d'agents Mastra dans jq pour coloriser le raisonnement et les appels d'outils dans le terminal

L’API HTTP d’agents de Mastra retourne une structure JSON avec des steps, chacune contenant des elements content types comme reasoning, tool-call, tool-result et text. La sortie brute est dense. Commencez par l’explorer: # Appeler l'API et voir la structure brute http localhost:4111/api/agents/weather-agent/generate \ messages[0]="what's the weather in montreal?" | jq . # Obtenir uniquement la reponse finale http localhost:4111/api/agents/weather-agent/generate \ messages[0]="what's the weather in montreal?" | jq -r '.text' # Explorer ce qui se trouve dans les steps http localhost:4111/api/agents/weather-agent/generate \ messages[0]="what's the weather in montreal?" | jq '.steps[].content[] | .type' # "reasoning" # "tool-call" # "tool-result" # "text" # "reasoning" # "text" # Voir quels champs chaque type possede http localhost:4111/api/agents/weather-agent/generate \ messages[0]="what's the weather in montreal?" | jq '.steps[].content[] | select(.type == "tool-call")' Une fois la structure comprise, passez dans jq -r avec des sequences d’echappement ANSI en ligne pour coloriser chaque element: ...

Les skills OpenClaw disparaissent silencieusement sans descriptions YAML entre guillemets et sans metadonnees openclaw

Si un skill OpenClaw personnalise n’apparait pas dans openclaw skills list et que l’agent ne peut pas le voir non plus, le frontmatter de SKILL.md est probablement en cause. OpenClaw echoue silencieusement, donc le retour de debogage est minimal. Deux choses doivent etre correctes. Premierement, tout name ou description contenant un deux-points doit etre entoure de guillemets doubles, sinon YAML interprete le deux-points comme un separateur cle-valeur et l’analyse echoue. Deuxiemement, le frontmatter doit inclure un bloc de metadonnees openclaw declarant l’icone emoji et les binaires ou variables d’environnement requis. Sans cela, OpenClaw n’enregistrera pas le skill du tout. ...

Lyria 3 de Google DeepMind génère des chansons complètes à partir d'une photo ou d'une phrase

Lyria 3 prend un prompt texte ou une image et produit un track complet: instrumentation, voix, paroles. Pas une boucle, pas un mood board. Une chanson. L’entrée image, c’est ce qui le rend intéressant. La plupart des modèles audio génératifs prennent du texte. Lyria 3 peut regarder une photo et décider à quoi ça ressemble soniquement. C’est un type d’interprétation créative différent, plus proche de la façon dont un compositeur pourrait répondre à une œuvre visuelle que d’une spec écrite. ...

HTTPie a besoin de --ignore-stdin dans les environnements non-TTY comme Claude Code

HTTPie détecte s’il tourne dans un TTY. Quand il n’y en a pas, comme lorsque Claude Code l’appelle comme subprocess, HTTPie suppose que stdin pourrait avoir des données à venir et interprète la requête comme un POST, même si tu voulais faire un GET. La correction, c’est --ignore-stdin : http --ignore-stdin GET localhost:3000/things Le piège : une fois que tu dis à Claude Code de toujours utiliser --ignore-stdin, il va aussi l’utiliser quand tu pipes des données, ce qui brise complètement ce cas d’utilisation : ...

Claude Code tourne nativement comme GitHub Action

Anthropic livre une claude-code-action officielle qui fait tourner Claude Code à l’intérieur d’un workflow GitHub Actions. Elle peut lire ton repo, écrire des fichiers, exécuter des commandes et committer, tout ça déclenché par un commentaire sur une PR ou selon un horaire planifié. Ce qui est intéressant : elle utilise le même Claude Code que tu lances localement, donc tes instructions dans CLAUDE.md s’appliquent. L’action respecte le même modèle de permissions. ...

L'essaim d'agents de Kimi deploie jusqu'a 100 sous-agents en parallele pour contourner les limites de fenetre de contexte

La partie interessante n’est pas le parallelisme lui-meme, c’est la raison qui le motive. Un agent unique sur une tache longue finit par atteindre sa fenetre de contexte et commence a compresser le contexte anterieur, degradant la qualite des sorties. La solution de Kimi: deployer jusqu’a 100 sous-agents, chacun avec son propre contexte frais, coordonnes en essaim. Le systeme est auto-organise: il determine combien d’agents deployer et comment diviser le travail selon la tache. Dans leurs benchmarks, ils citent des resultats 4,5 fois plus rapides et plus de 1 500 appels d’outils par tache. ...

Zvec est une base de donnees vectorielle embarquee qui vise a etre le SQLite de la recherche vectorielle

Zvec est une base de donnees vectorielle embarquee open source d’Alibaba, construite sur leur moteur Proxima. Le positionnement est simple: une recherche vectorielle qui s’execute en cours de processus, sans serveur, avec la meme facilite d’installation que SQLite. Le vide qu’il comble est reel. Faiss donne des index mais pas de CRUD ni de recuperation apres crash. DuckDB-VSS a des fonctionnalites vectorielles limitees. Milvus necessite son propre processus et un saut reseau. Zvec vise a etre l’option qui fonctionne simplement quand on construit un pipeline RAG local, un outil en ligne de commande, ou n’importe quoi en local ou on a besoin de recherche semantique sans infrastructure. ...

Les LLM ont du mal avec le format rich text non standard d'Asana

L’API rich text d’Asana n’utilise pas du HTML standard. Elle accepte un sous-ensemble strict avec des règles bien précises : seulement certaines balises sont permises, les règles d’imbrication diffèrent de ce que les navigateurs tolèrent, et le format se rapproche plus du XML que du HTML, ce qui veut dire que les balises non fermées, les attributs flottants, ou quoi que ce soit hors de l’ensemble autorisé sera rejeté ou silencieusement déformé. ...

Les serveurs MCP supportent les prompts comme concept de premier ordre, distinct des outils

Quand j’ai publié mcp-server-asana 1.1.0, l’ajout principal n’était pas les six nouveaux outils Asana (dépendances de tâches, commentaires, sous-tâches, sections de projet). C’était les prompts. Dans le protocole MCP, prompts et outils sont des concepts distincts. Les outils sont des actions individuelles qu’un LLM peut invoquer: créer une tâche, ajouter une dépendance, récupérer un commentaire. Les prompts sont des modèles de conversation prédéfinis: paramétrables, réutilisables, que l’hôte MCP peut proposer directement à l’utilisateur. ...