Still installing the 2023 task-loop BabyAGI?
Most “install BabyAGI” posts still walk you through cloning the old script, wiring Pinecone, and running python babyagi.py until the API bill hurts. That codebase was archived in September 2024. The package you get from PyPI today is different.
BabyAGI 0.1.4 (11 Oct 2024 on PyPI) is Yohei Nakajima’s experimental functionz framework: functions live in a database, dependencies form a graph, and a Flask dashboard lets you inspect logs and keys. Docs: babyagi.org and the yoheinakajima/babyagi repo. This guide gets that version running locally – commands first, caveats where they bite.
The homepage still says it: not meant for production; use with caution. A January 2026 readiness review on the same repo scored overall readiness 3/10. Lab toy for people who already live in Python venvs – not something you expose as a service.
System requirements for BabyAGI 0.1.4
No official RAM or disk floor is published. You’re standing up a small Flask app, SQLAlchemy, and optional LLM calls. The real friction is packaging drift, not CPU.
| Item | What the project states | What actually works |
|---|---|---|
| OS | OS independent | Linux, macOS, or Windows with a real terminal |
| Python | setup.py: >=3.6; PyPI classifier: Python 3 | 3.10 or 3.11 (pyproject historically excluded 3.12+) |
| Package manager | pip | venv + pip; pin babyagi==0.1.4 |
| Core deps (requirements.txt) | Flask>=2.0.0, sqlalchemy>=1.4,<2.0, cryptography, scikit-learn, litellm, openai | Same list; cryptography / litellm / openai / scikit-learn stay unpinned |
| API keys | Optional for bare dashboard; OpenAI for AI packs | Set OPENAI_API_KEY before draft self-build packs |
| RAM / disk | Not documented | Unknown officially – leave headroom for the venv plus a local function DB |
Python 3.12+? Expect pain. The Jan 2026 readiness write-up calls out three packaging stories that disagree (requirements.txt, pyproject/Poetry, setup.py) and version drift: setup.py still labels 0.1.2 while PyPI ships 0.1.4.
Official download source
- Recommended:
pip install babyagi==0.1.4from pypi.org/project/babyagi - Source:
git clone https://github.com/yoheinakajima/babyagi.gitthen editable install - Docs:babyagi.org
- Classic archive only:
babyagi_archivewhen you specifically need the 2023 agent for study
No first-class Docker image for 0.1.4 on the official repo. Skip forks that still ship the 2023 loop.
Install BabyAGI step by step
Pin the version. Floating pip install babyagi resolves to 0.1.4 today (as of the Oct 2024 PyPI release still being latest at write-up), but a pin survives a future yank or rewrite under the same name.
# 1. Create an isolated env (Python 3.10 or 3.11 recommended)
python3.11 -m venv babyagi-env
# macOS / Linux
source babyagi-env/bin/activate
# Windows PowerShell
# .babyagi-envScriptsActivate.ps1
# 2. Upgrade pip, then install the exact release
python -m pip install --upgrade pip
pip install babyagi==0.1.4
# 3. Confirm what landed
pip show babyagi
python -c "import babyagi; print('import ok')"
- Confirm
pip show babyagireports Version: 0.1.4. - If
import babyagifails on SQLAlchemy or cryptography, recreate a clean venv – global site-packages are a common silent skew source. - Optional source path:
git clone https://github.com/yoheinakajima/babyagi.git && cd babyagi && pip install -e .(still want 3.10/3.11).
Turns out the repo setup.py still advertises 0.1.2. Prefer the PyPI wheel when you care about the labeled 0.1.4 artifact.
First-time configuration
Minimum run is a tiny driver script. No .env.example is required for the dashboard itself.
# run_babyagi.py
import os
import babyagi
# Optional but needed for AI description / embedding packs and draft self-build
if os.environ.get("OPENAI_API_KEY"):
babyagi.add_key_wrapper("openai_api_key", os.environ["OPENAI_API_KEY"])
app = babyagi.create_app("/dashboard")
@app.route("/")
def home():
return 'BabyAGI is up. Open <a href="/dashboard">/dashboard</a>.'
if __name__ == "__main__":
# Prefer loopback until you own the threat model
app.run(host="127.0.0.1", port=8080, debug=False)
Export the key in the same shell before launch:
export OPENAI_API_KEY="sk-..." # macOS/Linux
# setx OPENAI_API_KEY "sk-..." then new shell on Windows
python run_babyagi.py
Pro tip: Bind
127.0.0.1, not0.0.0.0. Per the Jan 2026 CODE_READINESS_ANALYSIS.md: no dashboard/API auth by default, DB-stored code runs throughexec()without a sandbox, every stored secret is injected into every function scope, and encryption material has shown up in logs. Localhost-only is the least-bad default for a first run.
Keys can also be added later from the dashboard UI. Or register plain Python with @babyagi.register_function() plus optional dependencies / key_dependencies – that’s functionz. Not the old objective queue.
Verify the install works
pip show babyagi | grep -i version
# Version: 0.1.4
curl -s -o /dev/null -w "%{http_code}n" http://127.0.0.1:8080/dashboard
# expect 200 once the app is running
python - <<'PY'
import babyagi
@babyagi.register_function()
def ping():
return "pong"
print(babyagi.ping())
PY
# pong
Browser: http://127.0.0.1:8080/dashboard. Function management, logs, key tools. Root / stays empty unless you added a route like the sample – the UI mounts only at the path passed to create_app.
Common install errors and fixes
These are 0.1.x failure modes. Not the ancient hnswlib / Pinecone build errors from 2023 tutorials.
- 404 on http://localhost:8080/ – Expected without a root route. Open
/dashboard. Community threads: GitHub issues #400 and #390. - ImportError / broken wheel after pip – Contaminated global Python or 3.12+. Fresh 3.11 venv,
pip install babyagi==0.1.4, don’t mix a Poetry lock from the repo with bare pip. - SQLAlchemy 2.x sneaks in – requirements pin
sqlalchemy>=1.4,<2.0. Force that range if another package upgraded it. - OpenAI / litellm errors loading draft packs – Missing key or wrong wrapper name. Call
add_key_wrapper('openai_api_key', ...)beforeload_functions("drafts/..."). Draft self-build packs are experimental; they often emit thin stubs. - Encryption key printed at startup – Called out in the readiness analysis. Treat logs as potentially secret-bearing; don’t ship them.
Think of functionz like a programmable parts bin that can also weld new parts while you’re holding it. Fine on a workbench. This tree does not ship a cage.
Upgrade and uninstall
Upgrade when a newer PyPI release exists:
source babyagi-env/bin/activate
pip install --upgrade babyagi
pip show babyagi
No formal migration guide between 0.0.x and 0.1.4. Function records sit in the local functionz DB. Copy any working-directory DB files you care about before upgrading a source checkout – the public quick start never names the on-disk path.
Uninstall / cleanup:
pip uninstall babyagi -y
deactivate
rm -rf babyagi-env
# remove run_babyagi.py and any local SQLite/DB files created in the cwd
# exact DB filename isn't on the public quick start - search the project dir for recent .db files
Rotate keys you pasted into the dashboard on a shared machine. Uninstall does not scrub secrets already written to the local store.
FAQ
Is BabyAGI 0.1.4 the same as the viral 2023 agent?
No. The March 2023 task loop was snapshotted to babyagi_archive. 0.1.4 is functionz + dashboard. Different runtime.
Do I still need Pinecone?
Not for this package. Classic tutorials required Pinecone (or Chroma/FAISS) as vector memory for task results. Current BabyAGI keeps functions and logs in its own DB layer and reaches LLMs through litellm/openai when you enable AI packs. If a guide still lists PINECONE_API_KEY as mandatory, it’s documenting the archive – not 0.1.4.
Can I put this on a public VPS?
Technically yes. Practically, only after you add controls the project does not include. Author label: experimental. The readiness analysis is blunt about missing auth and unsandboxed exec(). Harden outside the package, or keep it on loopback.
Next: create the venv, pip install babyagi==0.1.4, drop in run_babyagi.py, open http://127.0.0.1:8080/dashboard, register one dummy function before loading any draft self-build packs.