AutoGPT 运行原理解析
你肯定看过那个画面吧——去年春天,AutoGPT 突然刷屏,GitHub 上星星一天涨一万,朋友圈都在喊“AGI 终于来了!”我那晚也特别上头,连夜爬起床,在云服务器上把那套东西搭了起来。
配环境,搞 Key,花了半小时。然后郑重其事地输入了我的第一个任务:
“帮我查这周最火的AI推文。”
你看,就这一句话。我往后一靠,准备见证历史。
结果呢?我盯着屏幕看了整整十分钟。它像是着了魔一样,自顾自地 Google、浏览网页、写文件……全程自己跟自己说话。最后确实整出个报告。但你猜怎么着?
这一个任务,烧掉了我两美元。
那一刻我脑子里跳出一个念头:AutoGPT 根本不是 AGI,它是一个包装得特别华丽、特别会自言自语的——聪明手下。
核心就三样东西:让 GPT 做选择题,帮它记住该记住的,再给它一把瑞士军刀。别的全是幻觉。
论据一:它的“记忆”跟人一样贱——先记最近事,老的直接丢
你看,用过 ChatGPT 就知道,它一次只能记住那么长的对话。AutoGPT 也一模一样,上下文窗口是个硬天花板。
我翻了源码,看到一段关键的代码:它维护了一个所有对话的列表,叫 full_message_history。每次发请求,从最新一条开始往前装,装到撑不下为止。近的消息留下,远的自动挤掉——和你的短期记忆一模一样,先记住刚发生的,老的全忘光。
我第一次跑任务,到第五轮它突然忘了之前搜到了什么,就是因为 Token 满了,前面观察到的信息直接被清场。后来我开了 Memory 功能,接了 Pinecone 向量数据库,才相当于给它装了个外接硬盘,能够通过相似度回来翻老账。
但有个大坑你必须知道:如果你不配 Pinecone,只靠自带的历史记录,那 AutoGPT 基本就是一条金鱼——聊个十轮,任务目标都记不清了。
论据二:GPT 只负责做选择题,真正干活的是预设工具箱
很多人以为 AutoGPT 全程靠 GPT-4 自己在电脑里输出代码、直接执行、直接操控浏览器。错得离谱。
你来看它返回的格式,永远是一段定制的 JSON:
THOUGHTS: ...
REASONING: ...
PLAN: ...
CRITICISM: ...
NEXT ACTION: COMMAND = google ARGUMENTS = {'input': '...'}AutoGPT 拿到这个,提取出 COMMAND 和参数,然后去匹配一个早就写好的 Python 函数。比如 google 对应 google_search(),write_to_file 对应文件写入。每一个命令都是程序员提前写好的、可控的、可扩展的组件。
那 GPT 负责什么?只负责“接下来该干啥”。真正动手的,是一堆普普通通的函数。
这设计聪明在哪?如果 GPT 胡说八道怎么办?比如它命令去爬一个根本不存在的网站——命令组件会直接返回错误。AutoGPT 把这个错误当成新的观察结果,塞回给 GPT,让它重新规划。
我遇到过好几次它硬要执行一个不存在的命令,结果循环报错、反馈、再报错,最后自己放弃任务。最离谱的一次,它连续三次试图调用一个我根本没注册的 send_email 命令。每次都报错,每次都重试,最后它沉默了。所以千万别迷信“自主修复”——边界条件一下,照样死循环。
论据三:Prompt 写得好,GPT 才能像个“有策略的大脑”
在 AutoGPT 源码的 prompt.txt 里,有一段超长的系统级指令。定义了角色、约束、可用命令、输出格式。其中我翻到最妙的是几条“自我批判”指令:
- “你的短期记忆是有限的,重要信息立即保存到文件。”
- “如果你不确定之前做过什么,回忆类似事件能帮你记忆。”
- “没有用户协助。”
- “只使用双引号内列出的命令。”
我试过去掉其中“CRITICISM”那段,结果呢?GPT 开始胡乱输出计划,完全跳过反思步骤,任务质量直接跳水。你看,这份 Prompt 不是摆设,是真正的核心调度逻辑。
有人会说:“这不就是给 GPT 写了个员工手册吗?”对,没错。AutoGPT 绝大部分的“智能”都来自于这份手册。不是什么新奇架构。你换一个 Prompt 写得好的 Agent 出来,效果完全一样。
回应反对:它到底算不算 AGI 的雏形?
我承认 Lillian Weng 提出的那个 Agent 范式——LLM + 记忆 + 规划 + 工具——方向是对的。很多人就拿这个框架跟 AutoGPT 对照,说它就是 AGI 的雏形。
但目前的实现太粗糙了。你来看:
- 它的“规划”只是根据当前 Observation 产生下一步,没有真正的长期规划能力。
- 它的“记忆”需要依赖外部数据库,而且塞入 Prompt 的时机也未必最优。
- 它的“工具”列表必须开发者手动配置,不具备自主发现工具的能力。
更现实的问题是——成本。我跑了一个中等复杂度的任务:分析三个竞品网站,写一份对比报告。结果花了大约 8 美元,耗时 20 分钟,中间好几次因为超时还得我自己敲 y 确认。你想想,如果每个任务都要人工盯着,这叫自动驾驶吗?
所以我的判断是:AutoGPT 是一个里程碑式的 Demo。它证明了 LLM 可以通过“思考–行动–观察”的循环来解决多步任务。但它更像一个带着调度器的 Shell 脚本升级版。离真正的 AGI?还差十万八千里。
最后给点实操建议
如果你真想玩玩,别急着上生产环境。先跑小成本任务,比如写个博客大纲、做个简单调研。一定要设好 Token 限制和模型选择。默认的 gpt-3.5-turbo 在复杂任务上会犯蠢,gpt-4 又贵得心疼。
另外,多翻翻源码,尤其是 prompt.txt 和 commands.py。你改一个命令的返回格式,整个 Agent 的行为都会跟着变。这东西的可玩性远远大于它的实用性——但也正是这种可玩性,让我们提前看到了 Agent 的雏形。
也许再过两三年,我们每个人都会给自己配一个“数字员工”:告诉它目标,它自己拆步骤、找信息、调 API、出结果。到时候回头看——
AutoGPT 就是那个笨拙、烧钱、动不动就炸……但第一个敢于站起来指路的傻瓜。
所以别介意它现在像个玩具。有时候,第一个敢站起来指路的傻瓜,比后来所有聪明的追随者都重要得多。
读者评论 5