Selectools : Framework open source pour agents IA

Ras-le-bol de LangGraph qui impose des effets de bord idempotents pour une simple pause humaine ? Selectools reprend pile là où vous en étiez. Ce colosse open source concentre toute la puissance multi-agents en un seul pip.

Selectools : le correctif en un pip install contre les cauchemars des agents IA — theAIcatchup

Key Takeaways

  • Selectools mise sur les générateurs Python pour des reprises d'interruption précises, corrigeant les relances complètes de nœuds de LangGraph.
  • SupervisorAgent multi-agents offre quatre stratégies, dont Magentic-One avec 70-90 % d'économies grâce à ModelSplit.
  • 50 évaluateurs intégrés et masquage PII : prêt pour la prod en un pip install.

On pensait tous que les frameworks d’agents IA continueraient à boiter avec les tics de checkpoint-replay de LangGraph — relancer des nœuds entiers à la reprise, tordre le code en bretzels idempotents. Mais Selectools balance la v0.20.1, un uppercut en un pip au statu quo : graphes multi-agents, invocation d’outils, RAG, 50 évaluateurs, masquage PII. Tout intégré, open source Apache-2.0, compatible OpenAI, Anthropic, Gemini, Ollama.

Ça change tout pour les devs écœurés de bricoler des abstractions poreuses.

Pourquoi les interruptions de LangGraph rendent les devs dingues

L’interrupt() de LangGraph — c’est fait exprès — rejoue tout le nœud après pause. Le fix officiel ? Idempotiser les effets de bord, décaler les ops coûteuses après l’appel, ou les éclater plus bas. Bien en théorie. L’enfer sur le terrain. Chaque nœud avec humain se contorsionne autour des règles de reprise. Étanchéité d’une passoire.

Selectools ? Des générateurs Python. Yield un InterruptRequest. Reprise via generator.send() — pile au yield. Pas de réexécution. Analyse LLM onéreuse ? Une seule fois. Nickel.

Regardez ça :

async def review_node(state):
    analysis = await expensive_llm_analysis(state.data["draft"])  # runs once
    decision = yield InterruptRequest(prompt="Approve?", payload=analysis)
    state.data["approved"] = (decision == "yes")  # resumes here

Paf.

“Reprend exactement au point de yield (LangGraph redémarre tout le nœud).”

Droit du changelog v0.18.0. Pas de baratin — le code dit vrai.

Mon avis : ce tour de générateurs rappelle les coroutines Node.js qui ont maté l’enfer asynchrone. Selectools ne réinvente rien ; il ouvre la voie que les agents prennent vraiment. Pari ? Il va rafler les utilisateurs de LangGraph en masse d’ici Q2 2025, en explosant le mythe du ‘framework unique’ comme Kubernetes l’a fait pour les swarms Docker.

Comment Selectools gère les graphes multi-agents ?

AgentGraph : graphe orienté pour nœuds agents. Routage ? Des fonctions Python basiques — pas de roulette LLM, pas de DSL gonflé. Flux déterministe, les LLM raisonnent dans les nœuds. Malin.

ContextMode garde l’historique sain : LAST_MESSAGE (par défaut), LAST_N, FULL, SUMMARY, CUSTOM. Pas de noyade des agents aval par le bruit amont.

Exécution parallèle avec MergePolicy — LAST_WINS, FIRST_WINS, APPEND. Fan-out, fan-in, sans drame.

Boucles ? Stagnations ? Hachage d’état détecte les états inchangés. Anti-blocage.

Mais attendez — SupervisorAgent monte d’un cran. Quatre stratégies :

Stratégie Description Idéal pour
plan_and_execute Plan JSON par LLM, exécution séquentielle Tâches structurées
round_robin Tours, superviseur vérifie Raffinage itératif
dynamic LLM choisit l’agent par étape Tâches hétérogènes
magentic Magentic-One avec ledger + replan Recherche autonome

Magentic imite le pattern de Microsoft Research. ModelSplit ? Planificateurs sur GPT-4o, exécuteurs sur Llama — 70-90 % moins cher. Ruse prête pour la production.

La suite d’évals de Selectools est-elle vraiment utile ?

50 évaluateurs prêts à l’emploi. Sans services payants. 30 déterministes (exact-match, regex), 20 jugés par LLM (style G-Eval).

Masquage PII ? Intégré, scanne les sorties avant déploiement. RAG ? Stockages vectoriels, chaînes de retrieval — branchez Ollama ou Pinecone. Invocation d’outils ? Structurée, parallèle.

Pas du vent. Le framework d’éval s’accroche à AgentGraph : lancez des suites sur des graphes, agrégez les scores. Les devs ont des baselines sans vendor lock-in.

Sceptique ? Moi aussi, d’abord. Mais le ‘comment’ claque : évals comme nœuds graph premiers citoyens. Interrupt mid-éval pour ajuster. Reprise chirurgicale.

Un petit paragraphe ici.

Cette densité d’évaluateurs — 50 préfabriqués — évoque pytest qui a explosé sur les tests Python en 2008. À l’époque, unittest puait ; pytest a fait du TDD la norme. Selectools pourrait faire ça pour la fiabilité des agents. Les

James Kowalski
Written by

Investigative tech reporter focused on AI ethics, regulation, and societal impact.

Worth sharing?

Get the best AI stories of the week in your inbox — no noise, no spam.

Originally reported by Dev.to