AI Agent 智能体深度解析
引言
AI Agent 代表了 LLM 应用从「单轮问答」向「自主执行多步任务」的演进。本文从范式、架构、框架到与 MCP/A2A 的集成,系统解析智能体技术体系。
核心范式
ReAct(Reasoning + Acting)
ReAct 让模型在「推理」和「行动」之间循环:
- Thought:根据当前信息推理下一步
- Action:选择工具并传入参数
- Observation:获取工具返回
- 重复直至得出 Final Answer
User: 北京今天天气如何?
Thought: 需要查询天气 API
Action: get_weather(city="北京")
Observation: 晴,18-25°C
Thought: 已有足够信息
Final Answer: 北京今天晴天,气温 18-25°C
Tool Use / Function Calling
模型输出结构化 JSON,声明要调用的函数名和参数,由应用程序执行后反馈结果。OpenAI、Anthropic、Google 等均支持此能力。
Chain-of-Thought(CoT)与 Agent
CoT 提供推理链,Agent 在此基础上增加工具调用,实现「想清楚再动手」。
多 Agent 协作
协作模式
- 顺序协作:Agent A 完成 → 结果传给 Agent B
- 并行协作:多个 Agent 并行处理不同子任务
- 层级协作:Manager Agent 分配任务给 Worker Agent
CrewAI 与 AutoGen
- CrewAI:通过 Role、Goal、Backstory 定义 Agent,用 Crew 编排多 Agent 流程
- AutoGen:微软框架,支持多 Agent 对话、代码执行、人类参与
与 MCP、A2A 的集成
| 协议 | 在 Agent 中的作用 |
|---|---|
| MCP | 标准化工具定义,Client 将工具暴露给 LLM |
| A2A | Agent 间请求/响应格式,实现跨应用协作 |
学习 Agent 后,可结合 MCP 协议 和 A2A 协议 构建可扩展的智能体系统。
框架对比
| 框架 | 强项 | 适用场景 |
|---|---|---|
| LangChain | 链与 Agent 生态 | 通用 LLM 应用 |
| LlamaIndex | 数据与 RAG | 知识库、检索增强 |
| CrewAI | 多 Agent 编排 | 团队协作型任务 |
| AutoGen | 对话与代码执行 | 开发助手、自动化 |
最佳实践
- 工具设计:单一职责、参数清晰、错误处理完善
- ** Prompt 设计**:明确工具用途与调用时机
- 安全性:限制工具权限、校验用户输入
- 可观测性:记录决策链、工具调用与耗时
ReAct 完整示例(伪代码)
# ReAct 循环示意
def react_loop(question: str):
thought = ""
while not done:
# 1. Thought: 模型分析当前状态
thought = llm(f"{question}\nObservation: {observation}\nThought: ")
if "Final Answer" in thought:
return extract_answer(thought)
# 2. Action: 解析工具调用
action, args = parse_action(thought)
# 3. Observation: 执行工具
observation = tools[action](**args)
# 4. 将 Observation 反馈给模型,继续下一轮
Function Calling 结构示例
OpenAI 等模型支持的 Function Calling 格式:
{
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["city"]
}
}
}]
}
模型返回 tool_calls 数组,应用解析后执行对应函数,将结果作为 tool 类型的消息反馈给模型。
规划与反思(Planning & Reflection)
- Planning:先拆解任务为子步骤,再逐步执行(如 Plan-and-Execute)
- Reflection:执行后让模型自检输出是否正确,错误则重试(如 Reflexion)
这类模式适合代码生成、数学推导等需要多步推理的场景。
与 RAG、Embedding 的协同
| 技术 | 在 Agent 中的角色 |
|---|---|
| RAG | 作为工具:检索知识库,将结果作为上下文或直接返回 |
| Embedding | 支持 RAG 检索的向量化 |
| 向量数据库 | RAG 工具的后端存储 |
Agent 可将 RAG 封装为一个「检索工具」,实现「有依据的回答」。
总结
Agent 将 LLM 从「对话模型」升级为「可执行任务的 智能体」,与 RAG、MCP、A2A 等技术结合,可构建端到端的智能应用闭环。掌握 ReAct、Tool Use、多 Agent 协作及与 MCP/A2A 的集成,是构建生产级 Agent 的关键。