什么是智能体?
智能体是一个能够感知环境、进行推理、制定计划、做出决策并自主采取行动以实现特定目标的AI系统。
智能体以大语言模型为核心,集成记忆、知识库和工具等功能为一体,构造了完整的决策、执行和记忆能力,拥有主观能动性
与普通的AI大模型不同的是,智能体能够:
- 感知环境:通过各种输入渠道获取信息(多模态),理解用户需求和环境状态
- 自助规划任务步骤:将复杂任务分解为可执行的子任务,并设计执行顺序
- 主动调用工具完成任务:根据需要选择并使用各种外部工具和API,扩展自己能力的边界
- 进行多步推理:同哥思维链逐步分析问题并推导解决方案
- 持续学习和记忆过去的交互:保持上下文连贯性,利用历史交互改进策略
- 根据环境反馈调整行为:根据执行结果动态调整策略,实现闭环优化
这样说可能还是会迷茫,但是大概率用过这个功能,比如豆包的思考,这就是AI逐步智能化的体现:

通过智能体,让AI会像人类一样先思考后回答,让答案更准确:

智能体的分类
跟人的成长阶段一样,智能体也是可以不断进化的,按照自主性和规划能力,智能体可以分为几个层次:
-
反应式智能体
根据当前的输入和固定的规则做出反应,像简单的聊天机器人,没有真正的规划能力

-
有限规划智能体
能进行简单的多步骤执行,但执行的计划通常都是预设的,或者是有严格限制的,"能干事,但干不了复杂的大事"。
简单的例子,就是智能体将问题怎么拆解,怎么去思考问题,都是被人为提前定好的,不是智能体自己规划的
-
自助规划智能体
能够根据任务目标 "自主" 分解任务、制定计划、选择工具并一步步执行,直到完成任务。
比如25年很火的Manus,它的核心亮点在于其 "自助执行的能力"。
我们可以在开源的Manus的复刻版 --- OpenManus,这类智能体通过"思考-行动-观察"的循环模式工作

感兴趣的可以把代码下下来看看,后面我会专门出一篇文章聊一下我自己是怎么去学习OpenManus
智能体实现的关键技术
CoT思维链
CoT(Chain of Thought)思维链是一种让AI像人类一样"思考"的技术,帮助AI在处理复杂问题时能够按照步骤思考。
对于复杂的推理类问题,先思考后执行,这样的效果往往更好,可以让模型在生成答案时展示推理过程
CoT的实现方式其实很简单,可以在输入Prompt时,给模型提供额外的提示或引导,比如"让我们一步一步思考这个问题",让模型以逐步推理的方式生成回答,还可以运用Prompt的优化技巧few shot,给模型提供包含思维链的示例问题和答案,让模型学习如何构建自己的思维链,在OpenManus早期的版本中,有CoT的系统提示词
vbnet
You are an assistant focused on Chain of Thought reasoning. For each question, please follow these steps:
1. Break down the problem: Divide complex problems into smaller, more manageable parts
2. Think step by step: Think through each part in detail, showing your reasoning process
3. Synthesize conclusions: Integrate the thinking from each part into a complete solution
4. Provide an answer: Give a final concise answer
Your response should follow this format:
Thinking: [Detailed thought process, including problem decomposition, reasoning for each step, and analysis]
Answer: [Final answer based on the thought process, clear and concise]
Remember, the thinking process is more important than the final answer, as it demonstrates how you reached your conclusion.
css
你是一名专注于 "思维链"(Chain of Thought)推理的助手。针对每个问题,请遵循以下步骤:
拆解问题:将复杂问题分解为更小、更易于处理的部分。
逐步思考:详细思考每个部分,清晰展示你的推理过程。
综合结论:将每个部分的思考整合起来,形成完整的解决方案。
给出答案:提供最终简洁的答案。
你的回复需遵循以下格式:思考:[详细的思考过程,包括问题拆解、每一步的推理依据及分析]答案:[基于思考过程得出的最终答案,清晰简洁]
请记住,思考过程比最终答案更重要,因为它能体现你得出结论的逻辑路径。
Agent Loop 执行循环
Agent Loop 是智能体最核心的工作机制,指智能体在没有用户输入的情况下,自主重复执行推理和工具调用的过程。
在传统的聊天模型中,每次用户提问后,AI回复一次就结束了,但在智能体中,AI回复后可能会继续自主执行后续动作(如调用工具、处理结果、继续推理),形成一个自主执行的循环,直到任务完成(或者超出预设的最大步骤)
我们可以在OpenManus中找到这段Agent Loop的执行循环代码:

先了解几个概念,Agent在执行的时候,有提前定义几个Agent的执行状态:
python
class AgentState(str, Enum):
"""Agent execution states"""
IDLE = "IDLE" // 空闲中
RUNNING = "RUNNING" // 运行中
FINISHED = "FINISHED" // 已完成
ERROR = "ERROR" // 异常
对Agent需要限制最大的思考步长,不能让Agent无限的思考下去,同时考虑出现死循环的情况,需要有个最大步长
python
max_steps: int = 20
我们来对这run()代码做一下拆解
第一步:检查状态
python
if self.state != AgentState.IDLE:
raise RuntimeError(f"Cannot run agent from state: {self.state}")
第二步:初始化用户请求(User Prompt)
python
if request:
self.update_memory("user", request)
第三步:状态及上下文的管理
python
results: List[str] = []
async with self.state_context(AgentState.RUNNING):
第四步:主循环,直到Agent达到最大步骤或者Agent的执行任务的状态为已完成
python
while (
self.current_step < self.max_steps and self.state != AgentState.FINISHED
):
第五步:具体执行动作step()
python
self.current_step += 1
logger.info(f"Executing step {self.current_step}/{self.max_steps}")
step_result = await self.step()
第六步:检查Agent是否卡在循环中和是否达到最大步长
python
if self.is_stuck():
self.handle_stuck_state()
results.append(f"Step {self.current_step}: {step_result}")
python
if self.current_step >= self.max_steps:
self.current_step = 0
self.state = AgentState.IDLE
results.append(f"Terminated: Reached max steps ({self.max_steps})")
我们可以用Java来把这段代码写一下
java
public String run() {
List<String> results = new ArrayList<>();
int MAX_STEPS = 20;
while (currentStep < MAX_STEPS && !isFinished) {
currentStep++;
// 这里实现具体的步骤逻辑 - 伪代码
String stepResult = executeStep();
results.add("步骤 " + currentStep + ": " + stepResult);
}
if (currentStep >= MAX_STEPS) {
results.add("达到最大步骤数: " + MAX_STEPS);
}
return String.join("\n", results);
}
ReAct模式
ReAct(Reasoning + Acting)是一种结合推理和行动的智能体架构,它模仿人类解决问题时的"思考-行动-观察"的循环
目的是通过交互式的决策去解决复杂问题,这也是目前最常用的智能体的工作模式之一。
核心思想:
- 推理(Reasion):将原始问题拆成多步骤的任务(对应上文step),明确当前要执行的步骤,第一步干什么,第二步干什么
- 行动(Act):调用外部工具执行动作,比如调用搜索引擎、打开浏览器访问网页等
- 观察(Observe):获取工具返回的结果,反馈给智能体进行下一步决策。比如将打开的网页代码输入给AI
- 循环迭代:不断重复上述3个过程,知道任务完成或者达到终止条件(如达到最大思考和执行的步长)

所需支持的系统
除了上面我们介绍的工作机制外,智能体的实现还依赖于很多支持系统
- AI大模型,这个是肯定要有的,由大模型提供了思考、推理和决策的核心能力,越强的AI大模型通常执行任务的效果越好
- 记忆系统,智能体需要记忆系统来存储对话历史、中间结果和执行状态,这样才能够进行连续的对话并根据历史对话分析接下来的工作步骤
- 知识库,尽管大语言模型拥有丰富的参数知识,但针对特定领域的专业知识往往需要额外的知识库支持,比如之前我有讲到过的一篇文章,通过RAG检索增强生成 + 向量数据库等技术,智能体可以检索并利用专业知识回答问题
- 工具调用,工具是扩展智能体能力边界的关键,智能体通过工具调用可以访问搜索引擎、数据库、API接口等外部服务,极大的增强了其解决问题的实际能力,MCP其实也是工具调用的一种
综合上面所说的四类技术,结合CoT、Agent Loop、ReAct等机制,就可以构建一个完整的、有自助规划能力的AI智能体
智能体工作流
当我们面对复杂任务时,单一的智能体可能无法满足需求,因此智能体**工作流(Agent Workflow)**应运而生
通过简单的任务编排,允许多个智能体协同工作,各司其职
智能体工作流编排的精髓在于 将复杂任务分解为连贯的节点链,每个节点由最适合的智能体处理,节点间通过条件路由进行灵活连接,形成一个高效、可靠的执行网络。
Prompt Chaining 提示链工作流
Prompt Chaining 是最常见的智能体工作流模式之一,它的核心思想是将一个复杂任务拆解为一系列有序的子任务
每一步都由LLM处理前序LLM处理的输出结果,逐步推进任务的完成
举个例子,比如你想要在小红书发一个贴,你在思考内容怎么写,可以让智能体工作流来帮你,可以先让LLM-Call-1帮你先生成大纲,后续的LLM-Call-n再根据大纲生成详细内容,最后进行润色和校对,每一步都可以插入校验和中间检查,确保流程正确,内容生成更精准

这种模式结构清晰,易于调试,适合任务可以自然被分解为多个阶段的场景
Routing 路由分流工作流
Routing工作流模式则更像一个智能的路由器,根据输入内容的类型或特征,将任务分发给最合适的下游智能体
举个例子,在客服系统中,可以将常见的问题、退款请求、技术支持等分流到不同的处理模块,再多模型系统中,可以将简单的问题分配给小问题,复杂的问题交给大模型,这样既提高了处理效率,也保证了每类问题都能够得到最优的解答。

Orchestrator-Workers 协调者-执行者工作流
对于复杂的任务、参与任务的智能体增多时,我们可以引入一位 "管理者" ,会根据任务动态拆解出多个子任务 (看着跟上面的路由器很像,但任务拆解是最关键的不同,不是简单路由了),将这些子任务分配给多个 "工人" 智能体,最后再整合所有工人的结果,这种中央协调机制提高了复杂系统的整体效率,适合任务结构不确定、需要动态分解的复杂场景

Parallelization 并行化工作流
在Parallelization并行化的模式下,任务会被拆分为多个可以并行处理的子任务,最后聚合各自的结果。
比如在代码合规安全审查的场景中,可以让多个智能体分别对同一段代码进行安全审查,最后 "投票" 决定是否有问题。比如在处理超长文档的时候,可以将文档分段,每段由不同的智能体并行的总结,这种模式可以显著提升初六速度,通过 "投票" 机制提升结果的准确度

A2A协议
什么是A2A
A2A(Agent To Agent)是最近比较热门的概念,简单来说,A2A协议就是为 "智能体之间如何直接交流和协作" 制定的一套标准
A2A协议的核心,是让每个智能体都能像 "网络节点" 一样,拥有自己的身份、能力描述和通信接口。
A2A不仅规定了消息的格式和传递方式,还包含了身份认证、能力发现、任务委托、结果回传等机制,这样一来,智能体之间就可以像人类团队一样,相互打招呼、询问对方能做什么,请求协助。
可以把A2A类比为智能体世界里的HTTP协议,HTTP协议让全球不同的服务器和电脑之间能够交换数据,A2A协议则是让不同的厂商、不同的平台、不同能力的智能体能够像团队成员一样互相理解、协作和分工。如果说HTTP协议让互联网成为了一个开放、互联的世界,那么A2A协议则让智能体世界变得开放、协作和高效。
像上面我们其实就有Agent之间的交互,但这都是局限于自己的服务,不涉及第三方的智能体服务
A2A面临的问题
简单和MCP对比一下,虽然A2A和MCP都算是协议(或者说是标准),但二者存在本质上的区别。
MCP协议是智能体和外部工具之间的标准,它规定了智能体如何安全、规范的调用外部的数据库、搜索引擎、代码执行等工具资源
可以把MCP理解为 "智能体-工具" 的HTTP协议,而A2A协议则是智能体之间的通信协议,让不同的AI直接对话、协作和分工。
从安全的角度来看,MCP和A2A处理的是不同层面的安全问题:
- MCP的安全关注点:主要集中在单个智能体与工具之间的安全交互,主要防范的是工具滥用和提示词注入攻击
- A2A的安全关注点:更关注智能体网络中的身份认证、授权和信任链,A2A需要解决 "我怎么知道我在和谁通信"、"这个智能体有权限请求这项任务吗?"、"如何防止恶意智能体窃取或篡改任务数据"等问题
A2A面临的安全挑战更加复杂,在处理跨网络、跨平台、多方协作的场景的落地场景还不成熟
对于一个成熟的智能体系统,可能会同时运用MCP和A2A,MCP负责某个智能体内部调用工具完成,A2A负责智能体之间的协作完成任务