SmolAgents MCPs

SmolAgents MCPs

🚀 SmolAgents + MCP 服务器

本项目展示了如何运用 SmolAgents 库构建一个 AI 助手,该助手可进行网络搜索,抓取并爬取网站。这一功能通过集成 Brave Search 和 Crawl4ai 模型上下文协议(MCP)服务器得以实现。

🚀 快速开始

先决条件

在运行此项目前,请确保已安装以下依赖项:

  • smolagents
  • python-dotenv
  • mcp
  • @modelcontextprotocol/server-brave-search(通过 npm/npx 全局安装)
  • litellm

您可以使用 pip 安装 Python 包:

pip install -r requirements.txt

同时,请确保已安装 Node.js、npm/npx 以及 uv,以便运行 MCP 服务器。

环境变量

在项目根目录下创建一个 .env 文件,并添加以下变量:

BRAVE_API_KEY=your_brave_api_key
OPENAI_API_KEY=your_openai_api_key

请将 your_brave_api_keyyour_openai_api_key 替换为您实际的 API 密钥。

使用方法

  1. 克隆仓库或下载脚本 (smolagent_with_mcp.py)。
  2. 在终端中导航至项目目录。
  3. 运行脚本:
python smolagent_with_mcp.py
  1. 输入搜索查询与助手进行交互。输入 exitquit 可终止会话。

代码将代理的初始化和主要交互循环封装在 Python 类 (SmolAgentWithMCP) 中,这种面向对象的方法实现了模块化设计,便于扩展代理功能,例如集成更多的 MCP 服务器及其工具。

✨ 主要特性

  • 模块化设计:代码采用面向对象的方法,将代理的初始化和交互循环封装在 SmolAgentWithMCP 类中,方便扩展功能。
  • 可扩展性:能够轻松添加更多的 MCP 服务器和工具,以增强代理的能力。

📦 安装指南

依赖安装

使用以下命令安装 Python 依赖:

pip install -r requirements.txt

同时,要确保系统已安装 Node.js、npm/npx 以及 uv,用于运行 MCP 服务器。

环境变量配置

在项目根目录创建 .env 文件,并添加 API 密钥:

BRAVE_API_KEY=your_brave_api_key
OPENAI_API_KEY=your_openai_api_key

💻 使用示例

基础用法

以下是一个完整的示例脚本 smolagent_with_mcp.py

from smolagents import SmolAgentWithMCP
from modelcontextprotocol.server_brave_search import StdioServerParameters

def main():
# 定义 MCP 服务器参数
brave_server_params = StdioServerParameters()
crawl4ai_server_params = StdioServerParameters()

# 初始化代理并运行
agent = SmolAgentWithMCP([brave_server_params, crawl4ai_server_params])
agent.run()

if __name__ == "__main__":
main()

高级用法

smolagent_with_mcp.py 文件的结构支持以模块化方式轻松添加更多的 MCP 服务器和工具。要添加新的 MCP 服务器,可按以下步骤操作:

  1. 定义新服务器的 StdioServerParameters,需指定运行服务器的命令、参数以及必要的环境变量(类似于 brave_server_paramscrawl4ai_server_params 的定义方式)。
  2. 将新定义的服务器参数对象添加到 main 函数中的 server_list 中。BraveSearchAgentApp 类会自动初始化新的服务器,并将其工具纳入代理的能力范围。

示例:

# 定义新服务器的参数(用实际命令和参数替换)
new_server_params = StdioServerParameters(
command="your_server_command",
args=["arg1", "arg2"],
env={"YOUR_API_KEY": os.getenv("YOUR_API_KEY")},
)

def main():
# 定义 MCP 服务器参数列表
server_list = [
brave_server_params,
crawl4ai_server_params,
new_server_params
]

# 初始化代理并运行
agent = SmolAgentWithMCP(server_list)
agent.run()

if __name__ == "__main__":
main()

📚 详细文档

备注

  • 确保 npx 已安装且可在系统 PATH 中使用,因为运行 Brave Search MCP 服务器需要它。
  • SmolAgents 中的 ToolCallingAgent 会以结构化格式(如 JSON)输出工具调用,这些调用随后由环境执行(在本例中为主脚本中的主要循环使用 MCPClient 执行)。

添加更多 MCP 服务器

要添加新的 MCP 服务器,可参考以下步骤:

  1. 定义新服务器的 StdioServerParameters,指定运行命令、参数和环境变量。
  2. 将新服务器参数添加到 main 函数的 server_list 中。

📄 许可证

该项目采用 MIT 许可证,您可自由使用、修改和分发代码。

  • 0 关注
  • 0 收藏,7 浏览
  • system 提出于 2025-09-23 01:48

相似服务问题