ММООЗЗГГ.ru

Как создать ИИ-агента

Как собрать ИИ-агента в Dify

Михаил Мозг6 минут чтения

Агента в Dify собирают в веб-интерфейсе: модель, инструкция, инструменты и база знаний настраиваются без кода. Для установки на свой сервер хватит машины с 2 ядрами процессора и 4 ГиБ памяти. Коммерческое использование разрешено, но с двумя условиями лицензии, их разберем в конце.

Соберете сами за неделю

Что умеет Dify

Dify это платформа для ИИ-приложений с открытым кодом. В одном интерфейсе в ней собирают агентов, чат-ботов и рабочие процессы, подключают документы и смотрят журнал ответов.

Рабочий процесс здесь значит цепочку шагов, которую вы задаете заранее. Агент работает иначе: модель сама решает, какой шаг сделать и какой инструмент вызвать.

При создании приложения Dify предлагает тип. Два основных типа, «Workflow» и «Chatflow», рисуются на схеме из блоков. Еще три простых типа, «Chatbot», «Agent» и «Text Generator», настраиваются формой без схемы.

Приложение типа «Agent» это чат, где модель рассуждает и сама вызывает инструменты: поиск в интернете, запросы к сервисам и базам данных. Схему шагов для него рисовать не нужно, достаточно инструкции и списка инструментов.

Рядом в том же интерфейсе база знаний, журнал разговоров и аннотации. База знаний работает по принципу RAG: перед ответом модель ищет фрагменты в ваших документах и отвечает по ним, без дообучения модели.

В бета-версии у Dify появился агент нового типа со своей песочницей: он сам запускает команды и работает с файлами. В инструкции ниже мы собираем стабильное приложение «Agent», к которому база знаний подключается напрямую. Похожий визуальный конструктор, Flowise, разобран отдельно.

Установка

Dify ставится на ваш компьютер или сервер через Docker. Docker это программа, которая запускает приложение в готовых контейнерах со всеми зависимостями, поэтому вручную ничего настраивать не придется.

Требования по документации: не меньше 2 ядер процессора и 4 ГиБ оперативной памяти, Docker и Docker Compose свежих версий. На Mac в настройках Docker Desktop выделите виртуальной машине не меньше 2 процессоров и 8 ГиБ памяти. Для первой команды нужны программы git, curl и jq.

1. Скачайте код последней версии Dify командой из документации: git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git. Если она выдает ошибку «Remote branch null not found», укажите номер версии со страницы релизов: git clone --branch <версия> https://github.com/langgenius/dify.git.

2. Перейдите в папку с настройками запуска: cd dify/docker.

3. Создайте файл настроек из образца: cp .env.example .env.

4. Запустите контейнеры: docker compose up -d.

5. Проверьте, что все запустилось: docker compose ps. У каждого контейнера статус «Up» или «healthy», у контейнера init_permissions статус «Exited», так и должно быть.

6. Откройте в браузере http://localhost/install (на сервере http://адрес_сервера/install) и создайте учетную запись администратора. Дальше вход в Dify по адресу http://localhost.

7. Подключите модель: «Integrations» > «Model Provider» (поставщики моделей). Установите поставщика, нажмите «Setup» на его карточке и введите ключ. Без хотя бы одного поставщика приложения Dify не работают.

Чтобы данные не уходили во внешние сервисы, в маркетплейсе Dify есть проверенный плагин Ollama. Он подключает открытые модели, запущенные на вашем компьютере или сервере. В поле «Model Name» укажите модель, в «Base URL» адрес Ollama, доступный из контейнера Dify; ключ для локальной установки не нужен.

Агент и база знаний

Сначала собирают базу знаний, потом агента. Порядок по документации Dify:

1. Откройте «Knowledge» > «Create» > «Create a ready-to-use knowledge base» (готовая база знаний) и загрузите файлы: регламенты, прайс, ответы на частые вопросы.

2. Настройте нарезку на фрагменты («chunk settings»): разделитель и максимальную длину фрагмента. Режим нарезки после создания базы поменять нельзя, разделитель и длину можно.

3. Выберите способ индексации. «High Quality» превращает фрагменты в векторы, то есть в числовые описания смысла, и ищет по смыслу. «Economical» берет 10 ключевых слов на фрагмент, не тратит токены, но ищет менее точно.

4. Дождитесь окончания обработки и проверьте поиск: значок «Retrieval Testing» в левой панели базы. Задайте вопросы, которые зададут клиенты, и посмотрите, какие фрагменты находятся.

5. В разделе «Studio» создайте приложение и выберите тип «Agent».

6. Напишите инструкцию (prompt): кто агент, в каком формате отвечает, чего не делает и в каком случае вызывает каждый инструмент. Инструменты называйте в тексте по именам.

7. Добавьте инструменты Dify и базу знаний. Опишите базу подробно: по описанию модель решает, искать ли в ней ответ на вопрос.

8. В «Agent Settings» задайте «Maximum Iterations»: сколько раз агент может повторить цикл «подумать, вызвать инструмент, прочитать результат» на один запрос. Там же видно режим: «Function Calling», если модель сама умеет вызывать инструменты, или «ReAct», если Dify ведет ее подсказками.

9. Проверьте агента в панели предпросмотра справа и нажмите «Publish». Опубликованное приложение работает как веб-страница, через API или как окно на вашем сайте.

Если в базу знаний или в разговоры попадают данные клиентов, действует 152-ФЗ: сбор и хранение данных граждан России ведутся в базах на территории России, а для передачи за рубеж нужно уведомление в Роскомнадзор. Поэтому Dify с такими данными ставят на сервер в России и берут локальную модель. Как мы это устраиваем, описано на странице о безопасности данных.

Журнал и оценка ответов

Каждое приложение Dify пишет журнал на вкладке «Logs»: что спрашивали, что ответил агент и как ответ оценили. В журнал попадают разговоры из веб-страницы, через API и из списка приложений на главной.

Колонка «User Rate» считает лайки и дизлайки пользователей, «Op. Rate» оценки вашей команды. Откройте разговор и наведите курсор на ответ: видны расход токенов, время ответа и шаги агента с вызовами инструментов. Токен это кусочек текста, за который поставщик модели берет оплату.

Неверный ответ отметьте дизлайком с комментарием или сразу исправьте через аннотацию. Аннотация это одобренный вами ответ: когда новый вопрос похож на сохраненный сильнее заданного порога, Dify возвращает ваш ответ вместо ответа модели.

Аннотации включаются в «Orchestrate» > «Add Features», там же задается порог сходства. Готовые пары «вопрос и ответ» можно загрузить списком по шаблону, а статистика покажет, какие из них срабатывают.

Журнал по умолчанию хранится бессрочно, и в нем полные разговоры. Документация Dify предупреждает об этом прямо: нужна политика обработки данных и согласие пользователей там, где этого требует закон. Очистку старых записей включают переменными окружения, срок хранения по умолчанию 30 дней.

Журнал показывает ошибки после запуска. Как проверить агента до запуска на наборе вопросов, мы разобрали в статье о тестировании агента.

Условия лицензии

Dify распространяется по измененной лицензии Apache 2.0. Сама Apache 2.0 открытая: код можно ставить, менять и использовать в бизнесе. Dify прямо разрешает коммерческое использование, в том числе как основу для ваших сервисов и как платформу разработки внутри компании.

Первое условие: без письменного разрешения Dify нельзя запускать на его коде многопользовательскую среду. Один арендатор (tenant) в терминах лицензии это одно рабочее пространство Dify. Если вы хотите дать нескольким клиентам по своему пространству в одной установке, как в облачном сервисе, нужна коммерческая лицензия.

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

Для агента внутри своей компании оба условия обычно не мешают: одно рабочее пространство, логотип на месте. Если агент станет продуктом для ваших клиентов, проверьте схему с юристом до запуска, а не после.

Источники и даты

Собрать просто. Решить, что собирать, сложнее

Агента в Dify с базой знаний собирают за неделю, и журнал сразу покажет, как он отвечает. Сложнее решить, какой процесс отдать агенту первым и по какой метрике считать, что он окупился. Это решение стоит принять до установки, а не после месяца экспериментов.

Разбор 30 минут

Если не уверены, какого агента собирать в Dify первым и хватит ли конструктора, разберем вашу задачу за 30 минут.

Михаил Мозг

Михаил Мозг

Основатель MMOOZZGG, ИИ-директор

Подробнее о Михаиле@mmoozzggru

Контакты

Разберем, какого агента собрать в Dify первым

Разбор 30 минут бесплатно в Telegram: назовем процесс, модель и сервер.

Написать в Telegram