看懂AIAgent:大模型如何长出"手脚",一步步做成简化版 Claude Code
2025 年 3 月,通用智能体 Manus 一经发布便刷屏全网,邀请码一码难求;Cursor 母公司 Anysphere 的年度经常性收入(ARR)在两年多时间里一路狂飙,成为史上增长最快的软件公司之一;Anthropic 推出的终端编程 Agent「Claude Code」更是被无数开发者奉为新一代生产力工具。
这些现象背后,指向同一个词——Agent。可当大家都在谈论它时,一个基础问题反而被忽略了:Agent 到底是什么?它是怎么跑起来的?
这篇文章,我想用最朴素的方式,把这两件事讲清楚。
一、大模型的"天花板":能说会道,却动不了手
要理解 Agent,得先理解大模型的一个根本局限。
GPT-4o、DeepSeek 这些大模型,回答问题很厉害,逻辑也很强,但它们有一个共同的天花板:既无法感知外界,也无法改变外界。
什么意思?举个例子。你想让 GPT-4o 写一个贪吃蛇游戏,它能给你代码。但"把代码写进文件"这一步,还得你自己动手。再比如,你手上已经有了一段贪吃蛇代码,想让模型基于它来改写、加功能——你必须主动把代码复制给它,因为它自己查不到你电脑里有什么。
能说,但不能做;能答,但不能看。这就是大模型的局限。
二、给大模型装上"感官和四肢"
破局的方法并不神秘:给它接上工具。
读写文件的工具、查看文件列表的工具、运行终端命令的工具……这些工具,就像大模型的感官和四肢。有了它们,大模型就能自己查文件、自己写代码、自己跑程序,全程不用你插手。
把一个大模型和一堆工具组装起来,变成一个能感知、能改变外部环境的智能程序,这就是Agent。
所以我们常看到,Agent 的图标是个机器人,而大模型的图标是个大脑——一个只有脑子,一个多了手脚,能独立干活了。
Agent 的类型也很多:Cursor 是编程 Agent,你提交任务,它调用模型和工具一路把代码写完,你只需点个"确定";Manus 是通用 Agent,让它"比较几款手机的性能",它自己生成执行计划、搜索网页、最后整理成一份报告页面交给你。
三、ReAct:Agent 最主流的运行方式
Agent 的"脑子"是怎么指挥"手脚"的?这里要引入一个关键概念:ReAct。
ReAct 是Reasoning and Acting(思考与行动)的缩写,出自 2022 年 10 月 Google Research 与普林斯顿团队的一篇论文。它可能是目前应用最广泛的 Agent 运行模式。
它的流程像一首四拍循环:
- 思考(Thought):拿到任务,先想想要做什么;
- 行动(Action):决定调用某个工具(读文件、写文件……);
- 观察(Observation):看看工具返回了什么结果;
- 回到思考,直到觉得信息够了,才输出最终答案(Final Answer)。
记住这四个词——Thought、Action、Observation、Final Answer,它们是理解一切 Agent 的钥匙。
四、藏在系统提示词里的秘密
很多人以为,模型"先思考再行动"是训练出来的。其实不然,真正的奥秘在系统提示词(System Prompt)里。
系统提示词是和用户问题一起发给模型的指令,规定了模型的角色、规则和环境信息。想让它按 ReAct 模式跑,系统提示词要更复杂,通常包含五个部分:职责描述、示例、可用工具、注意事项、环境信息。
其中"职责描述"会明确告诉模型:把任务拆成步骤,每一步先用 Thought 思考,再用 Action 调工具,结果经 Observation 返回,反复循环,直到能给出 Final Answer。
用 DeepSeek 演示一下就很直观。把"写一个贪吃蛇游戏(HTML/CSS/JS 分开文件)"这个任务连同系统提示词一起发过去,你会看到它一步步:先 Thought 想一下,再 Action 请求写入 index.html,返回"写入成功"后,继续写 CSS、写 JS,三个文件写完,吐出 Final Answer。
这里有个容易被误解的细节:大模型只能"请求"调用工具,真正执行工具的是 Agent 的工具调用组件。所以那句"写入成功",不是模型自己写的,是背后真实的 write_to_file 函数跑出来的。
五、手把手复刻一个简化版 Claude Code
理解了原理,动手就不难。在系统提示词的基础上,加上配套代码,就能搭出一个真正可用的 ReAct Agent。
一个最小实现的核心,是一个叫 ReactAgent 的类和一个 run 函数:
- 构造时传入三样东西:工具列表、模型(GPT-4o)、项目目录;
- run函数内部构建消息列表(系统提示词 + 用户任务),然后进入一个 while 循环;
- 循环里做四件事:请求模型 → 提取 Thought → 判断是否 Final Answer → 提取 Action 并执行工具;
- 工具的执行结果作为 Observation 塞回消息列表,再喂给模型,如此往复。
演示里,这个 Agent 被命令 uv run agent.py snake 启动,任务是在 snake 目录里写出一个贪吃蛇游戏。三轮循环下来,index.html、CSS、JS 三个文件真实写入,打开网页,游戏能玩、能得分。
一个几十行代码的 Agent,就做出了一个"简化版 Claude Code"的样子。
六、另一种思路:Plan-and-Execute
ReAct 不是唯一的答案。很多 Agent 用的是先规划、再执行的思路——比如 Manus 一开始会列一个待办清单,后面就按清单走;Claude Code 也常见"先建 todo 再执行"。
这种模式没有统一名字,其中最有名的实践是LangChain 提出的 Plan-and-Execute。
它把流程拆成几个角色:
- Plan 模型:负责出执行计划;
- RePlan 模型:根据每步结果动态调整计划;
- 执行 Agent:负责执行计划里的每一步(内部还可以再套一个 Agent,也就是"Agent 套 Agent");
- 主程序:串联全场。
举个"今年澳网男子冠军的家乡是哪里"的例子:Plan 模型先规划出三步——查当前日期、查冠军名字、查家乡;执行 Agent 执行第一步后,RePlan 模型发现日期已经确定,就把"查冠军名字"精确成"查 2025 年冠军名字"。三轮之后,所有步骤完成,RePlan 模型不再输出新计划,而是直接给出最终答案。
你看,Plan-and-Execute 的精髓,就是把"规划"本身也变成了一个可以不断修正的动态过程。
七、展望:Agent 正在成为新的入口
站在 2026 年回看,Agent 的演进方向已经越来越清晰。
从单智能体的 ReAct,到多智能体协作,再到 Manus 这样"规划—执行"分离的通用 Agent,业界正在把 Agent 从"工具"推向"入口"。当编程、搜索、办公都能被 Agent 代劳时,人机交互的方式也在悄然改变——你不再需要自己一步步操作软件,只需要描述目标,剩下的交给 Agent。
当然,热闹归热闹,理解底层原理永远不亏。因为无论形态怎么变,那句"Thought → Action → Observation → Final Answer"的循环,才是 Agent 真正的心跳。
本文关键事实(ReAct 论文出处、Cursor、Manus 背景等)已通过联网搜索核实。