Agent主流框架与MCP集成
1、核心框架全景解析
1.1 OpenAI Agents SDK
1.1.1 简介
- 技术定位:官方轻量级多Agent协作框架
- 核心特性:
- 支持Agent转交(Handoffs)与护栏(Guardrails)
- 内置工具调用跟踪与上下文管理
- 支持MCP协议实现外部资源动态接入
- 典型场景:构建智能客服系统、多模态对话机器人
1.1.2 代码示例
OpenAI Agents SDK + MCP
import asyncio, os
from agents import Agent, Runner, AsyncOpenAI, OpenAIChatCompletionsModel, RunConfig
from agents.mcp import MCPServerStdio
async def main():
# 初始化MCP服务器
search_server = MCPServerStdio(
params={"command": "npx", "args": ["-y", "@mcptools/mcp-tavily"]},
env={**os.environ}
)
await search_server.connect()
# 创建集成MCP的Agent
agent = Agent(
name="WebSearchAgent",
instructions="使用搜索工具验证信息准确性",
mcp_servers=[search_server]
)
# 执行查询
result = await Runner.run(
agent,
"Llama 4.0是否已正式发布?",
run_config=RunConfig(tracing_disabled=True)
)
print(f"最终答案:{result.final_output}")
await search_server.cleanup()
if __name__ == "__main__":
asyncio.run(main())
2.1 LangGraph
2.1.1 简介
- 技术定位:LangChain生态扩展的多角色工作流框架
- 核心特性:
- 图结构建模复杂任务流程
- 支持有状态多角色交互
- 提供MCP适配器实现工具链集成
- 典型场景:开发金融分析系统、法律文书生成工具
2.1.2 代码示例
LangGraph + MCP工具链
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_openai import ChatOpenAI
async def run_agent():
async with MultiServerMCPClient({
"tavily": {
"command": "npx",
"args": ["-y", "@mcptools/mcp-tavily"]
}
}) as client:
# 创建ReAct风格Agent
agent = create_react_agent(
model=ChatOpenAI(model="gpt-4o-mini"),
tools=client.get_tools()
)
# 处理用户查询
response = await agent.ainvoke({
"messages": [
SystemMessage("使用搜索工具验证信息"),
HumanMessage("Llama 4.0发布日期?")
]
})
return response["messages"][-1].content
print("最终回答:", asyncio.run(run_agent()))
3.1 LlamaIndex
3.1.1 简介
- 技术定位:企业级RAG应用开发框架
- 核心特性:
- 支持向量/树形/关键字混合索引
- 内置私有数据检索增强生成(RAG)
- 通过MCP协议实现知识库动态扩展
- 典型场景:构建医疗诊断系统、企业级知识库
3.1.2 代码示例
AutoGen 0.4+ MCP适配器
from autogen_ext.tools.mcp import SseMcpToolAdapter
from autogen_core.models import UserMessage
# 配置MCP服务器
mcp_server = SseMcpToolAdapter(
url="http://localhost:8765",
tool_name="web_search"
)
# 创建Agent并集成工具
agent = Agent(
name="SearchAgent",
tools=[mcp_server],
on_messages=lambda messages: [UserMessage(content="使用搜索工具查询Llama 4.0")]
)
# 执行工作流
result = await agent.run_async()
print(f"检索结果:{result.outputs[-1].content}")
4.1 AutoGen 0.4+
4.1.1 简介
- 技术定位:微软开源的多Agent协作框架
- 核心特性:
- 异步消息驱动架构
- 支持分布式Agent网络
- 内置MCP工具适配器
- 典型场景:实时监控系统、金融交易系统
4.1.2 代码示例
from autogen_ext.tools.mcp import SseMcpToolAdapter, StdioMcpToolAdapter
from autogen_ext.tools import mcp_server_tools
# 连接MCP服务器并获取工具列表
tools = mcp_server_tools(
server_type="sse", # 或 "stdio"
server_url="http://mcp-server:8000",
auth_token="your_token"
)
# 将工具适配器分配给AutoGen代理
agent = AutoGenAgent(
tools={
"search_tool": SseMcpToolAdapter(tools["search_tool"]),
"db_query": StdioMcpToolAdapter(tools["db_query"])
}
)
# 使用工具执行任务
result = agent.use_tool("search_tool", params={"query": "MCP integration"})
5.1 Pydantic AI
5.1.1 简介
- 技术定位:类型安全的LLM应用开发框架
- 核心特性:
- 基于Pydantic的类型验证
- 支持流式响应处理
- 无缝集成MCP工具链
- 典型场景:开发对话式AI应用、自动化报告生成
5.1.2 代码示例
from mcp import ClientSession, StdioServerParameters
from pydantic_ai import Agent, Tool
# 启动MCP服务器并连接
server_params = StdioServerParameters(
command="npx",
args=["-y", "@modelcontextprotocol/server-filesystem", "/path/to/data"]
)
async with ClientSession(server_params) as session:
await session.initialize()
tools_result = await session.list_tools()
# 转换MCP工具为PydanticAI工具
def convert_tool(tool):
return Tool(
name=tool.name,
function=lambda ctx, input: session.invoke(tool.name, input),
input_schema=tool.input_schema
)
agent = Agent(
tools=[convert_tool(t) for t in tools_result.tools],
model="claude-3.5"
)
# 执行工具调用
response = agent.act("search_files", {"pattern": "*.txt"})
print(response)
6.1 SmolAgents
6.1.1 简介
- 技术定位:轻量化快速原型框架
- 核心特性:
- 单行代码快速构建Agent
- 集成Hugging Face模型生态
- 支持MCP工具即插即用
- 典型场景:快速验证AI概念原型
6.1.2 代码示例
from smolagents import Tool, CodeAgent
from mcp import ClientSession
# 定义MCP工具适配器
class MCPTool(Tool):
def __init__(self, session):
self.session = session
async def forward(self, input):
return await self.session.invoke("mcp_tool_name", input)
# 初始化MCP会话
async def main():
session = ClientSession(StdioServerParameters(command="npx", args=["mcp-server"]))
await session.initialize()
# 创建SmolAgents并集成MCP工具
agent = CodeAgent(
tools=[MCPTool(session)],
model="ollama-7b"
)
# 执行任务
result = await agent.run("query_data", {"param": "value"})
print(result)
7.1 CrewAI
7.1.1 简介
- 技术定位:多智能体协作开发框架
- 核心特性:
- 基于角色的任务分配
- 支持自主代理间委派
- 集成MCP协议扩展能力
- 典型场景:构建智能助手平台、多Agent研究系统
7.1.2 代码示例
import io.modelcontextprotocol.sdk.ClientSession;
import io.modelcontextprotocol.sdk.StdioServerParameters;
public class CrewAIIntegration {
public static void main(String[] args) {
StdioServerParameters serverParams = new StdioServerParameters(
"npx",
List.of("-y", "@mcptools/mcp-tavily")
);
try (ClientSession session = new ClientSession(serverParams)) {
session.initialize().get();
List<Tool> tools = session.listTools().get().getTools();
// 将MCP工具注入CrewAI智能体
CrewAIAgent agent = new CrewAIAgent(
tools.stream()
.collect(Collectors.toMap(
Tool::getName,
tool -> input -> session.invoke(tool.getName(), input)
))
);
// 执行工具调用
String result = agent.useTool("web_search", Map.of("query", "CrewAI MCP"));
System.out.println(result);
}
}
}
2、MCP集成技术详解
2.1 MCP协议核心价值
- 标准化通信:实现LLM与外部资源的统一交互接口
- 动态工具接入:支持数据库、API、文件系统的即插即用
- 实时数据增强:为AI模型提供上下文感知能力
2.2 集成实现模式
框架名称 | 集成方式 | 优势特点 |
---|---|---|
OpenAI Agents | 内置MCP客户端支持 | 官方协议适配,开发成本低 |
LangGraph | 多服务器MCP客户端 | 支持复杂工具链组合 |
LlamaIndex | 工具规范自动转换 | 企业级RAG场景深度优化 |
AutoGen | 适配器模式(SSE/STDIO) | 高性能异步通信 |
Pydantic AI | 动态函数定义转换 | 类型安全验证 |
SmolAgents | 轻量级MCP客户端 | 快速原型验证 |
CrewAI | 角色化工具 | 多Agent协作场景优化 |
3、技术选型指南
框架选择维度 | 推荐框架 | 适用场景特征 |
---|---|---|
开发效率 | SmolAgents/OpenAI Agents | 快速原型验证 |
企业级RAG | LlamaIndex | 私有数据检索增强生成 |
多Agent协作 | CrewAI/AutoGen | 复杂任务分解与角色分配 |
类型安全 | Pydantic AI | 金融/医疗等强验证需求场景 |
图形化工作流 | LangGraph | 有状态多步骤业务流 |
4、总结
未来发展趋势:
- 协议标准化:MCP将成为AI基础设施标准协议
- 多模态扩展:集成视觉/语音等模态的MCP工具链
- 边缘计算:轻量化MCP客户端支持端侧部署
- 量子加速:量子计算优化大规模工具检索
我是小鱼:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO博客专家;
- 企业认证金牌面试官;
- 多个名企认证&特邀讲师等;
- 名企签约职场面试培训、职场规划师;
- 多个国内主流技术社区的认证专家博主;
- 多款主流产品(阿里云等)评测一等奖获得者;
关注小鱼,学习【机器视觉与目标检测】 和【人工智能与大模型】最新最全的领域知识。