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
| Size | Purpose | Production Use | Why Still Relevant | |
|---|---|---|---|---|
| BabyAGIcelui-ci | ~150 LOC | Pattern demo | Rare | Clearest loop explanation |
| AutoGPT (2023) | ~10K LOC | Autonomous agent demo | Migrated to Platform | Historical |
| CrewAI | Production framework | Role-based pipelines | Widespread | Modern successor |
| LangGraph | Production framework | Graph-based agents | Widespread | Modern 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.