← Todos los posts
20 de mayo de 202610 min de lecturaThe AIFlow Team

Guía de campo de los frameworks de agentes en Python de código abierto

Ocho frameworks de Python de código abierto para construir agentes de IA, desde deepagents y LangGraph hasta el Claude Agent SDK. En qué es bueno cada uno, dónde tiene dificultades y cómo elegir entre ellos.

agentsopen-sourcepythonframeworkscomparison
Guía de campo de los frameworks de agentes en Python de código abierto
Escucha este artículo

Por qué el framework importa más que el modelo

Es fácil obsesionarse con qué modelo usar. Pero el modelo es cada vez más un commodity. Los laboratorios de frontera lanzan capacidades comparables con pocas semanas de diferencia, y cambiar uno por otro suele ser una modificación de una sola línea. Lo que realmente determina si tu agente funciona en producción es el framework: el código alrededor del modelo que maneja la planificación, las llamadas a herramientas, la memoria, los reintentos y el flujo de control.

El framework es donde vive tu verdadera ingeniería. Decide cómo se descompone una tarea, qué se le permite hacer al agente, cómo sobrevive el estado entre pasos y qué ocurre cuando algo falla. Dos equipos que usan exactamente el mismo modelo pueden lanzar productos muy distintos según el framework que construyan.

La buena noticia es que ya no tienes que escribir uno desde cero. Un conjunto saludable de frameworks de Python de código abierto cubre hoy todo, desde un runtime básico hasta un agente completamente armado. Cada uno hace apuestas distintas, y esta guía recorre los principales sin coronar a un ganador.

Qué tienen en común estos frameworks

Todas las opciones de abajo comparten dos rasgos: están escritas en Python y son de código abierto.

Python importa porque ahí vive el ecosistema. Los SDK de los modelos, las herramientas de evaluación, los almacenes vectoriales, las librerías de datos y los flujos de trabajo en notebooks que tu equipo ya usa son Python primero. Un framework en el mismo lenguaje se conecta directamente a ellos.

El código abierto importa porque un framework de agentes es infraestructura que tendrás que depurar. Cuando un agente entra en un bucle infinito, elige la herramienta equivocada o pierde contexto en un traspaso, poder abrir el código y rastrear el flujo de control es la diferencia entre un arreglo y un ticket de soporte. También puedes hacer un fork cuando una abstracción tiene fugas.

La compensación honesta: con un framework de código abierto asumes más mantenimiento, más actualizaciones y más trabajo operativo del que tendrías con una plataforma totalmente gestionada. Eso es un costo real. Si vale la pena pagarlo depende de cuánto esperes personalizar y de cuánto valores ver el interior. Esta guía no asume una respuesta. Mapea las opciones para que decidas tú.

La lista corta

Un puñado de frameworks de Python de código abierto se han convertido en las opciones serias. Difieren menos en capacidad bruta que en cuánto deciden por ti. Algunos te entregan un runtime de bajo nivel y te dejan ensamblarlo todo. Otros traen un agente con criterio listo para usar. Así es más o menos como se sitúan:

quadrantChart title Frameworks de agentes en Python de codigo abierto x-axis "Control de bajo nivel" --> "Todo incluido" y-axis "Agente unico" --> "Multiagente" quadrant-1 "Equipos con criterio" quadrant-2 "Construye el tuyo" quadrant-3 "Agentes unicos tipados" quadrant-4 "Deep agents llave en mano" "LangGraph": [0.15, 0.7] "deepagents": [0.75, 0.72] "CrewAI": [0.66, 0.85] "AutoGen": [0.48, 0.9] "Agno": [0.8, 0.48] "Claude Agent SDK": [0.88, 0.62] "PydanticAI": [0.5, 0.25] "smolagents": [0.62, 0.3]

deepagents (LangChain)

deepagents empaqueta el patrón "deep agent": una herramienta de planificación, subagentes con contexto aislado y un sistema de archivos virtual como memoria de trabajo, todo sobre LangGraph. Es casi un agente llave en mano capaz de ejecutar tareas largas de varios pasos sin que cablees el bucle tú mismo. Crear uno es deliberadamente sencillo:

from deepagents import create_deep_agent

def get_weather(city: str) -> str:
    """Obtiene el clima de una ciudad."""
    return f"Siempre hace sol en {city}!"

agent = create_deep_agent(
    model="anthropic:claude-sonnet-4-6",
    tools=[get_weather],
    system_prompt="Eres un asistente util.",
)

agent.invoke({"messages": [{"role": "user", "content": "Que tiempo hace en SF?"}]})

Fuerte en investigación, informes con múltiples fuentes y cualquier cosa que se beneficie de un planificador y de subtareas delegadas. Ten cuidado con una API joven y todavía en evolución, así que fija tu versión, y un modelo con criterio propio contra el que podrías terminar peleando en flujos poco habituales.

LangGraph

LangGraph es el runtime de grafos de bajo nivel sobre el que está construido deepagents. Defines los agentes como máquinas de estado explícitas: nodos, aristas y un objeto de estado tipado que fluye entre ellos, con ejecución duradera y puntos de control con humano en el bucle. Fuerte en determinismo y control total del flujo. Ten cuidado con el código repetitivo: para un agente simple ensamblas más por tu cuenta de lo que te piden las opciones de más alto nivel.

Claude Agent SDK (Anthropic)

Claude Agent SDK es el framework de código abierto detrás de Claude Code, disponible en Python y TypeScript. Conduce a un agente Claude a través de un bucle probado en producción con herramientas integradas (edición de archivos, shell, búsqueda), soporte de MCP, subagentes, modos de permiso y topes de presupuesto por ejecución. El punto de entrada en Python es asíncrono:

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions

async def main():
    options = ClaudeAgentOptions(
        system_prompt="Eres un asistente de investigacion.",
        max_turns=4,
        max_budget_usd=0.50,
    )
    async for message in query(prompt="Resume el estado de los frameworks de agentes.", options=options):
        print(message)

asyncio.run(main())

Fuerte en un bucle de agente probado en batalla con permisos de herramientas reales y controles de costo nativos como max_budget_usd. Ten cuidado con su orientación hacia los modelos Claude y el modelo de herramientas MCP, lo que lo hace la opción con más criterio sobre el runtime que espera.

AutoGen (Microsoft)

AutoGen modela un problema como una conversación entre agentes que se envían mensajes entre sí hasta que el trabajo está hecho. Es fuerte en la colaboración multiagente y en agentes que escriben y ejecutan código mientras critican la salida de los demás, y está respaldado por Microsoft Research. Ten cuidado con el modelo conversacional, que puede ser más difícil de volver determinista, y una API que cambió bastante en la reescritura de la v0.4.

CrewAI

CrewAI modela un problema como un equipo (crew) de agentes con roles: un investigador, un redactor, un editor, cada uno con un objetivo y una historia, colaborando en tareas. Fuerte en prototipado rápido; se lee casi como describir un equipo. Ten cuidado con que la metáfora de roles oculte el flujo de control cuando necesitas una orquestación precisa y de grano fino.

Agno

Agno es un framework integral para construir agentes con memoria, conocimiento y herramientas incorporados, con un fuerte enfoque en la velocidad y el bajo consumo en tiempo de ejecución. Escala desde un solo agente hasta equipos de agentes y trata la entrada multimodal como una prioridad de primera clase. Fuerte en agentes con todo incluido, con memoria y recuperación listas para usar. Ten cuidado con una superficie más amplia y más convenciones que aprender que las opciones minimalistas.

PydanticAI

PydanticAI lleva la seguridad de tipos a los agentes. Las herramientas y las salidas se definen como modelos de Pydantic, así que obtienes E/S validada y estructurada y autocompletado en el editor, con una ergonomía que se siente como FastAPI. Fuerte en agentes únicos tipados, estructurados y fiables. Ten cuidado con la orquestación multiagente, que no es su foco principal.

smolagents (Hugging Face)

smolagents es un framework minimalista construido en torno a agentes que actúan mediante código, escribiendo y ejecutando Python para cumplir tareas. Fuerte en mantenerse pequeño y no estorbar. Ten cuidado con la necesidad de aislar la ejecución de código en un entorno seguro, y con tener menos elementos integrados que los frameworks más pesados.

De un vistazo

FrameworkPunto fuerteMultiagenteTen cuidado con
deepagentsTareas largas que necesitan planificación y delegaciónSí, vía subagentesAPI joven y con criterio
LangGraphOrquestación explícita y duraderaMás cosas que ensamblar tú
Claude Agent SDKBucle de agente con herramientas y presupuestosSí, vía subagentesCentrado en Claude y MCP
AutoGenAgentes que resuelven tareas conversandoMás difícil de volver determinista
CrewAIEquipos por roles, rápido de prototiparMenos control de grano fino
AgnoAgentes con todo incluido, velocidad a escalaSí, vía equiposMayor superficie que aprender
PydanticAIAgentes únicos tipados y estructuradosLimitadoNo está hecho para orquestar
smolagentsAgentes mínimos que actúan por códigoLimitadoNecesita ejecución aislada

Cómo elegir

Los patrones no son mutuamente excluyentes, y las librerías tampoco. deepagents y el Claude Agent SDK corren un bucle de agente bajo el cual puedes descender cuando lo necesites. Una guía aproximada:

  • ¿Quieres un deep agent que planifique y delegue con la mínima configuración? Empieza con deepagents.
  • ¿Quieres un bucle probado en producción con herramientas, permisos y topes de presupuesto? Usa el Claude Agent SDK.
  • ¿Quieres orquestación explícita y duradera que controlas por completo? Usa LangGraph.
  • ¿Quieres agentes que colaboren conversando? Recurre a AutoGen.
  • ¿Quieres un equipo multiagente definido por roles, rápido? Prueba CrewAI.
  • ¿Quieres agentes con todo incluido, con memoria y velocidad? Usa Agno.
  • ¿Quieres fiabilidad tipada y estructurada de un solo agente? Usa PydanticAI.
  • ¿Quieres el agente que actúa por código más pequeño posible? Mira smolagents.

Algunas reglas generales que se sostienen en todos ellos:

  • Empieza con el framework más pequeño que encaje. Recurre a la capa inferior solo cuando la superior te estorbe.
  • Prefiere el framework cuyos primitivos coincidan con la forma de tu problema. Una tarea de investigación quiere un planificador; una tarea de extracción estructurada quiere tipos; una decisión en disputa quiere una conversación.
  • Valora la vía de escape. La ventaja compartida de todas las opciones aquí es que puedes leerlas y cambiarlas. Aprovéchalo.

Dónde encaja AIFlow

Estos frameworks te dan el agente. Lo que no te dan, por diseño, es la capa que una empresa necesita alrededor de cada agente: inicio de sesión único, acceso basado en roles, registros de auditoría, residencia de datos, barreras de protección de modelos y controles de costo sobre la inferencia. Si añades eso a cada proyecto por separado, cada nuevo agente se convierte en su propia revisión de cumplimiento y en su propio ejercicio de presupuesto.

AIFlow es el perímetro de orquestación y gobierno dentro del cual corren esos frameworks. Un agente de investigación de deepagents, un flujo de LangGraph hecho a mano, un bucle del Claude Agent SDK y un crew de CrewAI pueden correr todos sobre AIFlow bajo los mismos controles, con la misma observabilidad, tras la misma frontera de seguridad. El gasto se rastrea y se limita por agente, por equipo y por modelo desde un solo lugar, de modo que un bucle descontrolado se convierte en una alerta de presupuesto en lugar de una factura sorpresa. Conservas el framework de código abierto que encaja en cada problema, y dejas de reconstruir el gobierno y el seguimiento de costos para cada uno.

En resumen

No hay un único mejor framework. deepagents y el Claude Agent SDK te entregan un bucle de agente funcionando; LangGraph te entrega el runtime para construir el tuyo; AutoGen y CrewAI organizan agentes en conversaciones y equipos; Agno empaqueta memoria y velocidad; PydanticAI mantiene todo tipado; smolagents se mantiene minimalista. La elección correcta depende de la forma de tu problema: planificación, roles, diálogo, tipos o control puro. Elige el framework cuyos primitivos coincidan con tu problema, y cuyo código fuente estarías cómodo de leer a las 2 de la madrugada, porque tarde o temprano lo harás.