Day 01 / 共 20 天 · 第 1 周 核心概念

项目全景与架构

第一天建立全局认知:SuperAGI 是什么、它作为"平台"和一段脚本的区别、核心概念、六个 docker 服务、完整数据流。

📍 你在整门课的位置 · 第 1 周 核心概念(D1-5)· 这条链每天开头都会点亮你所在的格子
D01 全景架构 D02 Agent D03 工具 D04 运行平台 D05 完整旅程· 第2周 Agent执行· 第3周 工具/记忆/资源· 第4周 平台/异步/生态
L01

它是什么

SuperAGI 是一个开源的自主 AI 智能体框架/平台。README(README.MD:11)一句话定义:"Open-source framework to build, manage and run useful Autonomous AI Agents"——构建、管理、运行有用的自主 AI 智能体的开源框架。

用最白的话说 你在一个带图形界面的完整平台上定义一个智能体:给它目标("帮我调研竞品定价")、工具(能上网搜索、能读写文件)、大模型。然后后台就有个"数字员工"自主循环地干活——自己拆解任务、选工具执行、看结果、继续,直到达成目标。你在界面上实时看它每一步在干嘛。它支持同时跑多个智能体、有工具市场、能给智能体配长期记忆。

📝 你给的"输入" → 平台产出的"过程 + 结果" 你在界面上填:目标 调研 3 家竞品的定价并汇总成表格,勾选工具 WebSearch + WriteFile
平台自主跑出(你在界面实时看到):思考:先搜第一家 → 调 WebSearch("竞品A pricing") → 看到结果 → 思考:再搜第二家 → …… → 调 WriteFile("竞品定价.csv") → 宣布完成
最终产出:一个 竞品定价.csv 文件 + 一整条可回看的"思考/动作流水"。你只给了"目标 + 工具",中间每一步都是它自己决定的。
💡 一个贯穿今天的类比:SuperAGI = 一家"开门营业的餐厅" 今天我会一直用"餐厅"打比方:你自己写个脚本调 LLM,像"在家炒盘菜"——吃完就完;SuperAGI 是"一家正经营业的餐厅"——有前台接单(backend)、后厨做菜(celery)、订单小票夹(Redis 队列)、仓库账本(Postgres)、大堂招待分流客人(Nginx),还有菜单和菜谱(工作流)。把"自主智能体"从家庭小炒,升级成能同时招待很多客人的餐厅——这就是"平台 vs 脚本"的差别。
⚠️ 常见误解:小白常以为 "Agent 智能体" 是一段"很聪明、会自己思考"的复杂代码。其实 SuperAGI 里几乎没有这样一段聪明代码——"聪明"来自运行时反复调 LLM,框架本身只是一套工程编排(接单、排队、干活、存状态、展示)。这也是明天 Day02 会亲眼验证的。
L02

和"一段脚本"的区别

你也能自己写个 Python 脚本调 LLM + 工具循环。但 SuperAGI 是平台,不是脚本。区别在于它提供了一整套"工程化、可运维"的能力:

  • GUI:可视化创建/监控智能体,不用写代码。
  • 并发 + 异步:Celery worker 后台跑,同时跑多个智能体,不阻塞界面。
  • 持久化:智能体、每次运行、每一步都存数据库,可回看、可恢复。
  • 工具市场 + 长期记忆 + 资源管理 + 多租户
"脚本"vs"平台" 脚本:跑完就没了、一次一个、崩了要手动重来、没界面。平台:能管理很多智能体、后台可靠运行、状态全持久化、有界面监控、能定时跑、能协作。就像"自己写个爬虫脚本"vs"一个爬虫管理平台"。SuperAGI 的价值是把"自主智能体"从玩具脚本变成可运维的生产系统。

L03

核心概念地图

🤔 一下冒出 Agent、Execution、Workflow、Tool、Feed……名词好多,会不会记乱? 第一次看框架文档,最劝退的就是一堆互相引用的新名词,不知道谁是谁的"爸爸"、谁在什么时候出场。
💡 一句话本质:它们其实是一条主线上的不同环节 别把它们当"一堆平行名词",而当成一条流水线上的接力棒Agent(定义一个数字员工)→ Execution(点一次"运行"就产生一次运行)→ 按 Workflow Step 一步步走 → 每步可能用 Tool → 每步产出写进 Feed。把这条线记牢,下面的名词就各就各位了。
  • Agent(智能体):有目标、工具、LLM 的"数字员工"。
  • AgentExecution(一次运行/Run):智能体的一次执行——它可以被跑很多次,每次是一个 Execution。
  • Workflow / Step(工作流/步骤):智能体不是纯放飞循环,而是按工作流步骤驱动(迭代步、工具步、等待步)——比纯 ReAct 更结构化。
  • Tool / Toolkit(工具/工具包):智能体的能力(搜索/文件/代码…),成组为 toolkit,有市场。
  • Feed(执行流水):智能体每一步的思考/动作/结果,GUI 实时展示。
  • 多租户层级:Organisation → Project → Agent。
这些是后面 20 天的主角。今天先混脸熟。核心记住:Agent(定义)→ Execution(一次运行)→ 按 Workflow Step 循环 → 用 Tool → 产出 Feed
顺带记住那条多租户层级 Organisation → Project → Agent,就像"公司 → 部门 → 员工"——公司下分部门、部门里有员工,隔离清晰(A 公司看不到 B 公司的员工)。
L04

六个 docker 服务

docker-compose.yaml 定义了 6 个服务,正好对应架构:

backend         # FastAPI 后端(superagi/),跑 API(uvicorn main:app)
celery          # 同镜像,跑 Celery worker(后台执行智能体循环)★
gui             # Next.js 前端
super__redis    # Redis:Celery broker + 结果 backend + 向量存储
super__postgres # PostgreSQL:智能体/执行/工具等全部数据
proxy           # Nginx,对外 3000 端口,分发 /api → 后端、其余 → GUI
🧑 浏览器 proxyNginx :3000 guiNext.js 前端 backendFastAPI :8001 celery ★后台跑循环 super__redis队列 + 向量 super__postgres全部数据 其余 /api 入队 领取
六服务架构:proxy 是唯一入口按路径分发;backend「接单」把任务入 Redis 队列,celery「干活」领取后台跑循环;两者共用 postgres 存数据、redis 当队列。
为什么 backend 和 celery 是两个服务(同一镜像)? backend 接 HTTP 请求(创建智能体、查状态)——要快速响应。celery 在后台跑智能体的自主循环(一轮轮调 LLM,很慢)——不能卡住 HTTP。把"接单"(backend)和"干活"(celery)分成两个进程,backend 收到"运行智能体"请求后,把任务丢进 Redis 队列立刻返回,celery worker 领走慢慢跑。这和 AutoGPT 的 REST/executor 分离、OpenHands 的双进程完全同构——"接单快、干活慢"就要分离。

💥 不分开会出什么事故(错误驱动):假如让 backend 自己在 HTTP 请求里跑智能体循环——用户一点"运行",这个请求就得卡住几分钟甚至更久(一轮轮调 LLM)。浏览器 30 秒就超时报错,界面转圈假死;更糟的是一个 uvicorn 工作进程被一个智能体霸占,别人连"登录""看列表"都点不动。正因为会这样,才必须把"干活"甩给后台 celery。这就是餐厅要把"前台"和"后厨"分成两拨人的原因。
L05

完整数据流

GUI创建智能体 FastAPI建 Execution Redis 队列execute_agent.delay Celery worker跑一步循环 Feed写每步产出 GUI 轮询实时展示
读法:GUI 定义智能体 → API 建 AgentExecution 并 execute_agent.delay() 入 Redis 队列(controllers/agent_execution.py:148)→ Celery worker 领取,跑智能体一步(LLM+工具)→ 每步产出写入 feed → GUI 轮询 /agentexecutionfeeds 实时展示。API 全程不阻塞。这就是 Day 05 会追踪的完整旅程。
L06

目录结构

SuperAGI/
├── main.py              # FastAPI 入口(挂载 30+ 控制器)
├── superagi/            # ★ 后端核心
│   ├── agent/           # Agent 执行核心(step handler/prompt/解析)Day 06-09
│   ├── controllers/     # FastAPI 端点(28 个)Day 16
│   ├── jobs/            # Celery 任务(agent_executor)Day 17
│   ├── worker.py        # Celery worker 定义 Day 17
│   ├── llms/            # LLM 抽象 Day 10
│   ├── tools/           # 工具 Day 03/11
│   ├── tool_manager.py  # 工具管理 Day 12
│   ├── vector_store/    # 向量记忆 Day 13
│   ├── resource_manager/# 资源/文件 Day 14
│   └── models/          # DB 模型(35 个)Day 15
├── gui/                 # Next.js 前端 Day 18
├── docker-compose.yaml  # 六服务编排 Day 04
└── config_template.yaml # 配置模板 Day 19
读法:后端核心全在 superagi/——记住 agent/(执行核心)、jobs/+worker.py(异步)、tools/vector_store/models/ 几个重点目录。这份结构就是 20 天的路线图。
🎵 六服务记忆口诀 + 一句话复述 口诀:「一入口(proxy)、一界面(gui)、一接单(backend)、一干活(celery)、一账本(postgres)、一小票夹兼记忆(redis)」
一句话复述今天:SuperAGI 就是把"自主智能体"做成一家六岗位的餐厅——接单快、干活甩后台、状态全记账,所以能同时招待很多客人、崩了也不丢单。
L07

技术栈

  • 后端:FastAPI + SQLAlchemy + Alembic(迁移)+ PostgreSQL。JWT 登录。
  • 异步:Celery + Redis(broker + backend)。
  • 前端:Next.js。Nginx 反向代理(3000 端口入口)。
  • LLM/向量:openai、llama-index、Pinecone/Chroma/Qdrant/Weaviate 客户端。
  • 工具依赖:jira、slack、tweepy、google-search 等一大堆(工具接各种服务)。
配置config_template.yaml(复制成 config.yaml)集中放 LLM key、模型名、DB/Redis 连接、存储类型(FILE/S3)、各工具凭据、JWT/加密 key。启动时(main.py 的 startup 钩子)会自动注册工具、seed 内置工作流(Goal Based、Fixed Task、SuperCoder 等)——新用户开箱就有预置工作流和工具。
L08

今日小结 + 动手

🧠 今天你应该能回答

  • SuperAGI 是什么?作为"平台"和一段脚本的区别?
  • 核心概念:Agent/Execution/Workflow Step/Tool/Feed?
  • 六个 docker 服务各是什么?backend 和 celery 为什么分开?
  • 完整数据流:从 GUI 创建到后台运行到 GUI 展示?
  • 后端核心在哪个目录?

✋ 动手:确认结构

# 1. 后端核心目录
ls superagi/

# 2. 六个 docker 服务
grep -nE '^\s+(backend|celery|gui|super__|proxy):' docker-compose.yaml

# 3. FastAPI 挂载了哪些控制器
grep -n 'include_router' main.py | head
明天预告 · Day 02:精讲第一个核心概念——Agent(自主智能体):目标/指令/约束/工具/LLM/最大迭代数怎么配,自主循环的心智模型。
← 总目录 Day 02 · Agent →