В этой статье вы узнаете:
- Что такое smolagents и почему он набирает такую популярность.
- Как его агенты полагаются на выполнение инструментов и как получить инструменты через Web MCP компании Bright Data.
- Как интегрировать инструменты Web MCP в smolagents для создания агента с кодом ИИ.
Давайте погрузимся!
Что такое smolagents?
smolagents – это легкая библиотека Python, которая позволяет создавать мощные агенты ИИ с минимальным количеством кода. Ее уникальность заключается в CodeAgent, который записывает действия, необходимые для выполнения запроса, в виде исполняемых фрагментов Python-кода (вместо того, чтобы просто возвращать текстовый ответ).
Такой подход повышает эффективность, сокращает количество вызовов LLM и позволяет агентам напрямую взаимодействовать с инструментами и средами, безопасно выполняя их в песочнице. Сообщество приняло этот новый подход к созданию агентов ИИ, о чем свидетельствуют 23 тысячи звезд, которые библиотека получила на GitHub всего за несколько месяцев:

Помните, что smolagents:
- Не зависит от модели, поддерживает OpenAI, Anthropic, локальные трансформаторы или любой LLM на Hugging Face Hub.
- Модальность-агностичность, поддержка текста, зрения, аудио и видео.
- Поддержка инструментов с серверов MCP, LangChain или Hub Spaces.
Подробнее о философии, лежащей в основе этой библиотеки, можно узнать из анонса в блоге Hugging Face.
Почему smolagents настаивает на использовании инструментов
LLM ограничены данными, на которых они обучались. Они могут генерировать ответы, контент, код или мультимедиа на основе этих знаний. Это, конечно, делает их мощными, но также представляет собой одно из самых больших ограничений современного ИИ.
smolagents решает эту проблему, предоставляя агентов, построенных на основе инструментов. Это настолько важно, что каждый класс агента в библиотеке принимает список инструментов в качестве обязательного аргумента. Благодаря платному вызову ваша модель ИИ может взаимодействовать с окружением и выполнять задачи, выходящие за рамки генерации контента.
В частности, помните, что smolagents может подключаться к инструментам с серверов MCP, LangChain или даже Hub Space. Он также поддерживает стандартные вызовы инструментов на основе JSON/текста.
Итак, чего же не хватает типичному ИИ сегодня? Точных, свежих данных и возможности взаимодействовать с веб-страницами как люди. Именно это и обеспечивают инструменты Web MCP от Bright Data!
Web MCP – это сервер с открытым исходным кодом, предлагающий более 60 инструментов для ИИ, которые работают на базе инфраструктуры Bright Data для взаимодействия с веб-страницами и сбора данных. Даже на бесплатном уровне вы получаете доступ к двум инструментам, способным изменить ситуацию:
| Инструмент | Описание |
|---|---|
search_engine |
Получение результатов поиска из Google, Bing или Yandex в формате JSON или Markdown. |
scrape_as_markdown |
Соскребает любую веб-страницу в чистый формат Markdown, минуя обнаружение ботов и CAPTCHA. |
Помимо этого, Web MCP предоставляет инструменты для взаимодействия в облачном браузере и десятки специализированных инструментов для структурированного сбора данных на таких платформах, как YouTube, Amazon, LinkedIn, TikTok, Yahoo Finance и других. Узнайте больше на официальной странице GitHub.
Посмотрите на Web MCP в действии с помощью smolagents!
Как расширить кодовый агент ИИ smolagents с помощью инструментов Web MCP
В этом учебном разделе вы узнаете, как создать агента ИИ smolagents, который интегрируется с Bright Data Web MCP. В частности, агент будет использовать инструменты, предоставляемые сервером MCP, для получения веб-данных на лету и проведения анализа настроений.
Примечание: Это всего лишь пример, и вы можете легко адаптировать его для других случаев использования, изменив запрос на ввод.
Следуйте инструкциям ниже!
Необходимые условия
Чтобы следовать этому руководству, убедитесь, что у вас есть:
- Python 3.10+ установлен локально.
- На вашей машине установлен Node.js (мы рекомендуем последнюю версию LTS) для выполнения Web MCP.
- Ключ API Gemini (или ключ API любой другой поддерживаемой модели).
Вам также понадобится учетная запись Bright Data с ключом API. Не волнуйтесь, мы расскажем вам об этом в ближайшее время. Также будет полезно иметь базовое представление о том, как работает MCP, и об инструментах, предоставляемых Web MCP.
Шаг #1: Настройка проекта
Откройте терминал и создайте новую папку для вашего проекта smolagents:
mkdir smolagents-mcp-agent
smolagents-mcp-agent/ будет содержать Python-код для вашего агента ИИ, расширенного с помощью инструментов Web MCP.
Затем войдите в каталог проекта и инициализируйте в нем виртуальное окружение:
cd smolagents-mcp-agent
python -m venv .venv
Добавьте новый файл agent.py. Теперь структура файлов в вашем проекте должна быть такой:
smolagents-mcp-agent/
├── .venv/
└── agent.py
agent.py будет представлять собой ваш основной Python-файл и содержать определение агента ИИ.
Загрузите папку с проектом в вашу любимую Python IDE. Мы рекомендуем Visual Studio Code с расширением Python или PyCharm Community Edition.
Пора активировать созданную ранее виртуальную среду. В Linux или macOS, запустите:
source .venv/bin/activate
Аналогично, в Windows выполните:
.venv/Scripts/activate
Когда виртуальная среда активирована, установите необходимые библиотеки PyPI:
pip install "smolagents[mcp,openai]" python-dotenv
Зависимости следующие:
"smolagents[mcp,openai]": Пакетsmolagent, дополненный секциями для интеграции с MCP и подключения к любому провайдеру, предлагающему API, подобные OpenAI.python-dotenv: чтение переменных окружения из локального файла.env.
Готово! Теперь у вас есть среда Python для разработки агентов ИИ с помощью smolagents.
Шаг №2: Настройте чтение переменных окружения
Ваш агент будет подключаться к сторонним сервисам, таким как Gemini и Bright Data. Чтобы аутентифицировать эти соединения, вам нужно задать некоторые API-ключи. Жесткое кодирование их в файле agent.py – это кодовый запах, так как это может создать проблемы с безопасностью. Поэтому настройте свой скрипт на чтение секретов из переменных окружения.
Именно для этого мы установили пакет python-dotenv. В файле agent.py импортируйте библиотеку и вызовите load_dotenv(), чтобы загрузить переменные окружения:
from dotenv import load_dotenv
load_dotenv()
Теперь ваш скрипт может получить доступ к переменным окружения из локального файла .env.
Добавьте файл .env в каталог проекта:
smolagents-mcp-agent/
├── .venv/
├── .env # <------
└── agent.py
Затем вы можете получить доступ к переменным окружения в своем коде, используя:
import os
os.getenv("ENV_NAME")
Отлично! Теперь ваш скрипт безопасно загружает секреты интеграции сторонних разработчиков из переменных окружения.
Шаг № 3: Локальное тестирование Web MCP Bright Data
Прежде чем настраивать подключение к Web MCP Bright Data, убедитесь, что ваша машина может запускать сервер. Это необходимо, поскольку вы дадите smolagents команду запустить Web MCP локально. Затем ваш агент подключится к нему через STDIO.
Если у вас нет учетной записи Bright Data, создайте новую. Если есть, просто войдите в нее. Для быстрой настройки следуйте инструкциям в разделе “MCP” вашей учетной записи:

В противном случае, для получения более подробной информации, следуйте приведенным ниже инструкциям.
Сначала сгенерируйте ключ API Bright Data. Сохраните его в надежном месте, так как он вам скоро понадобится. Здесь мы предполагаем, что ваш API-ключ имеет права администратора, поскольку это упрощает процесс интеграции Web MCP.
Приступайте к глобальной установке Web MCP на вашу машину с помощью пакета @brightdata/mcp:
npm install -g @brightdata/mcp
Затем проверьте, что локальный MCP-сервер работает, запустив его:
API_TOKEN="<YOUR_BRIGHT_DATA_API>" npx -y @brightdata/mcp
Или, эквивалентно, в PowerShell:
$Env:API_TOKEN="<YOUR_BRIGHT_DATA_API>"; npx -y @brightdata/mcp
Замените место <YOUR_BRIGHT_DATA_API> своим API-токеном Bright Data. Эти команды установят необходимую переменную окружения API_TOKEN и запустят Web MCP локально, выполнив его пакет npm.
В случае успеха вы должны увидеть журналы, подобные этому:

При первом запуске Web MCP автоматически создает две зоны по умолчанию в вашей учетной записи Bright Data:
mcp_unlocker: Зона для Web Unlocker.mcp_browser: Зона для Browser API.
Для работы своих 60+ инструментов Web MCP использует эти два продукта Bright Data.
Если вы хотите проверить, что зоны были созданы, войдите в свою панель управления Bright Data. Перейдите на страницу “Прокси и Скрейпинг-инфраструктура“, и вы увидите эти две зоны в таблице:

Примечание: Если ваш API-токен не имеет прав администратора, эти две зоны не будут созданы. В этом случае вы должны установить их вручную и настроить их имена через переменные окружения , как описано на GitHub.
По умолчанию на MCP-сервере доступны только инструменты search_engine и scrape_as_markdown (и их пакетные версии). Эти инструменты включены в бесплатный уровень Web MCP, поэтому вы можете использовать их бесплатно.
Чтобы разблокировать расширенные инструменты, такие как инструменты для автоматизации браузера и структурированных данных, вы должны включить режим Pro. Для этого перед запуском Web MCP установите переменную окружения PRO_MODE="true":
API_TOKEN="<YOUR_BRIGHT_DATA_API>" PRO_MODE="true" npx -y @brightdata/mcp
Или в Windows:
$Env:API_TOKEN="<YOUR_BRIGHT_DATA_API>"; $Env:PRO_MODE="true"; npx -y @brightdata/mcp
Режим Pro открывает все 60+ инструментов, но он не входит в бесплатный уровень и требует дополнительной оплаты.
Замечательно! Вы только что убедились, что сервер Web MCP работает в вашей системе. Завершите процесс MCP, так как вы собираетесь настроить свой скрипт для запуска и подключения к нему.
Шаг № 4: Подключение к Web MCP
Настройте ваш Python-скрипт на подключение к серверу Web MCP через STDIO.
Начните с добавления ключа API Bright Data, который вы получили ранее, в файл .env:
BRIGHT_DATA_API_KEY="<ВАШ_BRIGHT_DATA_API_KEY>".
Замените место <YOUR_BRIGHT_DATA_API_KEY> на ваш реальный ключ.
В файле agent.py загрузите ключ API с помощью:
BRIGHT_DATA_API_KEY = os.getenv("BRIGHT_DATA_API_KEY")
Затем определите объект StdioServerParameters для настройки STDIO-соединения:
from mcp import StdioServerParameters
server_parameters = StdioServerParameters(
command="npx",
args=["-y", "@brightdata/mcp"],
env={
"API_TOKEN": BRIGHT_DATA_API_KEY,
"PRO_MODE": "true", # Дополнительно
},
)
Эта установка повторяет предыдущую команду npx, используя переменную окружения для токена API. Обратите внимание, что API_TOKEN является обязательным, а PRO_MODE – необязательным.
Используйте экземпляр MCPClient, чтобы применить эти настройки соединения и получить список инструментов, предоставляемых сервером:
from smolagents import MCPClient
with MCPClient(server_parameters, structured_output=True) as tools:
Теперь ваш скрипт agent.py запустит процесс Web MCP и подключится к нему через STDIO. В результате вы получите массив инструментов, которые можно передать любому агенту ИИ smolagents.
Проверьте соединение, распечатав доступные инструменты:
for bright_data_tool in bright_data_tools:
print(f "TOOL: {bright_data_tool.name} - {bright_data_tool.description}n")
Если вы запустите скрипт с отключенным режимом Pro, вы увидите ограниченный набор инструментов:

При включении режима Pro будут отображены все 60 с лишним инструментов:

Потрясающе! Это подтверждает, что интеграция с Web MCP работает правильно.
Шаг #5: Определите интеграцию LLM
Теперь у вашего скрипта есть доступ к инструментам, но вашему агенту также нужен мозг. Это значит, что пришло время настроить соединение с сервисом LLM.
Начните с добавления ключа API Gemini в файл .env:
GEMINI_API_KEY="<ВАШ_GEMINI_API_KEY>".
Затем загрузите его в файл agent.py:
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
Затем определите экземпляр OpenAIServerModel для подключения к API Gemini:
from smolagents import OpenAIServerModel
model = OpenAIServerModel(
model_id="gemini-2.5-flash",
# URL базы API, совместимого с Google Gemini OpenAI
api_base="https://generativelanguage.googleapis.com/v1beta/openai/",
api_key=GEMINI_API_KEY,
)
Даже если вы используете класс модели для OpenAI, это будет работать. Это происходит благодаря заданной вами специфической api_base, которая дает вам доступ к OpenAI-совместимым конечным точкам для интеграции с Gemini. Круто!
Шаг № 6: Создание агента ИИ с помощью инструментов Web MCP
Теперь у вас есть все строительные блоки для создания ИИ-агента с кодом smolagents. Используйте инструменты Web MCP и движок LLM, чтобы определить его:
from smolagents import CodeAgent
agent = CodeAgent(
model=model,
tools=tools,
stream_outputs=True,
)
CodeAgent – это основной тип агента ИИ в smolagents. Он генерирует фрагменты кода на Python для выполнения действий и решения задач. Плюсы и минусы этого подхода следующие:
Плюсы:
- Высокая выразительность: Может обрабатывать сложную логику, поток управления и комбинировать несколько инструментов. Кроме того, он поддерживает циклы, преобразования, рассуждения и т. д.
- Гибкость: Не нужно заранее определять каждое действие, так как он может динамически генерировать новые действия и инструменты.
- Эмерджентные рассуждения: Хорошо подходит для решения многоэтапных задач или принятия динамических решений.
Минусы:
- Риск ошибок: Может приводить к синтаксическим ошибкам Python или исключениям, требующим обработки.
- Низкая предсказуемость: Выходные данные могут быть неожиданными или небезопасными.
- Требуется безопасное окружение: Должен работать в безопасном контексте выполнения.
Осталось только запустить агента и позволить ему выполнять задачи!
Шаг № 7: Выполнение задачи в агенте
Чтобы проверить возможности агента по получению веб-данных, необходимо написать соответствующую подсказку. Например, предположим, что вам нужно проанализировать настроение комментариев к видео на YouTube.
Инструмент Web MCP получит комментарии, а сценарий Python, сгенерированный CodeAgent, выполнит анализ настроения. Наконец, код будет выполнен. Сгенерированный Python-код также полезен для понимания процесса и упрощения будущих расширений.
Для этого запустите в агенте приглашение, подобное следующему:
prompt = """
Извлеките 10 лучших комментариев из следующего видео на YouTube:
Предоставить краткий отчет, включающий анализ настроения, а также выдержки из фактических комментариев
"""
# Выполнение запроса в агенте
agent.run(prompt)
Входной видеоролик представляет собой анонс трейлера к Black Ops 7, видеоигре, которая не была хорошо принята сообществом.
Поскольку большинство комментариев довольно предвзяты, ожидается, что анализ настроения выдаст результаты, которые подчеркнут преимущественно негативную реакцию.
Шаг № 8: Соберите все вместе
Сейчас ваш файл agent.py должен содержать:
# pip install "smolagents[mcp,openai]" python-dotenv
из dotenv import load_dotenv
импортировать os
from smolagents import OpenAIServerModel, MCPClient, CodeAgent, ToolCallingAgent
from mcp import StdioServerParameters
# Загрузите переменные окружения из файла .env
load_dotenv()
# Считываем ключи API из envs
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
BRIGHT_DATA_API_KEY = os.getenv("BRIGHT_DATA_API_KEY")
server_parameters = StdioServerParameters(
command="npx",
args=["-y", "@brightdata/mcp"],
env={
"API_TOKEN": BRIGHT_DATA_API_KEY,
"PRO_MODE": "true", # Дополнительно
},
)
# Инициализируем соединение с Gemini
model = OpenAIServerModel(
model_id="gemini-2.5-flash",
# URL базы API, совместимого с Google Gemini OpenAI
api_base="https://generativelanguage.googleapis.com/v1beta/openai/",
api_key=GEMINI_API_KEY,
)
# Инициализация MCP-клиента и получение инструментов
with MCPClient(server_parameters, structured_output=True) as tools:
# Определите агента ИИ, расширенного инструментами MCP
agent = CodeAgent(
model=model,
tools=tools,
stream_outputs=True,
)
prompt = """
Извлеките 10 лучших комментариев из следующего видео на YouTube:
Предоставьте краткий отчет, включающий анализ настроений, а также выдержки из фактических комментариев
"""
# Выполнение запроса в агенте
agent.run(prompt)
Как и было обещано, smolagents оправдывает ожидания и позволяет создать полноценного агента ИИ с интеграцией MCP менее чем за 50 строк кода.
Протестируйте его, выполнив:
python agent.py
Предположим, что вы запускаете его с режимом Pro, включенным для Web MCP. В результате вы получите многошаговый вывод, как показано ниже:

Обратите внимание, что, судя по подсказке, агент успешно выбрал инструмент Web MCP web_data_youtube_comments. Он вызвал его с правильными аргументами для достижения цели. Этот инструмент описывается как: “Быстрое чтение структурированных данных о комментариях на youtube. Требуется действительный URL-адрес видео на youtube. Это может быть поиск в кэше, поэтому он может быть более надежным, чем скраппинг”. Итак, это было хорошее решение!
После того как инструмент вернул данные о комментариях, начинается этап 2 по созданию отчета:

На этом этапе создается окончательный отчет об анализе настроений. В частности, CodeAgent создает весь Python-код для генерации отчета и выполняет его на данных, полученных с помощью web_data_youtube_comments.
Такой подход позволяет четко понять процесс, который ИИ использовал для получения результата, устраняя во многом обычный эффект “черного ящика”, присущий LLM.
Результат будет выглядеть примерно так:

Как и ожидалось, анализ настроений в основном негативный.
Обратите внимание, что комментарии, приведенные в отчете, полностью совпадают с тем, что вы можете увидеть на странице YouTube, посвященной этому видео:

Если вы когда-либо пробовали искать информацию на YouTube, вы знаете, насколько это сложно из-за защиты от ботов и необходимости взаимодействия с пользователем. Это то, с чем не могут справиться ванильные LLM, что демонстрирует мощь и эффективность интеграции Web MCP Bright Data в ИИ-агент smolagents.
Не стесняйтесь экспериментировать с различными подсказками. Благодаря широкому спектру инструментов Bright Data Web MCP вы можете решать самые разные реальные задачи.
И вуаля! Вы только что увидели возможности сочетания Web MCP Bright Data и ИИ-агента smolagents на языке Python.
Заключение
В этой статье вы узнали, как создать ИИ-агент на основе кода с помощью smolagents. Вы увидели, как усовершенствовать его с помощью инструментов из Web MCP Bright Data, который даже предлагает бесплатный уровень.
Эта интеграция позволяет агенту осуществлять веб-поиск, извлекать структурированные данные, получать доступ к живым лентам веб-данных, автоматизировать веб-взаимодействие и многое другое. Чтобы создать еще более сложные агенты ИИ, изучите более широкий спектр продуктов и услуг для ИИ, доступных в экосистеме Bright Data.
Создайте учетную запись Bright Data сегодня и начните экспериментировать с нашими инструментами для работы с веб-данными!