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

Источник: https://www.youtube.com/watch?v=tKyvkU69Ers
Канал: DeepLearning.AI
Опубликовано: 27.03.2025

---

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

## 🤖 Что такое ИИ-агент: определение и философия
[[JUMP:01:08]]

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

* **Доступ к памяти и инструментам:** возможность взаимодействовать с внешними базами данных и API.
* **Планирование:** способность самостоятельно выстраивать последовательность шагов для достижения цели.
* **Действие:** возможность выполнять эти шаги в реальной среде.

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

## 🧱 Архитектура Haystack: компоненты и графы
[[JUMP:01:34]]

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

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

* Создание эмбеддингов.
* Генерация текста.
* Извлечение данных из баз.
* Очистка документов и конвертация файлов.

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

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

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

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

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

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



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

* **GitHub Repository Viewer:** позволяет итеративно и рекурсивно просматривать файлы и директории в репозитории для понимания контекста кода.
* **GitHub Comment Writer:** простой инструмент для отправки итогового ответа через GitHub API.

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

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

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

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

* **Hayhooks** позволяет развертывать пайплайны Haystack как REST API.
* Инструмент автоматически создает HTTP-эндпоинты и предоставляет документацию Swagger.
* Поддерживаются эндпоинты, совместимые с OpenAI Chat Completion, что позволяет подключать агентов к интерфейсам вроде Open WebUI.

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

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

* Создавать сложные пайплайны методом drag-and-drop.
* Развертывать их одной кнопкой.
* Тестировать работу в «песочнице» (playground) и собирать обратную связь от стейкхолдеров.
* Экспортировать готовый код в форматах YAML или Python для дальнейшего использования вне платформы.

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

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

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

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