构建、测试与收官串讲
最后一天:本地开发测试、从零搭 Agent 清单、常见坑、20 天知识地图、AutoGPT 设计哲学,以及和你学过的其他框架的横向对比。
👶 小白:学完这 20 天,我现在到底能干嘛?会不会转头就忘光?
👨🏫 老师:三件事你已经能做:① 读懂平台源码——再看 block.py / graph.py / executor 不再发怵;② 写自己的 Block(继承基类、声明 schema、配 test_mock)并被 AutoRegistry 自动收录;③ 看懂一张 Graph 是怎么被调度、扣费、实时推送的。忘细节没关系,记住那句厂训——"积木连成图、数据顺线流、作坊变工厂、可控又能收费",需要时回来查地图即可。
本地开发与测试
cd autogpt_platform
docker compose up -d # 一键起全平台(Day 04)
# 或分开:make start-core / make run-backend / make run-frontend
# 测试
cd backend && poetry run pytest # 后端单测
poetry run pytest backend/blocks/ # 只测 Block
POST /api/blocks/{id}/execute 单独测一个块,对了再连图。可视化 + 事件流让 AutoGPT 的调试比纯代码 Agent 直观——你能"看见"数据在图里流。Block 自带测试
test_mock 把块里"调外部 API"那一步换成一个返回固定假数据的函数——于是测试不联网、不花钱、结果确定,只验证块自身的输入处理和输出组装逻辑对不对。这就是软件测试里的 mock(打桩)思想:隔离掉不可控的外部依赖,只测你自己的代码。后端整体用 poetry 管依赖、pytest 收集各处 *_test.py 自动执行。回忆 Day 02/06:每个 Block 都有 test_input/test_output/test_mock。测试框架自动跑:给 test_input,验证产出等于 test_output;调外部 API 的块用 test_mock 换成假响应。仓库里 *_test.py 遍布各目录(如 executor/manager_test.py、data/credit_test.py),数据库模型在 schema.prisma、变更走 migrations/。
test_input={"a":2,"b":3}、test_output=("result",5)。测试框架自动做:喂
{"a":2,"b":3} 给 run() → 收集输出 → 断言输出的 result 等于 5。若是"调 OpenAI 的块",再加
test_mock={"call_llm": lambda *_: "假回答"}——测试时 call_llm 被换成直接返回 "假回答",不联网、不花钱、结果每次都一样。poetry run pytest 就把这些样例全跑一遍。test_mock(Day 07)让调 API 的块也能免费、快速、确定地测。这就是 300+ 块能保持质量、社区能放心贡献的保障——测试是 Block 定义的一等公民。从零搭一个 Agent 的清单
- 启动平台(docker compose),打开 localhost:3000(Day 04)
- 充值 credit / 用系统凭据(Day 16/17)
- 在画布拖入 INPUT 块(Agent 的输入口,Day 07)
- 拖入功能块(读网页/LLM/发邮件…),连线(前块输出→后块输入,Day 03)
- 需要外部服务?给块配凭证(系统凭据零配置 / 连你的账号,Day 08/17)
- 拖入 OUTPUT 块(结果出口)
- 保存(自动版本化,Day 11)、点运行、看实时执行(Day 15)
- 想定时?配 schedule("每天 8 点",Day 14)
- 做好了?上架 Store 分享/变现(Day 18)
- 想扩展新能力?写自定义 Block(SDK,Day 10)
常见坑速查
- 找 Block 基类在 data/block.py:错!在
blocks/_base.py(Day 02)。 - 新 Block 免费:没在 BLOCK_COSTS 登记 = 从钱包视角免费(Day 09),加块记得配成本。
- 节点不执行:可能输入没齐("攒齐才入队",Day 13)——检查所有必需输入口是否有连线或默认值。
- 402 报错:余额不足(付费墙,Day 16/18)——充值。
- 凭证明文:别硬编码,用凭证字段(引用 vs 实体,Day 08)。
- Block id 别改:id 是永久身份,改了引用它的图就断了(Day 06)。
- cron 星期:APScheduler(0=周一) vs Unix cron(0=周日),注意转换(Day 14)。
20 天知识地图
第1周 核心概念
- D1 全景/转型
- D2 Block
- D3 Graph
- D4 运行平台
- D5 执行旅程
第2周 Block 系统
- D6 基类/生命周期
- D7 真实 Block
- D8 凭证
- D9 成本
- D10 SDK
第3周 执行引擎
- D11 Graph 模型
- D12 manager
- D13 数据流
- D14 Scheduler
- D15 WebSocket
第4周 平台/起源
- D16 Credits
- D17 凭证OAuth
- D18 API/REST
- D19 经典起源
- D20 收官
贯穿始终的设计哲学
四框架横向对比(你已学四个!)
你现在学过 eino、OpenHands、CrewAI、AutoGPT 四个 Agent 系统。对比它们的"编排范式":
- eino:Go 代码编排(Chain/Graph/Workflow),面向开发者、类型安全。
- OpenHands:Action/Observation 事件循环,自主软件工程师(写代码干活)。
- CrewAI:角色扮演多智能体团队(Crew)+ 事件驱动工作流(Flow)。
- AutoGPT Platform:可视化 Block 图,低代码、计量 SaaS。
🎓 结业 + 下一步
恭喜你完成 AutoGPT 20 天源码学习!
你从零基础,走到了理解"可视化 Agent 构建平台如何构建"的水平——Block 积木、Graph 图、拓扑执行引擎、计量计费、凭证/OAuth、REST/WebSocket,以及它从 2023 全自主鼻祖到今天可控平台的演进。这是你学完的第四个 Agent 系统——你已经建立了"看穿任何 Agent 框架"的能力。
🚀 下一步建议
- 动手搭:照 L03 清单,在平台上搭一个真实自动化(比如"每天新闻摘要发邮箱")。
- 写个 Block:照 Day 10 SDK,给平台加一个你需要的自定义积木。
- 读 tests:
backend/blocks/test/和各处*_test.py是活文档。 - 横向对比:回顾 eino/OpenHands/CrewAI,对比它们和 AutoGPT 的异同——你会理解得更深。本系列后续还有 SuperAGI、LangGraph、openclaw、higress、apisix。