我将在本文通过一个超快速教程,向你展示如何使用 Pydantic AI、MCP 和高级网络爬虫技术,构建一个适用于商业或个人用途的强大的多智能体聊天机器人。
MCP 作为一种开放标准,正逐渐被接受。在 AI 项目开发中,AI 模型的整合很复杂,如 LangGraph 和 Pydantic AI Tools 这样现有的框架存在代码抽象度高,且过于商业化的问题。
MCP 的优势在于其开放标准便于服务提供商开发 API,避免开发者重复造轮子,并允许他们使用现有的 MCP 服务来增强 AI 智能体。
接下来,我将通过一个实时聊天机器人演示,让你看看我将要做的东西。

我将提出两个问题:
1. 搜索关于人工智能的最新新闻
2. 创建一张柱状图,显示世界上五个最大城市的人口。
这个聊天机器人通过 MCP 调用不同工具协作完成任务。由 FastMCP 驱动的 Python 工具通过 PythonREPL 类安全运行 Python 代码并创建可视化内容,包含两个工具:
-
用于运行代码的 python_repl(code: str)
-
用于生成 Matplotlib 图表的 data_visualization(code: str)。
网络搜索工具使用 Exa API 获取搜索结果,配置了 FastMCP、API 客户端和默认的五条结果搜索设置,以 Markdown 格式返回答案。
AI 智能体连接到两个 MCP 服务器,必要时会重试,并执行多步骤任务,例如使用 exa_search.py 搜索气候变化数据,或使用 python_tools.py 创建柱状图。
免责声明:本文仅用于教育目的。我们不鼓励任何人进行网络爬虫操作,特别是针对那些可能有条款禁止此类行为的网站。
开始编码
我们定义了一个由 FastMCP 驱动的 Python 工具,用于执行任意 Python 代码并使用 Matplotlib 生成数据可视化。工具包括一个 PythonREPL 类,在受限环境中运行 Python 代码,重定向标准输出(sys.stdout)以捕获执行结果,并返回输出或错误回溯。
提供了两个MCP工具:
-
python_repl(code: str):执行Python代码并返回输出。 -
data_visualization(code: str):运行Python代码,保存Matplotlib图表,并将图像返回为base64编码的字符串,处理可能出现的错误。
使用 FastMCP(“python_tools”) 定义一个多智能体工具,用于执行 Python 任务,并在直接运行时作为 MCP 服务器启动:

接下来,我们使用 Exa API 在 MCP 框架内设置网络搜索工具。首先加载环境变量,并初始化 FastMCP 及元数据。然后,使用环境变量中的 API 密钥(或默认密钥)配置 Exa API 客户端。定义默认搜索配置,每次搜索返回五条结果,除非另有指定。主要功能注册为 MCP 工具,异步查询 Exa API,并以 Markdown 格式返回结果。

format_search_results() 函数格式化输出,包括标题、URL、发布日期和摘要(如果有)。如果直接运行脚本,则启动 MCP 实例:

我开发了一个利用DeepSeek Chat模型处理请求,同时集成了两个MCP服务器的 AI 智能体:
-
exa_search.py:使用Exa API处理网络搜索。 -
python_tools.py:提供基于Python的工具,包括数据分析和可视化。
智能体通过 agent.run_mcp_servers 定义,连接到这两个服务器,必要时重试最多三次。主要函数运行 MCP 服务器并执行多步骤任务:
1. 搜索最新的气候变化统计数据。
2. 使用Python生成柱状图,显示过去十年全球气温上升情况。

最后
MCP 不仅仅是一个协议或架构模式,它代表了 AI 驱动应用和分布式系统设计的基础性转变。通过有效分离模型、上下文和协议,组织可以创建适应性强、可扩展且易于维护的解决方案。
DeepSeek-V3 体现了这一理念,证明了通过算法优化和工程创新,即使资源有限也能打造顶级 AI 模型。
这一突破不仅挑战了传统的 AI 商业模式,还为企业家和开发者打开了大门,让他们利用高性能 AI 作为包容性创新的工具。
学习是一个过程,只要你在学习,就会有挑战。你越努力,就会变得越优秀。

(文:PyTorch研习社)