Фреймворки для создания агентов. Создаем своего первого AI агента
Готовы продуктивно провести вечер пятницы? Это продолжение курса по созданию агентов. Серия 1.5. Создаем агента на ADK.
Начнем с теории, которой нет в самом курсе от Гугла. Но для широты кругозора я решил ее добавить.
Теория.
Знакомимся с множеством фреймворков для создания агентов. Вот лишь самые популярные, про которые имеет смысл немного почитать и иметь их в виду, если планируете создавать агентов:
- 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 агента.
- В этом ноутбуке уже предустановлен ADK. В других средах разработки вам пришлось бы его установить: ```pip install google-adk```
- Далее мы сетапим ключ GOOGLE_API_KEY, который мы импортировали в прошлой серии
- Далее импортируем нужные компоненты из "google-adk":
- Agent — класс, в котором мы построим нашего агента
- Gemini — непосредственно вызыватор модельки семейства Gemini
- InMemoryRunner — класс, который оркестрирует запросы пользователя и агенты. А приставка "InMemory" означает, что делает он это локально в сессии Kaggle.
- google_search — тулза для поиска в интернете
- types — вспомогательный модуль с типами данных, используемых в ADK.
- Далее в ячейке "Helper Functions" идет сетап нужный для запуска в Kaggle среде. Не будем заострять внимание тут
- В ячейке "Configure Retry Options" настраивается конфиг для повторных попыток, на случай если LLM не отвечает на запрос. Такое бывает из-за микро-разрыва соединения, временной недоступности сервера LLM и тп
- Наконец, в пункте "Define your agent" мы настроим агента:
- Используя импортированный класс Agent, мы даем ему имя в "name". Может быть любое.
- model — непосредственно определяет LLM, через которую будет работать агент. Используем импортированный класс Gemini и прописываем название конкретной версии Gemini (оно должно строго совпадать с неймингом из документации). Вместо класса "Gemini" вообще вы можете импортировать и модельки от любого другого провайдера.
- retry_options — как раз наш конфиг по повторным попыткам вызова LLM.
- description — это описание нужно, чтобы в дальнейшем вы сами и другие агенты понимали, что делает конкретно этот агент. Если будете делать мультиагентную систему — важно прописать хорошо.
- instruction — это системный промпт.
- tools — тут задаете список тулов, которые будет юзать агент. В нашем случае только google search.
Агент готов, запускай!
Для запуска в класс InMemoryRunner передаем нашего созданного агента. И пишем промпт:
Агент понял, что вы спрашиваете, определил, что ему нужно погуглить, вызвал google_search, дал актуальный ответ!
Вот и готов ваш первый агент!
Весь курс в моем Telegram Заместители.