Фреймворки для создания агентов. Создаем своего первого AI агента

Готовы продуктивно провести вечер пятницы? Это продолжение курса по созданию агентов. Серия 1.5. Создаем агента на ADK.

Краткое саммари этой серии курса по созданию AI агентов.
Краткое саммари этой серии курса по созданию AI агентов.

Начнем с теории, которой нет в самом курсе от Гугла. Но для широты кругозора я решил ее добавить.

Теория.

Знакомимся с множеством фреймворков для создания агентов. Вот лишь самые популярные, про которые имеет смысл немного почитать и иметь их в виду, если планируете создавать агентов:

  • Agent Development Kit (ADK) от Google — на нем мы и будем создавать, просто потому что этот курс был запущен Гуглом. Это идеальный выбор, если вся ваша инфраструктура в Гугле.
  • LangGraph — один из крупнейших опенсорс фреймворков для создания агентов на базе LangChain (опенсорсного фреймворка для создания LLM пайплайнов и RAG). LangGraph создан как оркестратор для создания AI агентов.
  • smolagents — тоже добротный опенсорсный фреймворк от HuggingFace. Хвастаются крутой поддержкой агентов для написания кода.
  • LlamaIndex — еще один опенсорс фреймворк (кстати, никак не связанный с моделями Llama и компанией Марка Цукерберга). Его изюминка — мощный парсинг документов с их спец продуктом LlamaParse.
  • И многие другие. Фреймворков, четно говоря, гора. Например CrewAI, Microsoft Agent Framework, OpenAI Agents SDK и тд.

Как выбрать фреймворк?

Во-многом это вкусовщина. Но нужно понимать, что фреймворки от конкретных экосистемных вендоров типа Google, Microsoft, OpenAI — как ни крути подталкивают к использованию их экосистемы. А если выбирать опции, которые изначально создавались, скажем, "нон-профит" — то нужно выбирать популярные варианты с большим комьюнити, которое будет продолжать развивать и поддерживать этот фреймворк.

Практика.

Возвращаемся в ноутбук, который мы сделали в рамках подготовки. Разберемся, что там происходит и как построить первого AI агента.

  1. В этом ноутбуке уже предустановлен ADK. В других средах разработки вам пришлось бы его установить: ```pip install google-adk```
  2. Далее мы сетапим ключ GOOGLE_API_KEY, который мы импортировали в прошлой серии
  3. Далее импортируем нужные компоненты из "google-adk":
  • Agent — класс, в котором мы построим нашего агента
  • Gemini — непосредственно вызыватор модельки семейства Gemini
  • InMemoryRunner — класс, который оркестрирует запросы пользователя и агенты. А приставка "InMemory" означает, что делает он это локально в сессии Kaggle.
  • google_search — тулза для поиска в интернете
  • types — вспомогательный модуль с типами данных, используемых в ADK.
  1. Далее в ячейке "Helper Functions" идет сетап нужный для запуска в Kaggle среде. Не будем заострять внимание тут
  2. В ячейке "Configure Retry Options" настраивается конфиг для повторных попыток, на случай если LLM не отвечает на запрос. Такое бывает из-за микро-разрыва соединения, временной недоступности сервера LLM и тп
  3. Наконец, в пункте "Define your agent" мы настроим агента:
  • Используя импортированный класс Agent, мы даем ему имя в "name". Может быть любое.
  • model — непосредственно определяет LLM, через которую будет работать агент. Используем импортированный класс Gemini и прописываем название конкретной версии Gemini (оно должно строго совпадать с неймингом из документации). Вместо класса "Gemini" вообще вы можете импортировать и модельки от любого другого провайдера.
  • retry_options — как раз наш конфиг по повторным попыткам вызова LLM.
  • description — это описание нужно, чтобы в дальнейшем вы сами и другие агенты понимали, что делает конкретно этот агент. Если будете делать мультиагентную систему — важно прописать хорошо.
  • instruction — это системный промпт.
  • tools — тут задаете список тулов, которые будет юзать агент. В нашем случае только google search.

Агент готов, запускай!

Для запуска в класс InMemoryRunner передаем нашего созданного агента. И пишем промпт:

response = await runner.run_debug("какая нынче погода в Москве?")

Агент понял, что вы спрашиваете, определил, что ему нужно погуглить, вызвал google_search, дал актуальный ответ!

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

Вот и готов ваш первый агент!

Весь курс в моем Telegram Заместители.

Начать дискуссию