Если вы пробовали собирать AI-агентов на популярных фреймворках вроде LangChain или CrewAI, то наверняка знаете это чувство: пара десятков строк логики обрастают сложными схемами, бесконечными обёртками и капризным парсингом JSON. В итоге вместо автоматизации задачи приходится разбираться, почему модель не так закрыла скобку в аргументах функции.
Команда Hugging Face решила подойти к проблеме проще и выпустила smolagents. Это лёгкая библиотека (ядро занимает всего около тысячи строк понятного кода), которая убирает лишние прослойки. Главная идея: агент не пытается упаковать свои намерения в громоздкий JSON, а сразу пишет и выполняет обычный код на Python.
smolagents: обзор концепции CodeAgent
Обычный агент работает короткими перебежками: подумал, сформировал JSON для вызова инструмента, подождал ответ от среды и снова пошёл в нейросеть. Если нужно найти пять ссылок, вытащить из них текст и отсортировать по дате — это пять отдельных запросов к модели и куча потраченных токенов.
В smolagents основу составляет CodeAgent. Он мыслит целыми блоками кода:
- Логика в один проход: агент может сразу объявить переменные, запустить цикл, обработать ошибки и отфильтровать результат прямо в Python.
- Экономия токенов и времени: то, на что у классического агента уходит 4–6 шагов диалога, здесь решается одним запуском скрипта.
- Точность: современные модели (особенно уровня Claude 3.5 Sonnet, GPT-4o или открытых Qwen Coder) обучены на гигантских массивах репозиториев. Писать чистый Python для них естественнее, чем строго соблюдать чужие JSON-схемы.
smolagents: практический гайд по запуску
Библиотека ставится за пару секунд без тяжёлых зависимостей:
pip install "smolagents[toolkit]"
Чтобы запустить первого агента с доступом в веб, нужно буквально несколько строк кода:
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel
# Модель из Hugging Face Hub (или любая другая через LiteLLM)
model = HfApiModel()
# Передаём агенту инструмент поиска
agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=model)
# Ставим задачу на русском языке
result = agent.run("Найди последние новости про релизы открытых LLM за эту неделю и выдели топ-3")
print(result)
Работа с локальными моделями через Ollama
Платить за токены в облаке не обязательно. smolagents без проблем подключается к локальному серверу Ollama или vLLM. Это удобно, если вы гоняете модели на собственном железе или не хотите отдавать данные наружу:
from smolagents import CodeAgent, DuckDuckGoSearchTool, LiteLLMModel
# Подключаем локальную модель через LiteLLM
model = LiteLLMModel(
model_id="ollama/qwen2.5-coder:14b",
api_base="http://localhost:11434"
)
agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=model)
agent.run("Собери список свежих статей по AI с Хабра и сохрани в читаемом виде")
Для кодовых агентов связка с Qwen 2.5 Coder на 14B или 32B показывает отличные результаты: модель уверенно пишет функции и не путается в синтаксисе.
Безопасность: не сломает ли агент систему?
Когда языковая модель генерирует исполняемый код, первый логичный вопрос — безопасность. В smolagents с этим порядок:
- Безопасный интерпретатор по умолчанию: код не летит напрямую в системный терминал. Он разбирается через AST (синтаксическое дерево). Опасные штуки вроде
os.system, прямого удаления файлов или скрытых сетевых запросов заблокированы на уровне парсера. Доступны только те инструменты, которые вы явно передали агенту. - Изолированные песочницы: если агенту всё-таки нужно ставить сторонние пакеты или запускать тяжёлые скрипты, выполнение можно в один клик вынести в Docker-контейнер или облачные среды вроде E2B или Modal.
smolagents как конструктор AI-агентов: кому он подойдёт
У инструмента понятная ниша:
- Вам точно стоит попробовать smolagents, если вам нужен лёгкий, прозрачный конструктор без лишней магии под капотом. Он идеален для парсинга, рутинного анализа данных, работы с файлами и API, где важна скорость и предсказуемость.
- CrewAI лучше выбрать, если вам принципиально моделировать роли людей (например, отдел из виртуального маркетолога, редактора и фактчекера).
- LangGraph нужен там, где проект дорос до сложных ветвящихся графов с сохранением состояния между десятками сессий.
Резюме
Hugging Face выпустили отличную библиотеку для тех, кто устал от оверхеда. smolagents делает ровно то, что заявлено: даёт агентам возможность действовать кодом, экономит токены и запускается за пять минут. Для большинства прикладных задач разработчика этого хватает с головой.