【大模型】一文掌握7个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快速原型验证
企业级RAGLlamaIndex私有数据检索增强生成
多Agent协作CrewAI/AutoGen复杂任务分解与角色分配
类型安全Pydantic AI金融/医疗等强验证需求场景
图形化工作流LangGraph有状态多步骤业务流

4、总结

未来发展趋势:

  • 协议标准化:MCP将成为AI基础设施标准协议
  • 多模态扩展:集成视觉/语音等模态的MCP工具链
  • 边缘计算:轻量化MCP客户端支持端侧部署
  • 量子加速:量子计算优化大规模工具检索

我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO博客专家
  • 企业认证金牌面试官
  • 多个名企认证&特邀讲师等
  • 名企签约职场面试培训、职场规划师
  • 多个国内主流技术社区的认证专家博主
  • 多款主流产品(阿里云等)评测一等奖获得者

关注小鱼,学习【机器视觉与目标检测】 和【人工智能与大模型】最新最全的领域知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl_奕然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值