Day 19 / 共 20 天 · 第 4 周 起源故事

经典 AutoGPT 与 Forge

回到 2023 那个引爆"自主 AI 智能体"热潮的原始 AutoGPT。读 classic/ 的 think→plan→act 循环和 Forge 框架——理解整个 Agent 领域的来路。

📍 你在整门课的位置 · 第 4 周 平台化与收官
D18 REST API D19 经典/Forge D20 收官 🎓 结课
💡 今天的类比世界观:经典 AutoGPT = 一个"自言自语的独行侠" 回到 2023 的原始 AutoGPT:think → plan → act 循环 = 一个人不停"想一步 → 定计划 → 动手 → 看结果 → 再想"地自言自语干活;组件化 pipeline = 后来才把这套本事拆成模块Forge = 一套"造 Agent 的脚手架"权限沙箱 = 给这个放飞的独行侠一间隔离房,别让他乱碰真实系统。对照 Day 01 的"工厂",你会更懂它为何转型。今天都用"独行侠 vs 工厂"来想。

👶 小白:经典 AutoGPT 当年那么火,为什么反而被"退役"、团队转去做平台?

👨‍🏫 老师:正因为它是个"自言自语的独行侠"——给个目标就自己 think/plan/act 一路狂奔。问题是不可控:会跑偏、会陷入死循环、会把 token(钱)烧光还给你编数据,没法交给企业用于生产。于是团队把"一个人放飞"改成"你搭好流水线、AI 只在每个工位上发挥"的工厂(平台)。这正好呼应 Day 01:整个行业都在从"炫技的放飞"走向"可靠的工程化"。

L01

回到 2023

classic/original_autogpt/README.md:1 原文:"AutoGPT is an experimental open-source application... driven by GPT-4, chains together LLM 'thoughts', to autonomously achieve whatever goal you set. As one of the first examples of GPT-4 running fully autonomously..."

"fully autonomously"——这四个字点燃了行业 2023 年,大家刚习惯"和 ChatGPT 一问一答"。AutoGPT 展示了:给 GPT-4 一个目标,它能自己把 LLM 的"思考"串成链条、自主达成目标——无需人类逐步指挥。"完全自主运行的 GPT-4"这个概念太震撼,GitHub 几周冲到十几万 star。虽然它当时经常跑偏、烧钱、陷入循环,但它第一次让世界看到"AI Agent"的可能性——今天所有 Agent 框架都是这波浪潮的后来者。读它 = 读 Agent 领域的创世记。classic/README.md:6 明确它已停止维护、建议用 Platform。
L02

think → plan → act 循环

经典 AutoGPT 的核心是一个自主循环(classic/README.md:13 概括):

Think 思考分析目标和现状 Plan 规划拆解成下一步 Act 行动调工具/命令执行 Observe 观察看结果 回到 Think直到目标达成
📝 举个例子:给目标"帮我调研 3 家扫地机器人品牌并写对比",它会怎么转圈 第 1 轮 · Think「我需要先知道有哪些品牌」→ Plan「搜索」→ Act web_search("扫地机器人 品牌 排名") → Observe 得到一串品牌名。
第 2 轮 · Think「挑 3 家,逐个查参数」→ Act browse_website(品牌A官网) → Observe 抓到价格/吸力。
第 3 轮 · …重复查 B、C… → 第 N 轮 · Think「资料齐了」→ Act write_file("对比.md") → 目标达成,结束循环。
全程没人逐步指挥——每一轮都是 LLM 自己看着上一轮的结果决定下一步。这就是 cycle_count 在数的东西。
读法:这就是"自主智能体"的原型循环——把复杂目标拆成小任务、用工具执行、从结果学习调整、串联多步直到达成。你会发现它和你学过的 eino ReAct、OpenHands Action/Observation、CrewAI ReAct 循环本质一样——因为它们都源于这个原型!
L03

Agent 循环源码

🤔 痛点:一次 LLM 调用只能"想一下",怎么让它把一件复杂事干到底? 你调一次 GPT,它只输出一段文本就停了——它不会自己去点网页、不会记住上一步结果、更不会主动决定"下一步该干嘛"。可"做市场调研"要几十步。缺的那块,到底是什么?
💡 本质:缺的是一个"循环 + 工具 + 记忆"的外壳,把单次问答包成自主体 LLM 本身是"无状态的一次问答"。经典 AutoGPT 在它外面套了一个 while 循环:每轮把"目标 + 历史观察"塞进 prompt → LLM 吐出"下一步动作" → 代码真的去执行工具 → 把结果喂回下一轮。cycle_count += 1agent.py:337)就是这个循环在计数。是"循环 + 工具执行 + 把结果回灌"这层外壳,把一次性的 LLM 变成了能持续行动的 Agent。这正是后来所有 Agent 框架的共同内核。

classic/original_autogpt/autogpt/agents/agent.pyAgent 类(:128)体现循环:

# propose_action (agent.py:266):收集 directives、准备消息、构建 prompt、
#   调 LLM complete_and_parse 得出下一步动作,cycle_count += 1(:337 —— "循环"计数!)
# execute (agent.py:373):执行 LLM 选定的工具/命令
#   (支持并行执行多工具 _execute_tools_parallel, :499)
读法:cycle_count += 1:337)——这个"循环计数"就是自主循环的字面证据。propose_action(想下一步)+ execute(做)反复交替。和现代框架比,它更"放飞"——LLM 决定每一步该干什么,没有预定义的图/流程约束。
这就是"全自主"的样子 现代框架(CrewAI Flow、AutoGPT Platform 的图)你要预先定义流程/图。经典 AutoGPT 不用——你只给目标,LLM 每一轮自己决定"下一步做什么",完全放飞。这既是它的魅力(真·自主)也是它的问题(不可控,L07)。complete_and_parse 把 LLM 的自由文本输出解析成结构化动作——和 CrewAI 的 parser(Day 07)一个道理。
L04

组件化 pipeline

经典 AutoGPT 后期用了组件化设计(run_pipeline)——SystemComponentDirectiveProvider(提供 resources/constraints/best_practices)、CommandProvider(提供可用命令)、MessageProvider,还有 prompt 策略如 TreeOfThoughtsPromptStrategyplan_executeReWOO

这些 prompt 策略是啥? TreeOfThoughts(思维树,探索多条推理路径)、ReWOO(推理与观察分离)——都是当时前沿的"如何让 LLM 更好地规划"的技巧。经典 AutoGPT 是这些 Agent 提示词技巧的试验场。组件化(把 directives/commands/messages 拆成可插拔组件)则是为了让 Agent 行为可定制——这个思想后来演化成了 Platform 的 Block(更彻底的组件化)。
L05

Forge 框架

classic/forge/ 是"造 Agent 的脚手架框架"(README.md:155):"a ready-to-go toolkit to build your own agent application. It handles most of the boilerplate code..."。目录含 agent/agent_protocol/command/components/llm/file_storage/permissions.py

Forge 的历史地位 Forge 遵循 Agent Protocol(一个 Agent 标准协议),配合 agbenchmark(基准测试)——目标是让"造 Agent"标准化、可评测。它是早期"Agent 框架"的探索之一。虽然现在停维护了,但它验证了很多想法(组件化、Agent 协议、基准评测),这些想法在后来的框架(包括 AutoGPT Platform、你学过的 eino/CrewAI)里都能看到影子。Forge 是那个"人人都想造 Agent 框架"年代的产物。
L06

权限沙箱

经典 AutoGPT 的 Agent 在 workspace 沙箱中运行,有分层权限系统 allow/deny(classic/README.md:114)——默认拒绝 .envsudorm -rf 等危险操作。

连 2023 的 AutoGPT 都知道要沙箱 因为"让 AI 自主执行命令"太危险(万一它 rm -rf?),经典 AutoGPT 就有了 workspace 沙箱 + 权限系统。这正是 OpenHands(Day 09/17 的沙箱、Day 17 的纵深防御)继承并发扬的思路。不过经典版的隔离没那么严——classic/README.md:182 明确说"该代码有已知漏洞、仅供学习"。"能自主执行的 AI 必须被沙箱和权限约束"——这个教训从 AutoGPT 诞生起就存在,一直贯穿到今天所有 Agent 系统。
L07

为什么它转型了(呼应 Day 01)

经典 AutoGPT 的核心问题:全自主 = 不可控。它经常:跑偏(理解错目标)、陷入循环(反复做无用功)、烧钱(每轮都调 GPT-4)、结果不可靠。demo 惊艳,但难以用于真实生产。

经典:全自主(放飞) Platform:可控编排 + 局部自主 LLM 自己 决定下一步 无预设流程 → 易跑偏/烧钱 读网页 LLM 总结局部自主 发邮件 你定好图 → 可控/可复用
左边经典版把"每一步做什么"全交给 LLM(放飞、不可控);右边 Platform 由你把流程画成固定的图,只在某些节点里用 LLM(可控、可复用)。这就是整个行业的转向。
转型的深层逻辑:整个 Agent 行业都经历了这个觉悟——"纯自主放飞"炫酷但不可靠,"可控编排 + 局部自主"才能落地。于是 AutoGPT 转型为 Platform(可视化图,你控制流程);CrewAI 加入 Flow(确定性编排);OpenHands 强调沙箱 + confirmation。从"给目标让 AI 全自主",到"你搭好流程 AI 在每步发挥"——这是 Agent 从玩具走向生产的必经之路。经典 AutoGPT 是这条路的起点和最好的反面教材。
L08

今日小结 + 动手

🧠 今天你应该能回答

  • 经典 AutoGPT 2023 年为什么震撼?"fully autonomously"什么意思?
  • think→plan→act 循环和现代框架的循环什么关系?
  • 经典版和 Platform 在"控制"上的本质区别?
  • Forge 是什么?历史地位?
  • 为什么"全自主"难以生产化?整个行业怎么觉悟的?

✋ 动手:读起源代码

cat classic/original_autogpt/README.md | head -20
grep -n 'cycle_count\|def propose_action\|def execute' \
  classic/original_autogpt/autogpt/agents/agent.py
ls classic/forge/forge/
sed -n '114,180p' classic/README.md      # 权限系统
明天预告 · Day 20(结业)构建测试与收官串讲——从零搭一个 Agent 的清单、常见坑、全 20 天知识地图、AutoGPT 贯穿始终的设计哲学,以及和你学过的其他框架的横向对比。
← Day 18 API/REST Day 20 · 收官 →