Бильге Юджель: «Создание агентов на 90% состоит из чистой инженерии»

DeepLearning.AI 3,2 тыс. 29 мин 3 мин 27.03.2025
Главное

На конференции AI Dev 25 Бильге Юджель, инженер по связям с разработчиками в компании Deepset, представила практическое руководство по созданию и развертыванию агентных рабочих процессов. Основное внимание было уделено использованию Haystack — опенсорсного фреймворка для оркестрации больших языковых моделей (LLM), на базе которого был продемонстрирован агент, способный самостоятельно анализировать и решать проблемы (issues) в репозиториях на GitHub.

🤖 Что такое ИИ-агент: определение и философия 1:08

По мнению Бильге Юджель, агент — это не просто надстройка над нейросетью, а полноценная автономная система на базе LLM. Спикер выделяет три ключевых признака настоящего агента:

Юджель цитирует одного из участников сообщества, утверждая, что создание агентов — это на 90% чистая инженерия и лишь на 10% работа с самой LLM. Основная сложность заключается не в выборе модели, а в том, чтобы заставить её эффективно работать внутри структурированного агентного процесса.

🧱 Архитектура Haystack: компоненты и графы 1:34

Haystack строится на двух фундаментальных понятиях: компонентах и пайплайнах.

Компоненты

Это элементарные единицы системы, выполняющие одну конкретную функцию:

Пайплайны (DAG)

Компоненты соединяются в пайплайны, которые в Haystack представляют собой направленные циклические графы (Directed Cyclic Graphs). Такая структура позволяет создавать сложную логику с ветвлениями и циклами, что критически важно для реализации агентного поведения.

Спикер подчеркивает преимущества модульности: разработчик может легко заменить одну модель генерации на другую или один метод поиска на более современный, просто переключив компоненты в графе. Если стандартных инструментов недостаточно, Haystack позволяет создавать кастомные компоненты на языке Python с использованием декоратора @component и метода run.

🛠️ Практический кейс: Агент для решения GitHub-задач 5:27

В качестве примера Бильге Юджель продемонстрировала процесс создания агента-программиста. Задача агента: получить URL проблемы на GitHub, прочитать комментарии, проанализировать кодовую базу и предложить план решения в виде комментария.

Структура этого пайплайна включает:

  1. GitHub Issue Viewer: извлекает описание задачи и комментарии по URL.
  2. Chat Prompt Builder: формирует промпт для модели, используя синтаксис Jinja2 для гибкой подстановки переменных.
  3. Agent Component: «мозг» системы, использующий модель Claude 3.7 от Anthropic.

Агент имеет доступ к двум специфическим инструментам:

Одной из важных технических деталей является использование класса ComponentTool. По словам Юджель, он автоматически генерирует описания функций и схемы параметров для LLM на основе документации (docstrings) и типов данных Python-класса, что избавляет разработчика от ручного описания JSON-схем.

🚀 Демонстрация работы и развертывание (Hayhooks) 15:52

В ходе живой демонстрации агент проанализировал задачу по удалению поддержки Python 3.9 в сериализации типов Haystack. Агент успешно нашел нужные файлы в форкнутом репозитории и предложил два варианта изменений, которые совпали с реальными рекомендациями разработчиков Deepset.

Для перевода прототипа в промышленную эксплуатацию (production) используется инструмент Hayhooks.

🎨 Визуальная разработка в Deepset Studio 25:07

Для тех, кто предпочитает визуальный подход, Юджель представила Deepset Studio — бесплатную среду разработки. Она позволяет:

❓ Проблемы масштабирования и поиск решений 27:49

В сессии вопросов и ответов была затронута проблема работы с огромными репозиториями (миллионы строк кода). Бильге Юджель признала, что это может стать «узким горлышком» системы. По её мнению, если агент будет выполнять поиск в ширину по всей структуре гигантского проекта, это займет слишком много времени.

В качестве решения Юджель предлагает:

  1. Разделять кодовую базу на модули.
  2. Использовать предварительную классификацию задач (например, если баг связан с эмбеддингами, направлять агента только в соответствующую часть репозитория).
💬 Цитаты

«Агент — это автономная система на базе LLM, которая должна уметь планировать действия для достижения цели и выполнять их.»

Бильге Юджель 01:22

«Создание агента требует гораздо больше работы, чем ожидалось: 90% — это чистая инженерия, не имеющая отношения к LLM.»

Бильге Юджель 04:50

«Пайплайны в Haystack — это графы, а если быть точным, направленные циклические графы.»

Бильге Юджель 02:31
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
DAG (Directed Acyclic Graph)
Граф, в котором связи имеют направление и отсутствуют замкнутые пути (хотя в Haystack допускаются циклы для агентов).
Hayhooks
Служебная программа для развертывания пайплайнов Haystack в виде REST-сервисов.
Jinja2
Язык шаблонов для Python, используемый в Haystack для динамического формирования промптов.
Инструментальный агент (Tool calling agent)
Тип ИИ-агента, который может вызывать внешние функции или API для получения данных или выполнения действий.
📊 Цифры
🗓 Хронология
  1. Май 2025 Выступление Бильге Юджель на конференции AI Dev 25.
  2. В процессе демо Агент успешно анализирует форк репозитория Haystack и предлагает решение для задачи сериализации.
  3. Будущее Развитие методов модульного анализа для работы агентов с миллионами строк кода.
⚖️ Другая сторона
Искусственный интеллект Haystack Deepset Claude 3.7 Hayhooks агентные воркфлоу