Плагин стратегии агента помогает LLM выполнять такие задачи, как рассуждение или принятие решений, включая выбор и вызов инструментов, а также обработку результатов. Это позволяет системе решать задачи более самостоятельно. Ниже показано, как разработать плагин, который поддерживает Function Calling для автоматического получения текущего времени.

Предварительные требования

  • Инструмент построения каркаса плагинов Интеллос
  • Окружение Python (версия 3.12)
Подробнее о подготовке инструмента разработки плагинов см. в разделе Инициализация инструмента разработки.
Совет: выполните dify version в терминале, чтобы убедиться, что инструмент построения каркаса установлен.

1. Инициализация шаблона плагина

Выполните следующую команду, чтобы создать шаблон разработки для плагина-агента:
Следуйте подсказкам на экране и ориентируйтесь на примеры комментариев.
После инициализации вы получите папку со всеми ресурсами, необходимыми для разработки плагина. Знакомство с общей структурой плагина стратегии агента упростит процесс разработки:
Вся ключевая функциональность этого плагина находится в каталоге strategies/.

2. Разработка плагина

Разработка плагина стратегии агента строится вокруг двух файлов:
  • Объявление плагина: strategies/basic_agent.yaml
  • Реализация плагина: strategies/basic_agent.py

2.1 Определение параметров

Чтобы создать плагин-агент, сначала задайте необходимые параметры в strategies/basic_agent.yaml. Эти параметры определяют основные возможности плагина, такие как вызов LLM или использование инструментов. Рекомендуем сначала включить следующие четыре параметра:
  1. model: вызываемая большая языковая модель (например, GPT-4, GPT-4o-mini).
  2. tools: список инструментов, расширяющих функциональность вашего плагина.
  3. query: пользовательский ввод или содержимое промпта, отправляемое модели.
  4. maximum_iterations: максимальное число итераций для предотвращения чрезмерных вычислений.
Пример кода:
После настройки этих параметров плагин автоматически сгенерирует удобный интерфейс, чтобы вы могли легко ими управлять:
Интерфейс плагина стратегии агента

2.2 Получение параметров и выполнение

После того как пользователи заполнят эти базовые поля, ваш плагин должен обработать переданные параметры. В strategies/basic_agent.py определите класс параметров для агента, а затем получите и примените эти параметры в своей логике. Проверьте входящие параметры:
После получения параметров выполняется конкретная бизнес-логика:

3. Вызов модели

В плагине стратегии агента вызов модели является центральным элементом рабочего процесса. Вы можете эффективно вызывать LLM с помощью session.model.llm.invoke() из SDK, обрабатывая генерацию текста, диалог и так далее. Если вы хотите, чтобы LLM работал с инструментами, убедитесь, что он выводит структурированные параметры, соответствующие интерфейсу инструмента. Иными словами, LLM должен сформировать входные аргументы, которые инструмент сможет принять, на основе инструкций пользователя. Сконструируйте следующие параметры:
  • model
  • prompt_messages
  • tools
  • stop
  • stream
Пример кода определения метода:
Чтобы ознакомиться с полной реализацией функциональности, обратитесь к примеру кода для вызова модели. Этот код реализует следующую функциональность: после того как пользователь вводит команду, плагин стратегии агента автоматически вызывает LLM, конструирует необходимые параметры для вызова инструмента на основе сгенерированных результатов и позволяет модели гибко задействовать интегрированные инструменты для эффективного выполнения сложных задач.
Параметры запроса для генерации инструментов

4. Обработка инструмента

После задания параметров инструмента плагин стратегии агента должен фактически вызвать эти инструменты. Используйте session.tool.invoke(), чтобы выполнить эти запросы. Сконструируйте следующие параметры:
  • provider
  • tool_name
  • parameters
Пример кода определения метода:
Если вы хотите, чтобы сам LLM генерировал параметры, необходимые для вызовов инструментов, вы можете сделать это, объединив вывод модели с вашим кодом вызова инструментов.
После этого ваш плагин стратегии агента сможет автоматически выполнять Function Calling, например получать текущее время.
Вызов инструмента

5. Создание журналов

Часто для выполнения сложной задачи в плагине стратегии агента требуется несколько шагов. Разработчику крайне важно отслеживать результат каждого шага, анализировать процесс принятия решений и оптимизировать стратегию. С помощью create_log_message и finish_log_message из SDK вы можете в реальном времени записывать состояния до и после вызовов, что помогает быстро диагностировать проблемы. Например:
  • Записывайте сообщение «starting model call» перед вызовом модели, чтобы прояснить ход выполнения задачи.
  • Записывайте сообщение «call succeeded» после ответа модели, чтобы вывод модели можно было отследить из конца в конец.
Когда настройка завершена, журнал рабочего процесса выведет результаты выполнения:
Результаты выполнения вывода агента
Если происходит несколько раундов журналирования, вы можете структурировать их иерархически, задав параметр parent в вызовах журналирования, чтобы их было легче отслеживать. Справочный метод:

Пример кода функций плагина-агента

Вызов модели

Следующий код демонстрирует, как наделить плагин стратегии агента возможностью вызывать модель:

6. Отладка плагина

После завершения файла объявления плагина и кода реализации выполните python -m main в каталоге плагина, чтобы перезапустить его. Затем убедитесь, что плагин работает корректно. Интеллос предлагает удалённую отладку. Перейдите в раздел Управление плагинами, чтобы получить ключ отладки и адрес удалённого сервера.
Завершение файла объявления плагина и кода реализации, запуск python -m
Вернувшись в проект плагина, скопируйте .env.example в .env и вставьте соответствующие данные удалённого сервера и ключа отладки.
Затем выполните:
Вы увидите плагин, установленный в вашем рабочем пространстве, и члены команды также смогут получить к нему доступ.
Плагины в браузере

Упаковка плагина (необязательно)

Когда всё работает, вы можете упаковать свой плагин, выполнив:
В текущей папке появится файл с именем basic_agent.difypkg (соответствующим имени вашего плагина). Это и есть итоговый пакет плагина. Поздравляем! Вы полностью разработали, протестировали и упаковали свой плагин стратегии агента.

Публикация плагина (необязательно)

Теперь вы можете загрузить его в репозиторий Интеллос Plugins. Перед этим убедитесь, что он соответствует Рекомендациям по публикации плагинов. После одобрения ваш код будет влит в основную ветку, и плагин автоматически станет доступен в Интеллос Маркетплейс.

Дальнейшее изучение

Сложные задачи часто требуют нескольких раундов размышлений и вызовов инструментов, обычно повторяя цикл вызов модели → использование инструмента, пока задача не завершится или не будет достигнут предельный лимит итераций. Эффективное управление промптами критически важно в этом процессе. Ознакомьтесь с полной реализацией Function Calling, чтобы увидеть стандартизированный подход к тому, как позволить моделям вызывать внешние инструменты и обрабатывать их вывод.
Редактировать эту страницу | Сообщить о проблеме