Smolagents AI Agent Framework

 HuggingFace's NEW Agent Framework ,Создайте мощные агенты искусственного интеллекта с минимальными усилиями

SmolAgents - мощные агенты ИИ, минимум кода, на фреймворке Hugging Face | Product Hunt

Deep Research build By Smolagents FREE

Powered By Smolagents

Ai код Smolagents | FAST&FREE

Powered by Together AI and LlamaCoder

smolagents and tools gallery

best smolagents in huggingface

 Что такое агенты?

Агенты искусственного интеллекта программы, в которых результаты LLM управляют рабочим процессом.

В таблице показано, как различаются агентства в разных системах:

Уровень агентстваОписаниеКак это называетсяПример узора
☆☆☆Выпуск LLM не влияет на ход программыПростой процессорprocess_llm_output(llm_response)
★☆☆Выход LLM определяет базовый поток управленияМаршрутизаторif llm_decision(): path_a() else: path_b()
★★☆Выход LLM определяет выполнение функцииВызов инструментаrun_function(llm_chosen_tool, llm_chosen_args)
★★★Выход LLM управляет итерацией и продолжением программыМногоступенчатый агентwhile llm_should_continue(): execute_next_step()
★★★Один агентский рабочий процесс может запустить другой агентский рабочий процессМультиагентныйif llm_trigger(): execute_agent()

Особенность SmolAgents

🤗 Смолагенты это минималистичный фреймворк для ИИ-агентов, разработанный командой Hugging Face и позволяющий разработчикам внедрять надежных агентов всего за несколько строк кода. Воплощая в себе простоту и эффективность, smolagents позволяет большим языковым моделям (LLM) беспрепятственно взаимодействовать с реальным миром.

✨ Простота

Компактная кодовая база: Приблизительно 1000 строк основного кода в agents.pyВ smolagents абстракции сведены к минимуму, что упрощает разработку.

Удобный для пользователя

Разработчики могут быстро определить агентов, снабдить их необходимыми инструментами и сразу же запустить их без сложных конфигураций.

Кодовые агенты

 smolagents фокусируется на кодовые агентыАгенты пишут и выполняют фрагменты кода Python для выполнения действий, вместо того чтобы генерировать действия в виде JSON или текстовых блоков.

Высокая эффективность

По сравнению со стандартными методами вызова инструментов, кодовые агенты обеспечивают повышенную эффективность и точность, сокращая количество шагов и вызовов LLM примерно на 30% и достигая превосходной производительности на сложных бенчмарках.

Безопасное выполнение

 Чтобы обеспечить безопасное выполнение кода, smolagents поддерживает выполнение кода в "песочнице", например E2Bобеспечивая защищенное и изолированное пространство для выполнения.

Различные магистратуры

 smolagents легко интегрируется с любой большой языковой моделью, включая модели, размещенные на Hugging Face Hub через Transformers, а также модели от OpenAI, Anthropic и других компаний через интеграцию LiteLLM.

SmolAgents :Интеграция с Hugging Face Hub

Инструменты обмена и загрузки: Глубокая интеграция с Hugging Face Hub позволяет разработчикам легко обмениваться и импортировать инструменты, способствуя сотрудничеству и обмену опытом внутри сообщества.

Рост экосистемы: Используя возможности хаба, smolagents постоянно расширяется за счет увеличения функциональности и инструментов, предлагая безграничный потенциал для развития.

Поддержка традиционных агентов по вызову инструментов

Разнообразие выбора: Помимо кодовых агентов, smolagents также поддерживает традиционные агенты по вызову инструментовВ нем действия записываются в виде JSON или текстовых блоков, подходящих для конкретных сценариев и требований.

Причины выбрать код smolAgents

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

Эффективная работа с объектами: По сравнению с JSON, код упрощает управление и передачу объектов.

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

Обширные учебные данные: Магистры наук прошли обучение на огромном количестве высококачественного кода, что повысило их способность генерировать и понимать код.

Преимущества производительности из smolagents

В различных бенчмарках smolagent, использующие модели с открытым исходным кодом, сравнялись по производительности с агентами, использующими проприетарные модели. Благодаря эффективности кодовых агентов и постоянному совершенствованию моделей с открытым исходным кодом разработчики могут создавать мощные агентные системы, не полагаясь на закрытые сервисы.

Пример применения SmolAgents

В Smolagents агенты инкапсулируются в классы, которые позволяют им выполнять определенные задачи. Например ManagedAgent Можно создать инструмент для управления различными задачами, используя различные типы агентов. Ниже приведен упрощенный пример реализации двух агентов - одного для поиска в Интернете и другого для создания изображений. Вот как создать пользовательский инструмент, который получает время поездок из Google Maps, и как использовать его в агенте для планирования поездок:

from typing import Optional
from smolagents import CodeAgent, HfApiModel, tool

@tool
def get_travel_duration(start_location: str, destination_location: str, transportation_mode: Optional[str] = None) -> str:
    """Gets the travel time between two places.

    Args:
        start_location: the place from which you start your ride
        destination_location: the place of arrival
        transportation_mode: The transportation mode, in 'driving', 'walking', 'bicycling', or 'transit'. Defaults to 'driving'.
    """
    import os   # All imports are placed within the function, to allow for sharing to Hub.
    import googlemaps
    from datetime import datetime

    gmaps = googlemaps.Client(os.getenv("GMAPS_API_KEY"))

    if transportation_mode is None:
        transportation_mode = "driving"
    try:
        directions_result = gmaps.directions(
            start_location,
            destination_location,
            mode=transportation_mode,
            departure_time=datetime(2025, 6, 6, 11, 0), # At 11, date far in the future
        )
        if len(directions_result) == 0:
            return "No way found between these places with the required transportation mode."
        return directions_result[0]["legs"][0]["duration"]["text"]
    except Exception as e:
        print(e)
        return e

agent = CodeAgent(tools=[get_travel_duration], model=HfApiModel(), additional_authorized_imports=["datetime"])

agent.run("Can you give me a nice one-day trip around Paris with a few locations and the times? Could be in the city or outside, but should fit in one day. I'm travelling only with a rented bicycle.")

После нескольких этапов сбора информации о времени в пути и расчетов агент выдает следующее предложение:Однодневный маршрут велосипедной прогулки по Парижу:


1. Старт у Эйфелевой башни в 9:00 утра.
2. Осмотр Эйфелевой башни до 10:30 утра.
3. Отправляйтесь к собору Нотр-Дам в 10:46 утра.
4. Осмотр собора Нотр-Дам до 12:16.
5. Отправляйтесь на Монмартр в 12:41.
6. Осмотр достопримечательностей на Монмартре до 14:11.
7. Отправляйтесь в Люксембургский сад в 14:33.
8. Осмотр Люксембургского сада до 16:03.
9. Поездка в музей Лувр в 16:12.
10. Осмотр музея Лувр до 17:42.
11. Перерыв на обед до 18:12.
12. Планируемое время окончания: 18:12.

После создания инструмента поделиться им с Hub очень просто:

get_travel_duration.push_to_hub("{ваше_имя_пользователя}/get-travel-duration-tool")

Ресурсы SmolAgents

Часто задаваемые вопросы о smolagents

smolagents - это минималистичная библиотека агентов ИИ, разработанная командой Hugging Face. Она позволяет разработчикам создавать и запускать мощные агенты ИИ с минимальным количеством кода. Ориентируясь на простоту и эффективность, smolagents позволяет большим языковым моделям (LLM) легко взаимодействовать с реальными задачами.

В отличие от многих фреймворков агентов ИИ, имеющих сложные абстракции и конфигурации, smolagents имеет компактную кодовую базу, состоящую примерно из 1 000 строк. Он подчеркивает простоту использования и поддерживает кодовые агенты, в которых агенты выполняют фрагменты кода Python напрямую, что повышает эффективность и сокращает количество необходимых шагов и вызовов LLM.

 Кодовые агенты - ключевая особенность smolagents. Вместо того чтобы генерировать действия в виде JSON или текстовых блоков, агенты кода пишут и выполняют фрагменты кода Python для выполнения задач. Этот подход использует способность LLM генерировать и понимать код, обеспечивая лучшую композитность и гибкость при выражении сложной логики.

Вы можете установить smolagents с помощью команды pip:

复制pip install smolagents

Чтобы начать работу, определите агента, импортировав необходимые классы, предоставьте требуемые инструменты и модель LLM и запустите свои задачи. Например:

python复制из smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel

агент = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel())
agent.run("Ваша задача здесь")

 smolagents разработан для широкой совместимости с LLM. Он легко интегрируется с моделями, размещенными на Hugging Face Hub с помощью трансформеров, а также с моделями от OpenAI, Anthropic и других компаний с помощью интеграции LiteLLM. Такая гибкость позволяет выбрать наиболее подходящий LLM для нужд вашего проекта.

 Да, помимо кодовых агентов, smolagents поддерживает традиционные агенты вызова инструментов. В этом режиме действия записываются в виде JSON или текстовых блоков, что может быть удобно для специфических сценариев, где выполнение фрагментов кода может быть не идеальным.

 smolagents уделяет приоритетное внимание безопасному выполнению кода, поддерживая среды "песочницы". Например, она может использовать E2B (Execution to Binary), которая обеспечивает безопасную и изолированную среду для выполнения фрагментов кода. Это гарантирует, что выполнение кода не нарушит безопасность хост-системы.

 Кодовые агенты обладают рядом преимуществ:

  • Улучшенная совместимость: Код естественным образом допускает вложенность и повторное использование функций, что упрощает выражение сложной логики.
  • Эффективное управление объектами: Управление и передача объектов более понятны в коде по сравнению с JSON.
  • Высокая гибкость: Код может представлять любую вычислительную операцию, что обеспечивает огромную универсальность.
  • Использование большого количества обучающих данных: Поскольку LLM обучаются на больших объемах кода, они умеют генерировать и понимать фрагменты кода.

 smolagents имеет глубокую интеграцию с Hugging Face Hub, что позволяет разработчикам легко обмениваться и загружать инструменты. Это способствует развитию совместной экосистемы, в которой инструменты и ресурсы могут быть предоставлены и доступны сообществу, что расширяет функциональность и охват smolagents.

Вы можете изучить следующие ресурсы, чтобы узнать больше о smolagents:

  • Официальная документация: Посетите документацию по smolagents на Сайт "Обнимая лицо".
  • Руководство по началу работы: Ознакомьтесь с вводными руководствами и учебными пособиями, подготовленными командой Hugging Face.
  • Примеры проектов: Изучите примеры проектов и примеры кода на GitHub, чтобы увидеть smolagents в действии.
  • Форумы сообщества: Взаимодействуйте с сообществом разработчиков на форумах и в обсуждениях, чтобы получить информацию и поддержку.

Choose from Your languange