关于 SmolAgents + MCP servers
这是一个基于 SmolAgents 的 Python AI 助手,可搜索网页并抓取网站。其类结构便于添加 MCP 服务及其工具。
主要功能
- 01集成 Brave Search 和 Crawl4ai
- 02交互式搜索会话
- 03基于类的 Agent 结构
- 04可扩展的 MCP 服务列表
适用场景
- 01通过 Brave Search 搜索网页
- 02使用 Crawl4ai 抓取网站
MCP 相关
连接 Brave Search 和 Crawl4ai MCP 服务,并将其工具提供给 SmolAgents 助手。服务列表可扩展以添加其他 MCP 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
SmolAgents + MCP 服务
此项目演示了如何使用 SmolAgents 库构建 AI 助手,并通过集成 Brave Search 和 Crawl4ai Model Context Protocol(MCP)服务,使其能够执行网页搜索并抓取/爬取网站。
要求
运行此项目之前,请确保已安装以下依赖项:
smolagentspython-dotenvmcp@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_key 和 your_openai_api_key 替换为你的实际 API 密钥。
用法
-
克隆仓库或下载脚本(
smolagent_with_mcp.py)。 -
在终端中切换到项目目录。
-
运行脚本:
python smolagent_with_mcp.py -
输入搜索查询,与助手交互。输入
exit或quit以结束会话。
代码将 Agent 的初始化和主交互循环封装在一个 Python 类(SmolAgentWithMCP)中。这种面向对象的方法具有模块化优势,也让扩展 Agent 的能力更加容易,例如集成其他 MCP 服务及其工具。
备注
- 请确保已安装
npx,且它位于系统的 PATH 中,因为运行 Brave Search MCP 服务需要使用它。 - SmolAgents 中的
ToolCallingAgent会以结构化格式(如 JSON)输出工具调用,然后由环境执行(在此处,即脚本主循环通过MCPClient执行)。
添加更多 MCP 服务
smolagent_with_mcp.py 文件采用模块化结构,可以轻松添加更多 MCP 服务及其工具。要添加新的 MCP 服务:
-
为新服务定义
StdioServerParameters。这包括指定运行服务的命令、参数以及任何必要的环境变量(类似于brave_server_params和crawl4ai_server_params的定义方式)。 -
将新定义的服务参数对象添加到
main函数中的server_list。BraveSearchAgentApp类会自动初始化新服务,并将其工具添加到 Agent 的能力中。
示例:
# Define parameters for a new server (replace with actual command and args)
new_server_params = StdioServerParameters(
command="your_server_command",
args=["arg1", "arg2"],
env={"YOUR_API_KEY": os.getenv("YOUR_API_KEY")},
)
def main():
# Define the list of MCP server parameters
server_list = [
brave_server_params,
crawl4ai_server_params,
new_server_params # Add the new server parameters here
# Add other server parameters here as needed
]
app = BraveSearchAgentApp(server_list)
app.run()
if __name__ == "__main__":
main()
项目中使用的 MCP:
https://playbooks.com/mcp/ritvij14-crawl4ai https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search
许可证
此项目采用 MIT License 授权。更多详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。