Loading...

文章背景图

BabyAGI:自我构建的极简自主智能体框架

2026-01-31
0
- 字
- 分钟
|

BabyAGI

官方信息表

项目 内容
项目名称 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}"

跳转链接

评论交流

文章目录