
官方信息表
| 项目 | 内容 |
|---|---|
| 项目名称 | BabyAGI |
| 仓库地址 | yoheinakajima/babyagi |
| 开源协议 | MIT |
| 最新更新 | 2026-01-31 |
| 定位 | 实验性自构建自主智能体,基于 functionz 函数框架 |
项目背景
BabyAGI 由 Yohei Nakajima 于 2023 年 3 月创建,是最早把「任务规划+自主执行」带入公众视野的智能体项目之一。原版 BabyAGI 以任务队列驱动:创建任务、执行任务、根据结果生成新任务。作者在 2024 年 9 月将原版归档到 babyagi_archive,并重写了全新的 BabyAGI。新版基于 functionz 函数框架:智能体把自己学到的函数存入数据库,自动追踪依赖关系和认证信息,并通过 Dashboard 管理函数。作者明确表示这是实验项目,不建议直接用于生产。
核心特性
- functionz 函数框架:每个函数带元数据、依赖关系、认证密钥,自动加载和日志记录
- 函数依赖图:基于图结构追踪函数间的导入和依赖
- Dashboard:Web 界面管理函数、运行更新、查看日志
- 自我构建:智能体在执行中动态注册新函数,越用越强
- 极简设计:核心代码量小,适合学习和二次开发
环境要求
- Python 3.10+
- OpenAI API Key(或兼容接口)
- 数据库:默认 SQLite
部署步骤
pip install babyagi
创建启动脚本:
import babyagi
if __name__ == "__main__":
app = babyagi.create_app('/dashboard')
app.run(host='0.0.0.0', port=8080)
运行后访问 http://localhost:8080/dashboard。
使用方法
注册函数并声明依赖:
import babyagi
@babyagi.register_function()
def world():
return "world"
@babyagi.register_function(dependencies=["world"])
def hello_world():
return f"Hello {world()}!"
print(babyagi.hello_world()) # 输出: Hello world!
智能体会自动加载依赖函数并在 Dashboard 中展示调用图。函数元数据包括描述、参数、返回值、认证信息,存储在数据库中持久化。
架构原理
BabyAGI 的执行模型分为三层:最底层是函数注册表(functionz),把每个函数的代码、依赖、密钥、元数据持久化到数据库;中间层是加载器,根据依赖图自动排序加载函数;最上层是 Dashboard,提供 Web 界面观察执行过程。智能体在运行中可以动态注册新函数,形成自改进循环。
常见问题 FAQ
Q:BabyAGI 可以直接上生产吗? A:作者明确警告这是实验框架,不建议生产使用,适合学习智能体原理。
Q:和旧版 BabyAGI 有什么区别? A:旧版是任务队列驱动的脚本,已归档;新版基于 functionz,函数可自我积累和组合。
Q:需要 GPU 吗? A:不需要,它调用云端 LLM API,本地只跑编排逻辑。
函数元数据
每个注册函数自动携带以下元数据:函数描述、参数列表、返回值类型、依赖关系、认证密钥。这些元数据存储在数据库中,Dashboard 以图形式展示函数间的调用关系。你可以在 Dashboard 中查看每个函数的执行日志、错误堆栈和输入输出。
更多使用示例
@babyagi.register_function()
def search_web(query: str):
"""搜索网页"""
return f"搜索结果: {query}"
@babyagi.register_function(dependencies=["search_web"])
def research_topic(topic: str):
results = search_web(topic)
return f"关于 {topic} 的研究: {results}"
跳转链接
- 仓库:github.com/yoheinakajima/babyagi
- 旧版归档:babyagi_archive
- 介绍推文:X/Twitter