На конференции AI Dev 25 Бильге Юджель, инженер по связям с разработчиками в компании Deepset, представила практическое руководство по созданию и развертыванию агентных рабочих процессов. Основное внимание было уделено использованию Haystack — опенсорсного фреймворка для оркестрации больших языковых моделей (LLM), на базе которого был продемонстрирован агент, способный самостоятельно анализировать и решать проблемы (issues) в репозиториях на GitHub.
🤖 Что такое ИИ-агент: определение и философия 1:08
По мнению Бильге Юджель, агент — это не просто надстройка над нейросетью, а полноценная автономная система на базе LLM. Спикер выделяет три ключевых признака настоящего агента:
- Доступ к памяти и инструментам: возможность взаимодействовать с внешними базами данных и API.
- Планирование: способность самостоятельно выстраивать последовательность шагов для достижения цели.
- Действие: возможность выполнять эти шаги в реальной среде.
Юджель цитирует одного из участников сообщества, утверждая, что создание агентов — это на 90% чистая инженерия и лишь на 10% работа с самой LLM. Основная сложность заключается не в выборе модели, а в том, чтобы заставить её эффективно работать внутри структурированного агентного процесса.
🧱 Архитектура Haystack: компоненты и графы 1:34
Haystack строится на двух фундаментальных понятиях: компонентах и пайплайнах.
Компоненты
Это элементарные единицы системы, выполняющие одну конкретную функцию:
- Создание эмбеддингов.
- Генерация текста.
- Извлечение данных из баз.
- Очистка документов и конвертация файлов.
Пайплайны (DAG)
Компоненты соединяются в пайплайны, которые в Haystack представляют собой направленные циклические графы (Directed Cyclic Graphs). Такая структура позволяет создавать сложную логику с ветвлениями и циклами, что критически важно для реализации агентного поведения.
Спикер подчеркивает преимущества модульности: разработчик может легко заменить одну модель генерации на другую или один метод поиска на более современный, просто переключив компоненты в графе. Если стандартных инструментов недостаточно, Haystack позволяет создавать кастомные компоненты на языке Python с использованием декоратора @component и метода run.
🛠️ Практический кейс: Агент для решения GitHub-задач 5:27
В качестве примера Бильге Юджель продемонстрировала процесс создания агента-программиста. Задача агента: получить URL проблемы на GitHub, прочитать комментарии, проанализировать кодовую базу и предложить план решения в виде комментария.
Структура этого пайплайна включает:
- GitHub Issue Viewer: извлекает описание задачи и комментарии по URL.
- Chat Prompt Builder: формирует промпт для модели, используя синтаксис Jinja2 для гибкой подстановки переменных.
- Agent Component: «мозг» системы, использующий модель Claude 3.7 от Anthropic.
Агент имеет доступ к двум специфическим инструментам:
- GitHub Repository Viewer: позволяет итеративно и рекурсивно просматривать файлы и директории в репозитории для понимания контекста кода.
- GitHub Comment Writer: простой инструмент для отправки итогового ответа через GitHub API.
Одной из важных технических деталей является использование класса ComponentTool. По словам Юджель, он автоматически генерирует описания функций и схемы параметров для LLM на основе документации (docstrings) и типов данных Python-класса, что избавляет разработчика от ручного описания JSON-схем.
🚀 Демонстрация работы и развертывание (Hayhooks) 15:52
В ходе живой демонстрации агент проанализировал задачу по удалению поддержки Python 3.9 в сериализации типов Haystack. Агент успешно нашел нужные файлы в форкнутом репозитории и предложил два варианта изменений, которые совпали с реальными рекомендациями разработчиков Deepset.
Для перевода прототипа в промышленную эксплуатацию (production) используется инструмент Hayhooks.
- Hayhooks позволяет развертывать пайплайны Haystack как REST API.
- Инструмент автоматически создает HTTP-эндпоинты и предоставляет документацию Swagger.
- Поддерживаются эндпоинты, совместимые с OpenAI Chat Completion, что позволяет подключать агентов к интерфейсам вроде Open WebUI.
🎨 Визуальная разработка в Deepset Studio 25:07
Для тех, кто предпочитает визуальный подход, Юджель представила Deepset Studio — бесплатную среду разработки. Она позволяет:
- Создавать сложные пайплайны методом drag-and-drop.
- Развертывать их одной кнопкой.
- Тестировать работу в «песочнице» (playground) и собирать обратную связь от стейкхолдеров.
- Экспортировать готовый код в форматах YAML или Python для дальнейшего использования вне платформы.
❓ Проблемы масштабирования и поиск решений 27:49
В сессии вопросов и ответов была затронута проблема работы с огромными репозиториями (миллионы строк кода). Бильге Юджель признала, что это может стать «узким горлышком» системы. По её мнению, если агент будет выполнять поиск в ширину по всей структуре гигантского проекта, это займет слишком много времени.
В качестве решения Юджель предлагает:
- Разделять кодовую базу на модули.
- Использовать предварительную классификацию задач (например, если баг связан с эмбеддингами, направлять агента только в соответствующую часть репозитория).