Multi-Agent Framework
BabyAGI — Minimal Task-Queue Agent Pattern logo

BabyAGI — patrón de Agent minimalista con cola de tareas

BabyAGI es un Agent de Python de 150 líneas que demostró la autonomía basada en colas de tareas en 2023 — agregar tareas, ejecutarlas con un LLM, crear nuevas tareas desde los resultados, priorizar y repetir. Una implementación de referencia obligada.

Why BabyAGI matters

Yohei Nakajima publicó BabyAGI en Twitter en abril de 2023 como una demo de 150 líneas del patrón de cola de tareas para Agents autónomos: un Agent execution ejecuta la tarea superior, un Agent task-creation inventa nuevas tareas a partir del resultado y un Agent prioritization reordena la cola. Corría sobre ChatGPT + Pinecone y se hizo viral a la vez que AutoGPT — juntos sembraron la categoría «Agents autónomos».

A diferencia de AutoGPT, BabyAGI se mantuvo pequeño a propósito. Siempre se presentó como un patrón, no un framework. Yohei lo iteró en versiones más nuevas (BabyAGI v2, BabyBeeAGI, BabyFoxAGI) que exploran ideas distintas — Agents basados en funciones, herramientas auto-construidas, razonamiento chain-of-task. Todas mantuvieron el espíritu de «pequeño, legible, una lección en 200 líneas».

En 2026 no despliegas BabyAGI — lo lees. Es la explicación mono-archivo más clara de «¿por qué un LLM necesita una cola de tareas para alcanzar un objetivo grande?». Lleva el patrón a tareas de CrewAI, nodos de LangGraph o conversaciones de AutoGen según convenga.

Quick Start — The Pattern in 60 Lines

Esto es un portado fiel de la idea de BabyAGI en 60 líneas. Tres roles LLM — ejecutar, crear, priorizar — sobre una cola de tareas compartida. Para un producto real, migra cada rol a un Agent de CrewAI o a un nodo de LangGraph con memoria y herramientas; el valor de BabyAGI es hacer legible el patrón, no correr en producción.

# A minimal BabyAGI-style loop using the modern OpenAI SDK.
# This is the pattern — use CrewAI / LangGraph for production.

from collections import deque
from openai import OpenAI

client = OpenAI()
OBJECTIVE = "Write a 3-step plan to launch a small SaaS landing page."
task_list = deque([{"id": 1, "name": "Brainstorm the first task list for the objective."}])

def llm(prompt: str) -> str:
    r = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": prompt}],
        temperature=0.2,
    )
    return r.choices[0].message.content.strip()

def execute(task: str, context: str) -> str:
    return llm(f"Objective: {OBJECTIVE}\nPrior context: {context}\nTask: {task}\nExecute it now.")

def creation(task: str, result: str) -> list[str]:
    raw = llm(f"Objective: {OBJECTIVE}\nLast task: {task}\nResult: {result}\n"
              "Generate up to 3 NEW tasks (no duplicates). Return a bullet list, no preamble.")
    return [ln.lstrip("-•* ").strip() for ln in raw.splitlines() if ln.strip()]

def prioritize(tasks: list[dict]) -> list[dict]:
    raw = llm(f"Objective: {OBJECTIVE}\nUnordered tasks:\n"
              + "\n".join(f"- {t['name']}" for t in tasks)
              + "\nRe-order by importance toward the objective. Return a bullet list.")
    names = [ln.lstrip("-•* ").strip() for ln in raw.splitlines() if ln.strip()]
    return [{"id": i + 1, "name": n} for i, n in enumerate(names) if n]

context = ""
for _ in range(5):     # cap iterations
    if not task_list: break
    task = task_list.popleft()
    result = execute(task["name"], context)
    context += f"\n[TASK] {task['name']}\n[RESULT] {result[:300]}"
    print(f"\nDone: {task['name']}")
    new = creation(task["name"], result)
    current = list(task_list) + [{"id": t["id"] + i, "name": n} for i, n in enumerate(new, 1)]
    task_list = deque(prioritize(current))

print("\n=== FINAL CONTEXT ===")
print(context[-1200:])

Características clave

Bucle de tareas a tres roles

Ejecución / creación de tareas / priorización — la descomposición útil más simple de un Agent autónomo. Todos los frameworks modernos implementan la idea de alguna forma.

Codebase mínimo

El original tenía ~150 líneas. Los portados modernos se mantienen bajo 200. Quien lo lea entiende el bucle central del Agent en una tarde.

Variantes del patrón

BabyBeeAGI, BabyFoxAGI, BabyCatAGI — experimentos sobre memoria, herramientas, auto-modificación. Útil como biblioteca de «aquí tienes otra manera de estructurar el bucle».

Empareja con cualquier vector DB

El original usaba Pinecone; las reimplementaciones usan Chroma, Weaviate, pgvector. La memoria es solo «embed tarea+resultado, recupera elementos relacionados en turnos futuros».

Valor educativo

Más fácil de enseñar que el codebase de 10K líneas de AutoGPT. Usado en muchos tutoriales «intro a Agents» y cursos universitarios.

Linaje libre

Licencia permisiva (MIT). Forkeado ampliamente; incorporar el patrón en tu propio codebase es sin fricción.

Comparación

 SizePurposeProduction UseWhy Still Relevant
BabyAGIesta~150 LOCPattern demoRareClearest loop explanation
AutoGPT (2023)~10K LOCAutonomous agent demoMigrated to PlatformHistorical
CrewAIProduction frameworkRole-based pipelinesWidespreadModern successor
LangGraphProduction frameworkGraph-based agentsWidespreadModern successor

Casos de uso

01. Enseñar el bucle del Agent

La explicación mono-archivo más clara de por qué «ejecutar → crear → priorizar» supera a «prompt una vez y espera». Úsalo en onboarding, clases y charlas.

02. Robar el patrón

Lleva el bucle a tres roles a tu propio codebase en cualquier framework. La mayoría de funciones «agénticas» en librerías modernas son variaciones de él.

03. Patio de juego de investigación

Demasiado pequeño para producción, pero ideal para experimentos rápidos sobre estrategias de priorización, prompts de descomposición de tareas o integración de memoria — cambia 30 líneas y compara resultados.

Precios y licencia

BabyAGI: open source MIT, gratuito. El original y todas las variantes viven en el GitHub de Yohei Nakajima.

Sin coste de infra: un único archivo Python más el vector DB (Pinecone/Chroma) que elijas. Las llamadas a la API LLM dominan el gasto total.

Disciplina presupuestaria: el bucle no tiene tope por defecto. Añade siempre un guard de max-iterations y un tope de coste antes de dejarlo corriendo; esto es una demo, no un sistema de producción cuidadoso.

Activos relacionados en TokRepo

Preguntas frecuentes

¿Debería desplegar BabyAGI en producción?+

No. Usa CrewAI, LangGraph o AutoGen para Agents de producción. El valor de BabyAGI es pedagógico — léelo para entender el patrón, luego usa un framework que gestione memoria, recuperación de errores y fiabilidad.

¿BabyAGI vs AutoGPT?+

Ambos se hicieron virales en abril de 2023. AutoGPT se convirtió en un gran proyecto y plataforma no-code. BabyAGI se mantuvo pequeño a propósito. Hoy AutoGPT es una plataforma; BabyAGI es un ejemplo didáctico.

¿Qué son BabyBeeAGI / BabyFoxAGI / BabyCatAGI?+

Las variantes evolutivas de Yohei — cada una explora una idea distinta (uso de herramientas, auto-modificación, chain-of-task estructurado). Vale la pena hojear por ideas de patrón; no las trates como frameworks a adoptar.

¿En qué mejoran los frameworks modernos a BabyAGI?+

Estado estructurado (LangGraph), modelado de roles (CrewAI), dinámicas conversacionales (AutoGen), funciones de fiabilidad (checkpointing, reintentos, HITL). BabyAGI no hace nada de eso — es la 1.0 sobre la que todos construyen.

¿Dónde puedo leer la explicación?+

El hilo original de Twitter de Yohei (abril de 2023), el README en github.com/yoheinakajima/babyagi y muchos tutoriales comunitarios. El README por sí solo es una lectura excelente de 10 minutos.

Comparar alternativas