Создание автономных агентов с помощью Smolagents и Novita AI

Создание автономных агентов с помощью Smolagents и Novita AI

Ключевые моменты

1. AI-агент:
Обеспечивает автономное принятие решений, выходя за рамки жёстких, предопределённых рабочих процессов.
Использует итеративное рассуждение, адаптивное выполнение и непрерывное обучение.

2. Smolagents:
Лёгкая библиотека Python (~1 000 строк), упрощающая создание AI-агентов.
Напрямую генерирует исполняемые фрагменты кода Python, которые безопасно выполняются в изолированных средах.
Поддерживает различные модели, модальности (текст, изображения, аудио, видео) и интеграцию внешних инструментов.

3. Novita AI:
Совместима с Smolagents, поддерживает мощные модели, такие как DeepSeek R1 Turbo, с повышенной производительностью и доступной ценой.

Искусственный интеллект эволюционировал от распознавания образов до генерации креативного контента. Следующий значительный скачок — появление agentic AI, систем, способных к автономному принятию решений и действиям для решения сложных многошаговых задач. В этой статье мы рассмотрим концепцию AI-агентов, углубимся в особенности кодовых агентов, опишем, как их можно построить, обсудим производительность различных базовых моделей и ответим на часто задаваемые вопросы об этой преобразующей технологии.

Что такое AI-агент?

Agentic AI решает задачи, с которыми традиционные жёсткие рабочие процессы справляются неэффективно. Многие реальные сценарии включают сложные, многообразные процессы, которые невозможно полностью описать статическими, предопределёнными структурами if-else. Agentic AI вносит гибкость и адаптивность в рабочие процессы, позволяя системам динамически определять и выполнять оптимальную последовательность действий в зависимости от изменяющегося контекста.

https://youtu.be/-pqzyvRp3Tc

Как это работает?

Agentic AI работает через итеративный, динамический цикл восприятия, рассуждения, действия и обучения. В своей основе AI-агенты используют большие языковые модели (LLM) как механизмы рассуждения для анализа ситуаций, планирования ответов, координации специализированных моделей и выполнения задач. Рабочий процесс обычно включает следующие шаги:

  • Получение и восприятие данных: Агенты собирают и обрабатывают данные из нескольких источников, получая контекстную осведомлённость для принятия решений.
  • Рассуждение и планирование: Используя LLM, агенты интерпретируют данные, обдумывают возможные решения, разрабатывают стратегические планы и определяют необходимые действия для достижения целей.
  • Действие и выполнение: Агенты интегрируются с внешними инструментами и предопределёнными функциями, выполняя задачи на основе результатов рассуждений. Они итеративно выполняют действия, наблюдают за результатами и корректируют их до достижения желаемого результата.
  • Непрерывное обучение: Через обратную связь и такие методы, как генерация с дополненным поиском (RAG), агенты получают доступ к собственным источникам данных, уточняют своё понимание и непрерывно улучшают производительность, точность и релевантность.

Объединяя эти возможности — автономное принятие решений, итеративное рассуждение, интеграцию внешних инструментов и непрерывное улучшение — Agentic AI эффективно соединяет рассуждения на основе LLM с выполнением в реальном мире и адаптацией.

из Nvidia

Что такое smolagents?

Smolagents — это лёгкая библиотека Python, созданная для упрощения построения мощных AI-агентов. Благодаря минималистичному подходу её основная логика умещается примерно в 1 000 строк кода, предоставляя минимальные абстракции и больше прямого контроля для разработчиков. Smolagents позиционируется как преемник transformers.agents, который со временем будет устаревшим. Подробнее можно узнать на GitHub!

smolagents

Ключевые особенности и ключевой механизм

✨ Простота

  • Smolagents реализует мощную логику AI-агентов примерно в 1 000 строк кода, сохраняя минимальное количество абстракций для большей гибкости разработчиков (см. agents.py).

🧑‍💻 Поддержка код-агентов высшего уровня

  • CodeAgent от Smolagents напрямую выводит действия агента как фрагменты кода Python, а не JSON или текст, что повышает эффективность и производительность. Он безопасно выполняет код в изолированных средах (E2B, Docker) и сохраняет поддержку традиционных агентов на основе JSON/текста.

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

  • Smolagents позволяет легко делиться и загружать повторно используемые инструменты на Python через Hugging Face Hub, упрощая совместную работу и повторное использование.

🌐 Независимость от модели

  • Smolagents поддерживает практически любые большие языковые модели (LLM) — локальные модели transformers или ollama, модели, размещённые на Hugging Face, и внешние провайдеры, такие как OpenAI или Anthropic, через LiteLLM.

👁️ Независимость от модальности

  • Агенты, созданные с помощью Smolagents, могут легко обрабатывать различные входные модальности, включая текст, изображения, видео и аудио.

🛠️ Независимость от инструментов

  • Smolagents гибко интегрирует инструменты из различных экосистем, таких как LangChain, Anthropic MCP или Hugging Face Hub Spaces.

как работает smolagents

Как создать агента с помощью smolagents и API Novita AI?

Novita AI — это облачная AI-платформа, которая предоставляет разработчикам простой способ развёртывания AI-моделей через наш простой API, а также предлагает доступный и надёжный GPU-облачный сервис для построения и масштабирования.

Smolagents поддерживает различные большие языковые модели (LLM), включая Novita AI! Далее мы используем deepseek r1 turbo в качестве примера, чтобы продемонстрировать возможности smolagents и Novita AI!

Важно: Novita AI запускает Turbo-версию с 3-кратной пропускной способностью и временной скидкой 60%!

novita ai no1

Попробуйте DeepSeek R1 Turbo сейчас!

Пример

Входные данные:

import os
from smolagents import OpenAIServerModel, CodeAgent, DuckDuckGoSearchTool

model = OpenAIServerModel(
    model_id="deepseek/deepseek-r1-turbo",
    api_base="https://api.novita.ai/v3/openai",
    api_key="Your API Key" # Замените на ключ API вашего сервера.
)

agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=model)

agent.run("Спланируйте поездку на выходные из Шанхая в Пекин, включая варианты транспорта, маршрут и список необходимых вещей")

Вывод:

transport = web_search(query="Shanghai to Beijing transportation weekend trip 2024")                                                                                                                                                                                                                                                           
  print("Transportation options:", transport)                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                 
  attractions = web_search(query="Beijing 2-day itinerary top attractions 2024")                                                                                                                                                                                                                                                                 
  print("Attraction recommendations:", attractions)                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                 
  details = web_search(query="Beijing travel must-haves 2024")                                                                                                                                                                                                                                                                                   
  print("Essential items and tips:", details)                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                 
  weekend_plan = {                                                                                                                                                                                                                                                                                                                               
      "Transportation": {                                                                                                                                                                                                                                                                                                                        
          "Recommended Option": "Friday evening G12 train (18:00-22:30) from Shanghai Hongqiao to Beijing South",                                                                                                                                                                                                                                
          "Alternative": "Saturday morning flight (07:00-09:00+transit time)"                                                                                                                                                                                                                                                                    
      },                                                                                                                                                                                                                                                                                                                                         
      "Itinerary": {                                                                                                                                                                                                                                                                                                                             
          "Day 1 (Saturday)": [                                                                                                                                                                                                                                                                                                                  
              "08:30 - Tiananmen Square (free entry)",                                                                                                                                                                                                                                                                                           
              "10:00 - Forbidden City (booked ticket, 3-4hr tour)",                                                                                                                                                                                                                                                                              
              "14:00 - Temple of Heaven",                                                                                                                                                                                                                                                                                                        
              "Evening: Houhai Lake dinner + hutongs exploration"                                                                                                                                                                                                                                                                                
          ],                                                                                                                                                                                                                                                                                                                                     
          "Day 2 (Sunday)": [                                                                                                                                                                                                                                                                                                                    
              "07:00 - Depart for Mutianyu Great Wall (book shuttle/taxi)",                                                                                                                                                                                                                                                                      
              "09:00-12:00 - Great Wall visit (cable car recommended)",                                                                                                                                                                                                                                                                          
              "14:00 - Summer Palace",                                                                                                                                                                                                                                                                                                           
              "18:00 - Return to city, take G27 train (19:00-23:18) back to Shanghai"                                                                                                                                                                                                                                                            
          ]                                                                                                                                                                                                                                                                                                                                      
      },                                                                                                                                                                                                                                                                                                                                         
      "Must-Haves": [                                                                                                                                                                                                                                                                                                                            
          "Pre-booked Forbidden City ticket (¥60)",                                                                                                                                                                                                                                                                                              
          "Comfortable walking shoes",                                                                                                                                                                                                                                                                                                           
          "Layered clothing (check weather forecast)",                                                                                                                                                                                                                                                                                           
          "Portable WiFi/power bank",                                                                                                                                                                                                                                                                                                            
          "WeChat Pay/Alipay balance",                                                                                                                                                                                                                                                                                                           
          "ID/passport for train ticket collection"                                                                                                                                                                                                                                                                                              
      ]                                                                                                                                                                                                                                                                                                                                          
  }                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                 
  final_answer(weekend_plan)                                       

Финальный ответ

Final answer: {'Transportation': {'Recommended Option': 'Friday evening G12 train (18:00-22:30) from Shanghai Hongqiao to Beijing South', 'Alternative': 'Saturday morning flight (07:00-09:00+transit time)'}, 'Itinerary': {'Day 1 (Saturday)': ['08:30 - Tiananmen Square (free entry)', '10:00 - Forbidden City (booked ticket, 3-4hr tour)', '14:00 - Temple of Heaven', 'Evening: Houhai Lake dinner + hutongs exploration'], 'Day 2 (Sunday)': ['07:00 - Depart for Mutianyu Great Wall (book shuttle/taxi)', '09:00-12:00 - Great Wall visit (cable car recommended)', '14:00 - Summer Palace', '18:00 - Return to city, take G27 train (19:00-23:18) back to Shanghai']},         
'Must-Haves': ['Pre-booked Forbidden City ticket (¥60)', 'Comfortable walking shoes', 'Layered clothing (check weather forecast)', 'Portable WiFi/power bank', 'WeChat Pay/Alipay balance', 'ID/passport for train ticket collection']}

Сравнение производительности моделей в smolagents

таблица лидеров LLM smolagents

Подробнее можно узнать на Hugging Face

Agentic AI представляет собой значительный прорыв в области искусственного интеллекта, обеспечивая автономное решение проблем и выполнение задач. Библиотека Smolagents предоставляет лёгкий, но мощный фреймворк, специально предназначенный для создания интеллектуальных агентов, с акцентом на прямые действия на основе кода и совместимость с широким спектром больших языковых моделей (LLM). Поскольку open-source модели продолжают быстро совершенствоваться, Smolagents предлагает разработчикам доступный и универсальный инструментарий для исследования и реализации захватывающего потенциала agentic AI в различных областях.

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

В чём ключевое различие между agentic AI и генеративным AI?

Генеративный AI фокусируется на создании нового контента, такого как текст и изображения, в то время как agentic AI сосредоточен на принятии решений и выполнении автономных задач для достижения целей.

Безопасно ли выполнение кода в smolagents?

smolagents предоставляет возможности для безопасного выполнения кода, включая изолированную среду с использованием E2B или Docker, что устраняет риск для вашей локальной системы.

Где можно найти дополнительную информацию о smolagents?

Полную документацию, руководства и примеры можно найти в репозитории smolagents на GitHub и на Hugging Face Space, посвящённой этой библиотеке.

Novita AI — это универсальная облачная платформа, которая расширяет ваши AI-амбиции. Интегрированные API, бессерверные решения, GPU-инстансы — экономически эффективные инструменты, которые вам нужны. Устраните инфраструктурные заботы, начните бесплатно и воплотите своё AI-видение в реальность.

Рекомендуемые статьи