Open Source · Actualité
Haystack 3.5 : réponses d'agent validées, recherche multivecteur et un modèle par défaut à surveiller
La version 3.5.0 du framework libre de deepset ajoute un contrôle de format sur la réponse finale des agents et pose les bases de la recherche multivecteur. Elle relève aussi plusieurs dépendances et change le modèle OpenAI par défaut, avec une échéance au 11 décembre 2026 pour les pipelines déjà enregistrés.
Par Kayzen AI · · 3 min de lecture

Haystack est un framework Python libre (licence Apache 2.0) édité par deepset. Il sert à assembler des « pipelines » : des chaînes de composants qui découpent des documents, les indexent, les retrouvent et les transmettent à un modèle de langage. Sa version 3.5.0, publiée le 10 novembre sur GitHub, mêle nouveautés pour les agents et changements à anticiper lors de la mise à jour.
Ce qui est nouveau
- Une réponse finale au bon format. Le nouveau
StructuredOutputHookvérifie la réponse finale d'un agent par rapport à un modèle Pydantic ou à un schéma JSON. En cas d'erreur, il renvoie le problème au modèle et réessaie, deux fois par défaut. Si la validation échoue encore, la valeur enregistrée estNone: le code appelant doit donc prévoir ce cas. - Un rappel du budget d'étapes.
StepBudgetReminderHook, présenté comme expérimental, indique au modèle combien d'étapes il lui reste avant d'atteindre la limitemax_agent_steps. - Un premier pas vers le multivecteur. Un document peut désormais porter plusieurs vecteurs au lieu d'un seul (champ
multivector_embedding), à la manière des modèles de type ColBERT. Un nouveau composant,MaxSimRanker, reclasse les résultats en comparant ces vecteurs à ceux de la question. Les notes parlent d'une première étape, pensée pour une recherche en deux temps. - Trois composants de tri et de classement fondés sur l'API Decisions d'OpenAI : un routeur de texte, un routeur d'images avec branche de repli quand la confiance est faible, et un classifieur de documents qui range ses réponses dans les métadonnées.
Parmi les améliorations, le découpage de documents accepte un comptage en tokens, et la conversion PowerPoint récupère le texte des formes groupées ainsi que les tableaux.
Ce qui peut casser à la mise à jour
- Dépendances relevées. Le paquet
openaipasse d'un minimum de 2.6.0 à 3.26.0, etpydanticdoit être en 2.12 au moins (2.14 avec Python 3.15). - Modèle par défaut. Les générateurs OpenAI et les évaluateurs fondés sur un modèle utilisent désormais
gpt-5.6-terraà la place degpt-5-mini. Selon les notes, OpenAI arrêtegpt-5-minile 11 décembre 2026. Or un pipeline déjà enregistré conserve l'ancien nom : son fichier YAML doit être corrigé avant cette date. - Ordre des entrées. Quand plusieurs composants alimentent la même entrée, les valeurs arrivent maintenant dans l'ordre des appels à
Pipeline.connect(). L'ordre des connexions dans le YAML compte donc, notamment pour unDocumentJoinerutilisé avec des poids. - Fichiers Excel.
XLSXToDocumentne traite plus des textes comme « NA » ou « NULL » comme des valeurs manquantes, sauf réglage explicite. - Nom réservé. La clé d'état
max_agent_stepsest réservée : un agent qui l'utilisait à sa façon lève une erreur à l'initialisation.
Les limites
Plusieurs nouveautés mises en avant dépendent d'un seul fournisseur : les trois composants Decisions ne fonctionnent qu'avec OpenAI. Le multivecteur n'en est qu'à son début, et ces représentations occupent plus de place qu'un vecteur unique par document : la capacité de votre base vectorielle à les stocker est à vérifier avant de s'y engager. Enfin, le rappel de budget est expérimental, son interface peut encore bouger.
À noter : une version 2.31.1 est parue le 3 novembre, limitée à des relèvements de dépendances pour raisons de sécurité (anyio et certifi).
Notre lecture
Pour une petite équipe qui exploite déjà Haystack, l'urgence n'est pas dans les nouveautés mais dans l'inventaire : rechercher gpt-5-mini dans tous les pipelines enregistrés et le remplacer avant le 11 décembre. Ensuite, testez la mise à jour sur une copie, en comparant les résultats de recherche avant et après, car le changement d'ordre des entrées peut modifier un classement sans provoquer d'erreur. La validation de la réponse finale mérite d'être adoptée dès qu'un agent alimente un autre logiciel : elle remplace du code de contrôle que chacun écrivait jusqu'ici à la main.