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

BabyAGI — pattern d’Agent minimaliste à file de tâches

BabyAGI est un Agent Python de 150 lignes qui a démontré l’autonomie basée sur une file de tâches en 2023 — ajouter des tâches, les exécuter avec un LLM, créer de nouvelles tâches à partir des résultats, prioriser, recommencer. Une implémentation de référence incontournable.

Why BabyAGI matters

Yohei Nakajima a publié BabyAGI sur Twitter en avril 2023 comme une démo de 150 lignes du pattern de file de tâches pour Agents autonomes : un Agent execution exécute la tâche du dessus, un Agent task-creation invente de nouvelles tâches à partir du résultat, et un Agent prioritization réordonne la file. Il tournait sur ChatGPT + Pinecone et est devenu viral en même temps qu’AutoGPT — ensemble, ils ont semé la catégorie « Agents autonomes ».

Contrairement à AutoGPT, BabyAGI est resté petit volontairement. Il a toujours été présenté comme un pattern, pas un framework. Yohei l’a fait évoluer vers de nouvelles versions (BabyAGI v2, BabyBeeAGI, BabyFoxAGI) qui explorent des idées différentes — Agents basés sur des fonctions, outils auto-construits, raisonnement chain-of-task. Toutes ont conservé l’esprit « petit, lisible, une leçon en 200 lignes ».

En 2026, vous ne déployez pas BabyAGI — vous le lisez. C’est l’explication mono-fichier la plus claire du « pourquoi un LLM a besoin d’une file de tâches pour atteindre un grand objectif ? ». Portez le pattern vers des tâches CrewAI, des nœuds LangGraph, ou des conversations AutoGen selon le cas.

Quick Start — The Pattern in 60 Lines

Voici un portage fidèle de l’idée BabyAGI en 60 lignes. Trois rôles LLM — exécuter, créer, prioriser — sur une file de tâches partagée. Pour un vrai produit, migrez chaque rôle vers un Agent CrewAI ou un nœud LangGraph avec mémoire et outils ; la valeur de BabyAGI est de rendre le pattern lisible, pas de tourner en production.

# 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:])

Fonctionnalités clés

Boucle de tâches à trois rôles

Exécution / création de tâches / priorisation — la décomposition utile la plus simple d’un Agent autonome. Tous les frameworks modernes implémentent cette idée d’une manière ou d’une autre.

Codebase minimal

L’original faisait ~150 lignes. Les portages modernes restent sous 200. Quiconque le lit comprend la boucle d’Agent centrale en un après-midi.

Variantes de pattern

BabyBeeAGI, BabyFoxAGI, BabyCatAGI — expérimentations sur la mémoire, les outils, l’auto-modification. Utile comme bibliothèque de « voici une autre manière de structurer la boucle ».

À combiner avec n’importe quel vector DB

L’original utilisait Pinecone ; les réimplémentations utilisent Chroma, Weaviate, pgvector. La mémoire, c’est juste « embed tâche+résultat, retrouve les éléments liés au prochain tour ».

Valeur pédagogique

Plus facile à enseigner que la codebase de 10K lignes d’AutoGPT. Utilisé dans de nombreux tutoriels « intro aux Agents » et cours universitaires.

Lignée libre

Licence permissive (MIT). Largement forké ; intégrer le pattern dans votre propre codebase est sans friction.

Comparaison

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

Cas d'usage

01. Enseigner la boucle d’Agent

L’explication mono-fichier la plus claire de pourquoi « exécuter → créer → prioriser » bat « prompt une fois et croise les doigts ». À utiliser en onboarding, en cours et dans des talks.

02. Voler le pattern

Reprenez la boucle à trois rôles dans votre propre codebase sur n’importe quel framework. La plupart des fonctionnalités « agentiques » des bibliothèques modernes en sont des variations.

03. Bac à sable de recherche

Trop petit pour la production, mais idéal pour des expériences rapides sur les stratégies de priorisation, les prompts de décomposition de tâches ou l’intégration mémoire — changez 30 lignes et comparez les résultats.

Tarification et licence

BabyAGI : open source MIT, gratuit. L’original et toutes les variantes vivent sur le GitHub de Yohei Nakajima.

Aucun coût d’infra : un seul fichier Python plus le vector DB que vous choisissez (Pinecone/Chroma). Les appels d’API LLM dominent la dépense totale.

Discipline budgétaire : la boucle est sans plafond par défaut. Ajoutez toujours un garde-fou max-iterations et un plafond de coût avant de la laisser tourner ; c’est une démo, pas un système de production soigné.

Assets associés sur TokRepo

Questions fréquentes

Devrais-je déployer BabyAGI en production ?+

Non. Utilisez CrewAI, LangGraph ou AutoGen pour des Agents de production. La valeur de BabyAGI est pédagogique — lisez-le pour comprendre le pattern, puis utilisez un framework qui gère la mémoire, la récupération d’erreurs et la fiabilité.

BabyAGI vs AutoGPT ?+

Tous deux sont devenus viraux en avril 2023. AutoGPT est devenu un grand projet et une plateforme no-code. BabyAGI est resté petit volontairement. Aujourd’hui, AutoGPT est une plateforme ; BabyAGI est un exemple pédagogique.

Que sont BabyBeeAGI / BabyFoxAGI / BabyCatAGI ?+

Les variantes évolutives de Yohei — chacune explore une idée différente (usage d’outils, auto-modification, chain-of-task structuré). À parcourir pour des idées de pattern ; ne traitez aucune comme un framework à adopter.

En quoi les frameworks modernes améliorent-ils BabyAGI ?+

État structuré (LangGraph), modélisation par rôles (CrewAI), dynamique conversationnelle (AutoGen), fonctionnalités de fiabilité (checkpointing, retries, HITL). BabyAGI ne fait rien de tout ça — c’est la 1.0 sur laquelle tout le monde construit.

Où lire l’explication ?+

Le thread Twitter original de Yohei (avril 2023), le README sur github.com/yoheinakajima/babyagi et de nombreux tutoriels communautaires. Le README seul fait une excellente lecture de 10 minutes.

Comparer les alternatives