跳到主要内容

自主 Agent 框架

BabyAGI 本地部署:把会自己写代码的 Agent 关进自己的 GPU 里

BabyAGI 没有权重文件,它要的不是显存,是一个你自己说了算的 LLM 端点。这页把三条现存分支、后端模型的真实显存账、以及那些让循环烧穿钱包的坑一次讲完。

先把版本问题说清楚,否则你会在错误的仓库上浪费一晚上。2023 年 3 月那个引爆全网的 BabyAGI —— 三段任务循环、Task Creation Agent 造任务、Prioritization Agent 排序、Execution Agent 执行 —— 已经在 2024 年 9 月被作者 Yohei Nakajima 归档,搬进了 babyagi_archive 仓库,路径是 classic/babyagi.py,作者自称是「精简版的 Task-Driven Autonomous Agent」,正文大约 140 行。同一个 classic 目录下还躺着 BabyBeeAGI.py、BabyCatAGI.py、BabyDeerAGI.py 以及 BabyElfAGI/、babyfoxagi/ 这几个后续实验分支。今天你 pip install babyagi 装到的,是完全重写过的另一个东西:一个叫 functionz 的函数管理框架,把函数存进数据库、画依赖图、配 Flask 面板,主打「self-building autonomous agent」。

第二件事:BabyAGI 的显存需求是零。它是几百行 Python,没有 checkpoint,没有 safetensors。所有人问的「BabyAGI 需要多大显存」,问的其实是「我拿哪个模型喂这个循环」。这里的接缝是 litellm —— functionz 的 ai_functions.py 里直接写着 from litellm import completion 和 from litellm import embedding,默认模型是 gpt-4o,默认 embedding 是 text-embedding-ada-002;babyagi-2o 那个单文件版本读的是环境变量 LITELLM_MODEL,默认值是 anthropic/claude-3-5-sonnet-20240620。也就是说,你什么都不改直接跑,它就是在打云端 API 账单,跟「私有化部署」完全是反方向。要真正落地,你得把这个端点掰到自己的卡上。

第三件事,也是最该租卡的理由:这套东西会执行它自己写出来的代码。functionz 的 drafts/self_build 与 code_writing_functions 会让模型现场生成新函数并注册进库;babyagi-2o 更直接,main.py 里带一个 install_package(),模型缺什么包就 subprocess 调 pip 装什么包,然后 exec。这种行为放在你的开发机上是灾难,放在一台按秒计费、跑完就销毁的 GPU 实例里才是正确姿势。顺带一提,作者本人的重心已经转到 activegraph 上 —— 一个事件溯源的响应式图运行时,v1.10.0(2026 年 7 月)、Apache-2.0、Python 3.11+ —— 它的 examples/babyagi.py 把 BabyAGI 的自主循环重写成了共享图上的三个 reactive behavior。想跑原味循环又不想被 2024 年的依赖卡住,那是目前最新的落点。

01 —

BabyAGI 今天到底有几条线

四个仓库都还能跑,但它们要的后端模型完全不是一个量级

版本参数量显存上下文说明
babyagi_archive · classic/babyagi.py(2023 原版)约 140 行 Python · 无权重后端 8B 级 Q4_K_M 约 4.9GB 权重起;本地 embedding 换 bge-m3 fp16 约 1.2GB4K 可跑,8K 更稳(objective + 任务列表 + top-k 上下文一起塞)2024 年 9 月归档的三段循环本体,默认向量库 Chroma,也支持 Weaviate。想复现那篇让所有人上头的 demo 就跑这个;README 里保留了 LLM_MODEL=llama 走 llama-cpp 的本地路径,但要你自备权重和 LLAMA_MODEL_PATH。
babyagi 0.1.4(functionz,pip 上的那个)0.1.4 · 无权重后端建议 14B 起,Q4_K_M 约 9GB / Q8_0 约 15.7GB / bf16 约 28GB8K 起步,函数库一大、依赖图全进 prompt 就得 16K 以上2024 年 10 月发布至今的最新 PyPI 版本,MIT、Flask 面板挂在 :8080/dashboard。requirements 里 sqlalchemy>=1.4,<2.0 这条硬约束会跟现代 Python 栈打架,务必单开 venv。适合做函数依赖可视化和自建函数实验。
babyagi-2o(单文件极简版)约 185 行 · 无权重后端必须支持 tool calling:14B Q4_K_M 约 9GB,32B Q8_0 约 35GB 更稳建议 32K —— 工具定义会随迭代不断累积进 messages作者称之为「最简单的自建通用自主 Agent」。主循环写死 max_iterations = 50,靠模型调用 task_completed 提前跳出。它会 pip install 任意包再 exec,只应该跑在一次性实例里。
activegraph v1.10.0 · examples/babyagi.pyv1.10.0 · 无权重同后端;跑长时无人值守建议 30B-A3B Q4_K_M 约 18.6GB 或 32B Q8_0 约 35GB32K+,事件日志投影出来的图会持续进 promptApache-2.0、Python 3.11+、pip install "activegraph[llm]"。把 BabyAGI 的循环重写成共享图上的三个 reactive behavior,append-only 事件日志是唯一真相源 —— 循环跑飞了能回放追责,这是原版最缺的东西。

02 —

后端模型选多大,卡就选多大

BabyAGI 不吃显存,喂它的那个模型吃;下面按你真实要跑的量级对号入座

  • 跑通 classic/babyagi.py 三段循环,8B 级模型 Q4_K_M 验证流程

    RTX 3090 24GB$0.193/卡·时

    8B 的 Q4_K_M 权重约 4.9GB,24GB 里塞完模型还能顺手带一个 bge-m3 本地 embedding,把 ada-002 那条云端依赖也一起断掉。

  • functionz 自建函数 / babyagi-2o,需要稳定 tool calling 的 14B 量级

    RTX 4090 24GB$0.540/卡·时

    14B Q4_K_M 约 9GB 权重,32K 上下文的 KV 还有大把余量;想上 14B bf16(约 28GB)就换 RTX 5090 32GB $0.723/卡·时。

  • 无人值守连跑,要求任务列表 JSON 一次解析成功的 32B / 30B-A3B

    RTX A6000 48GB$0.817/卡·时

    Qwen3-32B Q8_0 约 35GB、30B-A3B Q4_K_M 约 18.6GB,48GB 都装得下且 KV 宽裕 —— 循环稳不稳,八成取决于结构化输出会不会崩。

  • 70B 级后端或 32B bf16,多个 Agent 实例并发跑长上下文

    A100 SXM4 80GB$1.088/卡·时

    70B 的 Q4_K_M 约 42.5GB、32B bf16 约 65GB,硬塞 48GB 卡会把 KV 挤到只能跑短上下文;80GB 才是能连跑一夜的配置。

03 —

四步把 BabyAGI 接到自己的端点上

关键不在装框架,而在让它别再偷偷打 gpt-4o

  1. 01

    开一台卡,用 vLLM 起本地 OpenAI 兼容端点

    选 NexGPU 预置的 vLLM 镜像,开机即用。这里有个省事的技巧:functionz 的 ai_functions.py 把模型名硬编码成了 gpt-4o,与其去改源码,不如直接用 --served-model-name 把你的本地模型伪装成 gpt-4o。tool calling 是 babyagi-2o 的硬需求,Qwen3 系列在 vLLM 下用 hermes 解析器。

    vllm serve Qwen/Qwen3-14B --served-model-name gpt-4o --enable-auto-tool-choice --tool-call-parser hermes --max-model-len 32768 --port 8000
  2. 02

    单开 venv 装 BabyAGI,把 litellm 指回本机

    sqlalchemy>=1.4,<2.0 这条 pin 是 0.1.4 的既定事实,不隔离迟早跟别的库对撞。装完只要设两个环境变量,litellm 就会把所有 completion 请求转发到 127.0.0.1:8000,API key 随便填一个占位串即可,本地端点不校验。

    python -m venv .venv && . .venv/bin/activate && pip install babyagi && export OPENAI_API_BASE=http://127.0.0.1:8000/v1 OPENAI_API_KEY=sk-local
  3. 03

    起 Flask 面板,注册函数、看依赖图

    面板在 /dashboard,能看到函数、依赖关系、执行日志和密钥管理。注意它默认绑 0.0.0.0:8080 —— 公网 IP 上千万别裸奔,用 SSH 端口转发把 8080 拉回本地浏览器就好。另外 embedding 默认还是 text-embedding-ada-002,要彻底离线得把它换成本地向量模型。

    python -c "import babyagi; babyagi.create_app('/dashboard').run(host='0.0.0.0', port=8080)"
  4. 04

    开自建循环前,先把护栏装上

    classic/babyagi.py 的循环本身没有终止条件,babyagi-2o 也只有一个写死的 max_iterations = 50。上 self_build 之前,先设好迭代上限、给实例一个明确的关机时间点。真要长期跑,换 activegraph 那条线 —— 它的 append-only 事件日志能把每一步都回放出来,出问题不用靠猜。

    pip install "activegraph[llm]" && python -m activegraph.examples.babyagi

一周的自建 Agent 实验,实际要花多少

按 Qwen3-14B Q4_K_M(约 9GB 权重)配 RTX 4090 24GB $0.540/卡·时 算:每天开 3 小时调 functionz 的函数库,一周跑 5 天共 15 小时,算力费 0.540 × 15 = $8.10。模型权重加依赖占 20GB,存储按 $0.414/GB·月 中位价,只留 5 天就销毁的话是 20 × 0.414 × 5 ÷ 30 ≈ $1.38。最后把函数库和执行日志导出,2GB 出网按 $0.0081/GB 计 ≈ $0.02。一周总计约 $9.50。如果只是想复现 2023 那个原版三段循环,8B Q4 配 RTX 3090 24GB $0.193/卡·时,跑 3 小时是 0.193 × 3 = $0.58,一顿早饭的钱。对照一下另一条路:同样 15 小时让一个没有终止条件的 while 循环去调云端 gpt-4o,token 账单是不封顶的,而这边停机即停止计费,秒级结算,没有起租门槛,也没有配额申请。

04 —

常见问题

BabyAGI 本地部署到底需要多大显存?

BabyAGI 自己需要 0GB —— 它是几百行 Python,没有任何权重文件。显存全部消耗在你给它接的后端 LLM 上:8B 级 Q4_K_M 约 4.9GB,14B Q4_K_M 约 9GB、bf16 约 28GB,32B Q8_0 约 35GB,70B Q4_K_M 约 42.5GB,这些是权重占用,KV cache 还要另算。所以选卡的正确问法是「我打算用多大的模型驱动这个循环」。在 NexGPU 上,从 RTX 3090 24GB $0.193/卡·时 到 A100 SXM4 80GB $1.088/卡·时,四个档位覆盖上面全部区间,先开小卡试通再往上换。

BabyAGI 还在维护吗?2023 年那个版本还能跑吗?

能跑,但要去对的地方找。2023 原版已于 2024 年 9 月归档到 babyagi_archive 仓库,classic/babyagi.py 就是那个约 140 行的本体,依赖装好、配上向量库照样能复现。主仓库现在是重写后的 functionz 框架,PyPI 最新版停在 2024 年 10 月的 0.1.4,之后基本没有功能更新。作者的精力已经转到 activegraph(v1.10.0,2026 年 7 月,Apache-2.0),那里的 examples/babyagi.py 是这套循环最新的活体实现。三条线在 NexGPU 的 Ubuntu CLI 或 PyTorch 镜像里都能十分钟内起起来,不合适随时销毁重开。

BabyAGI 可以完全不用 OpenAI API、纯本地跑吗?

可以,但有两个容易漏的地方。第一是 completion:functionz 走 litellm,设好 OPENAI_API_BASE 指向本地 vLLM 就转过去了,因为 ai_functions.py 把模型名写死成 gpt-4o,最省事的做法是 vLLM 启动时加 --served-model-name gpt-4o。第二是 embedding:默认值是 text-embedding-ada-002,你不换掉它,它就还在往外打请求 —— 换成 bge-m3 之类的本地向量模型(fp16 约 1.2GB)才算真正断网。整套在一张 NexGPU 的 RTX 4090 24GB $0.540/卡·时 上就能跑完,模型和向量库都不出这台机器。

BabyAGI 的任务循环停不下来、一直烧钱怎么办?

这是原版设计上的固有问题:classic/babyagi.py 的主循环没有终止条件,Task Creation Agent 每执行完一个任务就会再造几个新的,README 自己也提醒持续运行会带来很高的 API 用量。babyagi-2o 好一点,写死了 max_iterations = 50 并让模型调 task_completed 提前跳出。实操建议是:迭代上限、单次任务超时、实例定时关机三件套一起上。跑在 NexGPU 上的好处是成本可预期 —— 按秒计费,实例一停算力费就停,不像不封顶的 token 账单那样让你半夜心慌。

本地小模型跑 BabyAGI 效果很差,是模型不行还是配置问题?

多半是结构化输出崩了。这套循环的每一环都要求模型稳定吐出可解析的任务列表或工具调用:Task Creation 要返回结构化任务,babyagi-2o 更是完全建立在 tool calling 之上,模型一旦格式跑偏,轻则解析失败,重则反复生成同一个任务原地打转。7B 以下的模型在这件事上普遍不稳。经验阈值是 14B 起、能干净跑 tool calling 的模型,再往上到 30B-A3B 或 32B 会明显更省心。NexGPU 的 RTX 5090 32GB $0.723/卡·时 和 RTX A6000 48GB $0.817/卡·时 正好覆盖这两档,可以直接换卡对比同一个任务的成功率。

让 BabyAGI 自己写代码、自己装包,安全吗?

不安全,所以才要隔离。functionz 的 drafts/self_build 和 code_writing_functions 会让模型生成新函数并注册进数据库直接执行;babyagi-2o 的 main.py 里有 install_package(),模型缺包就 subprocess 调 pip 装,然后把生成的代码 exec 掉。作者本人在 README 里写得很明白:这是实验性框架,不适合生产环境。正确做法是给它一台一次性机器 —— NexGPU 的实例开机即用、按秒计费、跑完直接销毁,2000+ 预置镜像里挑 PyTorch 或 Ubuntu CLI 起手,出事最多损失这一台,你的开发机毫发无伤。

开始使用 NexGPU

无论你是企业研发团队还是独立开发者,都可以在几分钟内跑起第一个任务。

注册即可浏览全网实时价格,无需绑定支付方式。