1. 什么是Agent?
普通的LLM擅长回答问题,但也存在一个限制,那就是它们无法感知或者是改变外界环境。
比如,让GPT5-4写一段关于xxx的代码,它只能提供给你代码段,但具体生成代码文件、运行和测试代码文件的过程需要我们自己来做,也就是说,LLM无法改变外界环境。而如果当本地已经有部分代码,希望增加部分功能时,必须将本地的代码文件上传给LLM或者直接粘贴代码块,如果不主动告诉LLM,它是不可能知道我们的代码啥样的,这正是LLM无法感知外界环境的表现。
一种解决这个问题的方案是让LLM使用对应的工具(tools),例如让它可以读写文件内容、查看文件列表、运行终端命令,这样它就能完全自动化的构建代码项目。像这样把一个LLM和一堆工具组装起来,使其变成一个能改变或感知外界环境的程序,我们就称其为Agent。
Agent是多样的,具体为不同的任务可以设计不同的Agent,例如编程Agent,cursor,用于办公和分析的Agent,Manus。
2. Agent的运行模式
2.1 ReAct模式
ReAct全称为Reasoning and Acting,可能是目前使用最为广泛的Agent运行模式。该模式最早由姚顺雨(现在,也就是2026年在腾讯挂帅AI首席科学家)在ICLR 2023提出。

在该模式下,用户先提交任务,然后Agent做思考(thought),然后去判断是否调用工具,如果是,Agent将进行行动(action),然后观察(observation)行动的执行结果,随后继续进行思考,循环往复,直到Agent认为不再需要调用工具,可以直接给出结论了,则会输出最终答案(Final answer)。以上即为ReAct模式的流程。
那么如何实现ReAct模式呢?简单来说,其实就是设计系统提示词。
2.2 Plan and Execute模式
从总体上看,这种模式遵循了先规划、再执行的流程。在整个流程中,粗粒度看只有两个关键角色,一个是用户,另一个是Plan-And-Execute Agent。这个PAE Agent由以下几个部分组成:首先是负责出执行计划的Plan model,然后呢,我们在运行的过程中,还需要一个能够根据每一步的执行结果来动态调整计划的Re-Plan model,负责修改执行计划,Plan model和Re-plan model可以是同一个模型负责两个部分,也可以是独立的两个模型,除此之外,我们还需要一个可以按照计划执行的模型,即执行Agent(这是一个子Agent),最后,我们需要一套主程序来把上述这些模型组织起来。
具体来说,首先,用户会把问题提交给Agent主程序,Agent主程序接到这个指令后,会把这个指令发给Plan模型,让它给出具体的执行步骤;有了计划后,主程序会把计划传递给执行Agent,告诉他请执行第一步(这个执行Agent本身可以用上一节的ReAct模式来运行);执行Agent会把执行结果反馈给Agent主程序,而主程序会把这些执行结果、执行记录和上一次的Plan都发给Re-Plan模型,让它生成一个新的执行计划;主程序会接受这个新的执行计划,并再一次将计划传递给执行Agent。重复该过程n次,直到Re-Plan模型认为结果已经得到,结束循环,返回答案给主程序。最终主程序将这个答案转发给用户。
在整个过程中,执行记录是会一直边长的,即过去的记录会保留,而一般来说,执行计划是不断变化的,他会经过Plan model和Re-plan model一直更新。
3. 运行模式的比较
ReAct模式的优势是,由于system prompt是你自己写的,约束是你自己加的,所以约束相对于整个prompt的嵌入就会很自然。自然的好处就是自定义空间很大,另外可以通过集中LLM的注意力来增强prompt的效果(这里有一个稍微复杂点的attention的问题,理解它对应用来讲不是很重要所以我就不细讲了),以及出了问题(例如LLM的返回不符合预期)后好找问题,回去读一遍自己写的prompt嘛。如果你有一些相对关键的约束,希望LLM可以严格执行的那种,也建议自己动手写进system prompt并且用语言着重强调,这是通过代码注册无法办到的。
Plan and Execute模式的优势是tools list非常灵活,可以随时添加减少。这个优势在一些大型项目中比较有用,因为这两年流行的一种节省窗口的方式是根据对话需求先用一个小agent筛选工具,然后只将有用的工具提供给主agent(可以理解为你工具箱里有1000个各式各样的道具,你的用户说他想装修房子,先有个人从工具箱里挑了十几个工具出来,然后你抱着这十几个工具去找装修师傅去了)。这种情况下可以通过Python来随时结构tools list就非常有用,因为这意味着你不需要在system prompt里面通过string搞来搞去了(当然本质上就是langchain替你去搞这些了)。
简单来讲,第二种模式相当于是第一种模式的预制菜。如果第二种模式能满足你的需求,那么它的优势就是上手简单。但如果你使用第二种模式时遇到了某种瓶颈,无论是算力还是别的什么,你可以试试用第一种模式,说不定有奇效。
4. 实践
之后如果博主应该会抽时间做一系列小的Agent项目,这一部分待更新。
