AI Agent 2025:智能体框架的战国时代
前言
如果说 2023 年是 LLM 的元年,2024 年是 RAG 普及之年,那 2025 年就是 AI Agent(智能体)的爆发之年。这一年,AI Agent 不再是实验室里的概念验证,而是真正走进了生产环境——从客服系统到代码审查,从自动化运维到金融风控,Agent 正在重塑软件开发的方式。
与此同时,Agent 开发框架也从群雄逐鹿进入三国鼎立:LangGraph、CrewAI、AutoGen 三足鼎立,而 MCP 协议则成为它们共同的语言。
什么是 AI Agent?
AI Agent 是一个能够自主决策、调用工具、执行多步骤任务的智能程序。它不只是"问一句答一句"的聊天机器人,而是能像人类一样思考、规划、执行的"数字员工"。
传统 LLM: 用户提问 → LLM 回答
RAG: 用户提问 → 检索知识 → LLM 回答
Agent: 用户提目标 → Agent 规划 → 调用工具 → 观察结果 → 再规划 → ... → 完成任务Agent 的核心能力:
| 能力 | 说明 | 2025 年进展 |
|---|---|---|
| 规划(Planning) | 将复杂目标拆解为子任务 | 框架原生支持多步推理 |
| 工具调用(Tool Use) | 调用 API、数据库、浏览器等 | MCP 协议统一工具接口 |
| 记忆(Memory) | 长期/短期记忆,上下文持久化 | Graph-based 持久化成为标配 |
| 执行(Execution) | 按计划执行并处理异常 | Durable execution 容错机制 |
| 人机协作(HITL) | 关键节点人工介入确认 | Human-in-the-loop 内置支持 |
框架一:LangGraph — 最灵活的 Agent 运行时
LangGraph(来自 LangChain 团队)定位为 Agent 的底层运行时,而不是高层抽象。它的核心是用**有向图(Directed Graph)**来定义 Agent 的执行流程。
from langgraph.graph import StateGraph, MessagesState
from langgraph.prebuilt import ToolNode
from langchain_openai import ChatOpenAI
# 1. 定义工具
def search_web(query: str) -> str:
"""搜索网络信息"""
return f"搜索结果:{query} 的相关信息..."
def calculate(expression: str) -> str:
"""计算数学表达式"""
return str(eval(expression))
# 2. 构建 Agent 图
class AgentState(MessagesState):
pass
graph = StateGraph(AgentState)
# 3. 添加节点
model = ChatOpenAI(model="gpt-4o").bind_tools([search_web, calculate])
tool_node = ToolNode([search_web, calculate])
def call_model(state: AgentState):
return {"messages": [model.invoke(state["messages"])]}
graph.add_node("agent", call_model)
graph.add_node("tools", tool_node)
# 4. 定义边:判断是否继续调用工具
def should_continue(state: AgentState):
last_msg = state["messages"][-1]
return "tools" if last_msg.tool_calls else "__end__"
graph.set_entry_point("agent")
graph.add_conditional_edges("agent", should_continue)
graph.add_edge("tools", "agent")
# 5. 编译并运行
app = graph.compile()
result = app.invoke({"messages": [("human", "2025年Go发布了哪个版本?有什么新特性?")]})LangGraph 的核心设计哲学:把 Agent 流程当作有向图来建模——每个节点是一个步骤,每条边是决策逻辑。这让复杂的多步 Agent 流程变得可维护、可调试。
2025 年的 Key 特性:
- Durable Execution:Agent 执行中途崩溃可恢复,类似 Temporal
- Deep Agents:高层 Agent 可以动态创建子 Agent 执行子任务
- LangSmith Fleet:无代码 Agent 构建器,降低使用门槛
- 时间旅行调试:回溯到任意执行步骤查看状态
框架二:CrewAI — 多 Agent 协作的生产力工具
CrewAI 的理念是**“让 AI 团队像人类团队一样协作”**。你可以定义多个 Agent、分配角色和职责,然后让它们共同完成任务。
from crewai import Agent, Task, Crew, Process
# 1. 定义 Agent 角色
researcher = Agent(
role="技术研究员",
goal="搜索并总结最新的技术趋势",
backstory="你是一名资深技术分析师,擅长从海量信息中提取关键洞察。",
tools=[search_web],
verbose=True,
)
writer = Agent(
role="技术写手",
goal="将研究结果写成易懂的技术文章",
backstory="你是一名技术博客作者,擅长将复杂技术概念讲清楚。",
verbose=True,
)
# 2. 定义任务
research_task = Task(
description="搜索 2025 年 Go 语言的最新进展",
expected_output="一份包含关键特性、版本号和发布日期的技术报告",
agent=researcher,
)
write_task = Task(
description="根据研究报告撰写一篇技术博客",
expected_output="一篇结构清晰、适合开发者阅读的博客文章",
agent=writer,
)
# 3. 组建团队并执行
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential, # 或 Process.hierarchical
)
result = crew.kickoff()
print(result)2025 年的关键更新:
- Flows:声明式工作流,支持条件分支和循环
- Guardrails:内置安全护栏,防止 Agent 做出危险操作
- 企业版:RBAC、环境管理、监控控制台
- 第三方集成:直接连接 Gmail、Slack、Salesforce、HubSpot 等
框架三:AutoGen 0.4 — 分布式多 Agent 系统
微软的 AutoGen 在 2025 年进行了重大重写,0.4 版本采用了事件驱动架构,原生支持分布式部署。
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpToolAdapter
# 1. 注册 MCP 工具
mcp_tools = McpToolAdapter.from_server("weather-mcp")
# 2. 创建 Agent
weather_agent = AssistantAgent(
name="weather_agent",
model_client=OpenAIChatCompletionClient(model="gpt-4o"),
tools=mcp_tools,
system_message="你是天气查询助手,使用 MCP 工具获取实时天气。",
)
planner_agent = AssistantAgent(
name="planner_agent",
model_client=OpenAIChatCompletionClient(model="gpt-4o"),
system_message="你是计划助手,根据天气信息给出出行建议。",
)
# 3. 组成团队
team = RoundRobinGroupChat([weather_agent, planner_agent])
# 4. 运行
stream = team.run_stream(task="明天北京适合出门吗?")
async for message in stream:
print(message)AutoGen 0.4 核心变化:
- 事件驱动:异步消息传递,不再是简单的函数调用链
- GrpcWorkerAgentRuntime:Agent 可以分布在不同的机器上
- MCP 原生集成:通过
McpWorkbench直接加载 MCP 工具 - Docker 沙箱:代码执行在隔离容器中运行
MCP 协议:Agent 的"通用语言"
2025 年,MCP(Model Context Protocol)已经成为 Agent 调用工具的事实标准。无论是 LangGraph、CrewAI 还是 AutoGen,都原生支持 MCP 协议。
# 一个 MCP 服务器的简单示例
from mcp.server import Server
from mcp.types import Tool, TextContent
app = Server("code-analyzer")
@app.list_tools()
async def list_tools():
return [
Tool(
name="analyze_code",
description="分析代码中的问题",
inputSchema={
"type": "object",
"properties": {
"code": {"type": "string"},
"language": {"type": "string"},
},
},
)
]
@app.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "analyze_code":
# 执行代码分析
return [TextContent(type="text", text="分析结果...")]MCP 解决的核心问题:Agent 不需要为每个工具写不同的适配代码——只要工具提供 MCP 接口,任何兼容 MCP 的 Agent 框架都能直接调用。
实战:构建一个代码审查 Agent
下面用 LangGraph + MCP 构建一个完整的代码审查 Agent:
import asyncio
from langgraph.graph import StateGraph, MessagesState
from langgraph.prebuilt import ToolNode
from langchain_openai import ChatOpenAI
from mcp import ClientSession, StdioServerParameters
# 1. 连接 MCP 服务器
async def setup_mcp_tools():
server_params = StdioServerParameters(
command="python",
args=["-m", "mcp_server_code_review"],
)
async with ClientSession(server_params) as session:
tools = await session.list_tools()
return [convert_mcp_to_langchain(t) for t in tools]
# 2. 构建审查 Agent
def build_review_agent():
tools = asyncio.run(setup_mcp_tools())
tool_node = ToolNode(tools)
model = ChatOpenAI(model="gpt-4o").bind_tools(tools)
graph = StateGraph(MessagesState)
graph.add_node("agent", lambda s: {"messages": [model.invoke(s["messages"])]})
graph.add_node("tools", tool_node)
graph.set_entry_point("agent")
graph.add_conditional_edges(
"agent",
lambda s: "tools" if s["messages"][-1].tool_calls else "__end__",
)
graph.add_edge("tools", "agent")
return graph.compile()
# 3. 审查代码
agent = build_review_agent()
result = agent.invoke({
"messages": [("human", """审查下面这段 Go 代码:\n\nfunc main() {\n for i := 0; i < 10; i++ {\n go func() {\n fmt.Println(i)\n }()\n }\n}""")]
})框架选型建议
| 场景 | 推荐框架 | 理由 |
|---|---|---|
| 复杂多步 Agent 流程 | LangGraph | 图模型灵活,适合需要精细控制的场景 |
| 多 Agent 角色协作 | CrewAI | 开箱即用的角色分工,上手快 |
| 分布式 Agent 系统 | AutoGen 0.4 | 原生分布式,事件驱动,适合大规模部署 |
| 与 MCP 工具生态集成 | 任意框架 | 三者都原生支持 MCP |
| 团队没有 AI 专家 | CrewAI / LangSmith Fleet | 低代码/无代码方案 |
总结
2025 年的 AI Agent 生态已经清晰:三个框架 + 一个协议。
| 要点 | 说明 |
|---|---|
| LangGraph | Agent 底层运行时,用有向图建模,灵活度最高 |
| CrewAI | 多 Agent 协作框架,角色分工,开箱即用 |
| AutoGen 0.4 | 分布式 Agent 系统,事件驱动,适合大规模部署 |
| MCP 协议 | Agent 与工具交互的统一标准,三大框架均支持 |
对于开发者来说,2025 年学习和投入 AI Agent 开发是一个确定性很高的选择。建议从 LangGraph + MCP 这个组合开始,既有灵活性,又符合生态趋势。