Selectools: Framework de código abierto para agentes IA

¿Harto de que LangGraph te obligue a hacer side effects idempotentes solo para pausar por un humano? Selectools se reanuda exactamente donde lo dejaste. Este titán de código abierto mete toda la inteligencia multiagente en un pip

Selectools: El salvavidas con un pip install para las pesadillas de los agentes IA — theAIcatchup

Key Takeaways

  • Selectools usa generadores de Python para reanudaciones precisas en interrupciones, arreglando las reejecuciones completas de nodos en LangGraph.
  • El SupervisorAgent multiagente trae cuatro estrategias, como Magentic-One con ahorros del 70-90% vía ModelSplit.
  • 50 evaluadores integrados y anonimización PII lo hacen listo para producción en un solo pip install.

Todos daban por hecho que los frameworks de agentes IA seguirían cojeando con las rarezas de checkpoint-replay de LangGraph: ya sabes, volver a ejecutar nodos enteros al reanudar, retorciendo el código en pretzels idempotentes. Pero Selectools acaba de soltar la v0.20.1 y es un golpe de pip al status quo: gráficos multiagente, llamadas a herramientas, RAG, 50 evaluadores, anonimización de PII. Todo integrado, código abierto Apache-2.0, compatible con OpenAI, Anthropic, Gemini, Ollama.

Esto lo cambia todo para los desarrolladores hartos de pegar abstracciones con goteras.

Por qué las interrupciones de LangGraph vuelven locos a los creadores

La función interrupt() de LangGraph —por diseño— reproduce todo el cuerpo del nodo después de pausar. ¿La solución oficial? Haz que los side effects sean idempotentes, mete operaciones caras después de la llamada o las fragmentas río abajo. Bien en teoría. Un infierno en la práctica. Cada nodo con humano en el loop se deforma alrededor de las semánticas de reanudación. Tan filtrante como una puerta mosquitera.

¿Selectools? Generadores de Python. Yield un InterruptRequest. Reanuda con generator.send() —justo en el yield. Sin reejecución. ¿Análisis LLM caro? Se ejecuta una sola vez. Limpio.

Mira esto:

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

¡Pum!

“Se reanuda en el punto exacto del yield (LangGraph reinicia todo el nodo).”

Directo del changelog de su v0.18.0. Sin hype: puro código que dice la verdad.

Mi veredicto: este truco de generadores recuerda a los coroutines de Node.js tempranos domando el caos async. Selectools no reinventa la rueda; allana el camino por donde ruedan los agentes. ¿Predicción? Para Q2 2025 atraerá en masa a usuarios de LangGraph, rompiendo el mito del ‘framework único’ como Kubernetes hizo con los Docker swarms.

¿Cómo maneja Selectools los gráficos multiagente?

AgentGraph: grafo dirigido para nodos de agentes. ¿Enrutamiento? Funciones Python puras —sin ruleta de LLM, sin hinchazón de DSL. Flujo determinista, los LLM razonan dentro de los nodos. Inteligente.

ContextMode mantiene el historial cuerdo: LAST_MESSAGE (por defecto), LAST_N, FULL, SUMMARY, CUSTOM. Nada de ahogar a los agentes downstream con ruido upstream.

Ejecución paralela con MergePolicy — LAST_WINS, FIRST_WINS, APPEND. Fan-out, fan-in, sin dramas.

¿Loops? ¿Stalls? El hashing de estado detecta cambios nulos. A prueba de deadlocks.

Pero espera: SupervisorAgent sube la apuesta. Cuatro estrategias:

Estrategia Descripción Ideal para
plan_and_execute Plan JSON de LLM, ejecución secuencial Tareas estructuradas
round_robin Turnos, supervisor verifica Refinamiento iterativo
dynamic LLM elige agente por paso Tareas heterogéneas
magentic Magentic-One con ledgers + replan Investigación autónoma

Magentic imita el patrón de Microsoft Research. ¿ModelSplit? Planificadores en GPT-4o, ejecutores en Llama: 70-90% más barato. Astucia lista para producción.

¿Es útil de verdad el suite de evaluadores de Selectools?

50 evaluadores listos para usar. Sin servicios pagos de evals. 30 determinísticos (coincidencia exacta, regex), 20 juzgados por LLM (estilo G-Eval).

¿Anonimización PII? Integrada, escanea salidas pre-despliegue. ¿RAG? Tiendas vectoriales, cadenas de recuperación —conecta Ollama o Pinecone. ¿Llamadas a herramientas? Estructuradas, paralelas.

No es un batiburrillo. El framework de evals se ata a AgentGraph: ejecuta suites en gráficos, agrega scores. Los devs obtienen baselines sin vendor lock.

¿Escéptico? Yo también, al principio. Pero el ‘cómo’ brilla: evals como nodos de primera clase en el grafo. Interrumpe mid-eval para ajustes. Reanuda con precisión.

Un párrafo c

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