AI бот - Агенты

:bookmark: Это руководство объясняет, как настроить и управлять Агентами для Discourse AI - AI bot.

:person_raising_hand: Требуемый уровень пользователя: Администратор

AI-бот Discourse включает гибкую систему управления Агентами. В этом руководстве рассматриваются:

  • Методы взаимодействия с AI-агентами
  • Параметры конфигурации
  • Расширенные настройки
  • Поддерживаемые инструменты
  • Возможности кастомизации

:link: Узнайте больше об AI-боте и о том, как его включить в этом руководстве.

Что такое агенты?

Агенты — это мощная функция, позволяющая настраивать поведение AI-движка в вашем форуме Discourse. Они действуют как «системное сообщение», которое направляет ответы и взаимодействия AI, помогая создать более персонализированный и увлекательный пользовательский опыт.

Зачем использовать агентов?

С помощью агентов вы можете адаптировать поведение AI под контекст и тон вашего форума. Хотите ли вы, чтобы AI был более формальным для профессиональной среды, более неформальным для сообщества или даже воплощал конкретного персонажа для ролевой игры — агенты дают вам такую гибкость.

Доступ к агентам для конкретных групп

Кроме того, вы можете настроить систему так, чтобы определенные группы пользователей имели доступ к конкретным агентам. Это означает, что вы можете иметь разное поведение AI для разных разделов вашего форума, еще больше усиливая разнообразие и насыщенность взаимодействий в вашем сообществе.

Взаимодействие с агентами

С агентами можно взаимодействовать несколькими способами:

  1. Личное сообщение (PM)
  2. Прямое сообщение в чате (DM)
  3. Упоминания в каналах чата
  4. Упоминание в публичной теме через @example_bot_username

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

  • Разрешить личные сообщения: Позволяет пользователям начинать PM с этим агентом (включено по умолчанию)
  • Разрешить упоминания в темах: Позволяет использовать @mention в темах для запуска ответа
  • Разрешить прямые сообщения в чате: Позволяет использовать DM в чате с этим агентом (требуется плагин чата)
  • Разрешить упоминания в каналах чата: Позволяет использовать @mention в каналах чата (требуется плагин чата)

Конфигурация

Чтобы настроить Агентов, перейдите по адресу discourse.example.com/admin/plugins/discourse-ai/ai-agents.

Ключевые параметры конфигурации включают:

  • Системный промпт: Направляет ход диалога
  • Поддержка Vision: Включите для LLM с поддержкой Vision, например GPT-4 Turbo, Claude 3
  • Модель по умолчанию: Обязательна для упоминаемых агентов и агентов с включенной функцией принудительного использования LLM по умолчанию
  • Разрешенные группы: Определение прав доступа с использованием групповой безопасности Discourse
  • Загрузки: Индексация текстовых файлов для дополнительных знаний (с использованием RAG — Retrieval-Augmented Generation)
  • Включенные инструменты: Контроль доступа к определенным инструментам
  • Режим выполнения: Выбор между режимом «по умолчанию» и «агентным» (агентный режим включает многошаговое использование инструментов с настраиваемыми лимитами токенов и сжатием)

Вот пример экрана полной конфигурации AI-агента:

Расширенные параметры конфигурации

Редактор агентов предлагает несколько расширенных опций:

  • Temperature и top_p (сэмплирование по ядру): Контроль креативности против предсказуемости
  • Max context posts: Ограничение количества постов, передаваемых LLM для истории — меньше постов снизит затраты, но заставит AI «забыть» о старом контенте (недоступно в агентном режиме)
  • Режим выполнения: «По умолчанию» для ответов в один проход, «Агентный» для многошагового использования инструментов с:
    • Max turn tokens: Бюджет токенов для агентного выполнения
    • Compression threshold: Порог сжатия контекста в процентах (20–99%)
  • Показывать размышления: Отображение процесса рассуждения AI пользователям (включено по умолчанию)
  • Требовать одобрение: Требовать человеческое одобрение перед выполнением определенных действий
  • Принудительное использование LLM по умолчанию: Запретить пользователям переключать LLM для этого агента
  • Формат ответа: Настройка структурированного формата вывода
  • Примеры: Few-shot примеры для направления поведения AI (пары сообщений пользователь/ассистент)
  • Параметры загрузки:
    • Chunk tokens: Контроль разделения документов
    • Chunk overlap tokens: Установка перекрытия между чанками
    • Search conversation chunks: Количество фрагментов документа, добавляемых к запросам пользователей
    • Question consolidator LLM: Выбор LLM для определения вопросов пользователей
    • RAG LLM model: Выбор конкретной LLM для обработки RAG

Предварительные требования для поддержки загрузки

Чтобы использовать поддержку загрузки:

  1. Включите настройку ai_embeddings_enabled
  2. Настройте модель эмбеддингов через ai_embeddings_selected_model

Discourse AI поддерживает различные модели эмбеддингов. Клиенты на хостинге получают бесплатный доступ к модели bge-large-en.

:information_source: Самохостеры или те, кто хочет больше выбора, могут самостоятельно разместить модель эмбеддингов или использовать модели от Open AI, Google (Gemini) и других.

Разделение текста в Discourse AI

Discourse использует рекурсивный разделитель текста по символам, чтобы сохранять абзацы, строки и слова вместе при разделении текста. Вы можете управлять разделением текста, используя разделитель [[metadata ВАШИ МЕТАДАННЫЕ ЗДЕСЬ]]:

[[metadata about cats]]
dлинная история о кошках
[[metadata about dogs]]
dлинная история о собаках

Этот метод предотвращает «загрязнение чанков», гарантируя, что в каждый чанк включаются только релевантные данные.

Отладка AI-агентов

Чтобы отладить вашего агента:

  1. Добавьте пользователей в группу, указанную в настройке ai_bot_debugging_allowed_groups
  2. Пользователи в этой группе увидят кнопку отладки AI в нижней части постов AI
  3. Нажмите кнопку, чтобы открыть модальное окно интерфейса отладки

:warning: Помните: если вы предоставите LLM размытую или бесполезную информацию, ему будет очень сложно преобразовать её в полезную.

Поддерживаемые инструменты

Discourse AI поддерживает различные инструменты, включая:

Всегда доступны

  • Категории
  • Время
  • Поиск
  • Чтение
  • Схема базы данных
  • Настройки поиска
  • Контекст настроек
  • Случайный выборщик
  • Веб-браузер
  • Поиск Meta Discourse
  • Оценщик JavaScript
  • Исследователь
  • Флаг поста
  • Закрыть тему
  • Скрыть тему
  • Заблокировать пост
  • Удалить тему
  • Редактировать пост
  • Редактировать категорию
  • Установить таймер темы
  • Установить медленный режим
  • Переместить посты
  • Выдать значок

Интеграция с GitHub

  • Контент файла GitHub
  • Diff запроса на слияние (Pull Request) GitHub
  • Поиск файлов GitHub

Эти три инструмента всегда доступны. Дополнительно:

  • Поиск кода GitHub требует заполнения настройки ai_bot_github_access_token

Условные инструменты

  • Теги и Редактировать теги: Доступны, когда на вашем сайте включена функция тегирования
  • Генерация изображений (Image, Create Image, Edit Image): Требуется кастомный инструмент генерации изображений, настроенный через административный интерфейс
  • Поиск Google: Требует заполнения настроек ai_google_custom_search_api_key и ai_google_custom_search_cx
  • Артефакты (Create Artifact, Update Artifact, Read Artifact): Доступны, когда ai_artifact_security установлено в lax, hybrid или strict
  • Назначение: Доступно, когда установлен плагин Assign
  • Отметить как решенное: Доступно, когда установлен плагин Solved

Некоторые инструменты требуют дополнительной конфигурации или API-ключей.

Поддержка пользовательских инструментов

Вы можете создать свои собственные инструменты, используя поддержку пользовательских инструментов.

Кастомизация системных агентов

  1. Создайте нового агента
  2. Скопируйте и вставьте системный промпт из агента, который вы хотите кастомизировать
  3. Измените при необходимости
  4. Опционально отключите оригинальный системный агент, чтобы избежать дублирования

Кастомизация поиска

Чтобы кастомизировать поиск для нового агента:

  1. Создайте нового агента
  2. Добавьте инструмент «search»
  3. Настройте параметры поиска, включая:
    • Базовый поисковый запрос
    • Максимальное количество результатов поиска
    • Опцию включения приватных тем

Это позволяет делегировать права на поиск, увеличить количество результатов или ограничить поиск определенными разделами вашего сайта.

8 лайков
Discourse AI - AI bot
RAG capacities of discourse-ai
Multiple AI bots, and replying in public
Experiments with AI based moderation on Discourse Meta
Two different answers from gpt4o - one right, one wrong.. !?
"Triage posts using AI" script of "Automation" plugin always includes image data in request
Renaming AI Persona -> AI Agent
New AI Persona Editor for Discourse
Discourse AI - AI triage
Using Discourse AI as a Discobot
Setting up NSFW detection in your community
Gemini Flash 2.5 Image - now on Discourse
Content Localization - Manual and Automatic with Discourse AI
Why is my AI forum helper struggling to answer questions?
Auto-categorize topics using AI
AI Bot – Bring Your Own MCP Server
Tag topics using AI
Unlock All Discourse AI Features with Our Hosted LLM
Using PDF and attachment support with AI bots
Setting up spam detection in your community
Multiple AI bots, and replying in public
AI bot - Custom tools
AI bot - Chat and PM integration
A Plug-In to convert Discourse Forum Discussions into Clear Proposal Revisions with Community-Sourced Justifications
Discourse AI
OpenAI image generation and editing now supported in Discourse AI
Can Discourse AI Suggest Relevant Topics and Send Private Messages to Users Based on Their Queries?
Renaming AI Persona -> AI Agent
Improving your results from the "Web Artifact Creator" bot with the Prompt Master bot
Discourse AI - Helper
How to generate AI replies for forum topics using Persona
Discourse AI - AI triage using Agent
Setting up toxicity detection in your community

Сообщение было разделено на новую тему: Могу ли я предоставить функцию генератора изображений для Discourse AI

Что именно делает инструмент «Прочитать»?

Также упоминания в постах в настоящее время не работают, согласно этому отчёту об ошибке.

Коротко: это дает LLM возможность читать темы и сообщения на вашем форуме.

1 лайк

По сути, оно читает тему/пост, когда указан URL, название или ID, а в противном случае (или всё же) использует embed-элементы и прочее — всё зависит от самой модели, промптинга и т. д.

2 лайка

Ой, извините, я отвечал на другой пост :slight_smile:

Он использует ID темы или ID темы + номер поста, чтобы найти исходный Markdown для темы/поста, с ограничениями на максимальную длину.

Не зависит от эмбеддингов.

5 лайков

Чуть не по теме, но так как мне нечего спросить, а вы иногда чистите такие темы, мне всё равно.

Автоматические заголовки в личных сообщениях с ИИ теперь на правильном языке. Не критично, но психологическая ценность этого велика. Спасибо!

4 лайка

Есть ли способ добавить ботов в группу? Я хочу добавить им флейр аватара, но при добавлении в группу они не отображаются.

Они не отображаются, но всё ещё присутствуют. Вы можете убедиться в этом, попробовав добавить человека с ИИ во второй раз. Или вы увидите нужную группу в настройках этих псевдопользователей.

1 лайк

Какую часть репозитория Discourse AI мне стоит изучить, чтобы точно понять, как работают инструменты AI-бота?

Инструменты, Песочница и Бот — отличные места для начала.

Вот пример: Understanding Tools in Discourse AI System - AI Conversation - Discourse Meta

3 лайка

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

1 лайк

Пост был разделён на новую тему: Создание персонажа, опирающегося на историю чата

В настоящее время я пытаюсь получить все сообщения из темы с помощью инструмента «Чтение», но он предоставляет модели LLM максимум 100 сообщений. Я уже установил «Макс. сообщений» на 999 в настройках персонажа, но проблема сохраняется.

Может ли это быть связано с ограничением запросов к API на стороне сервера?

@sam есть какие-то идеи, что может быть причиной ограничения в 100 постов, с которым я столкнулся?

Я не проверял код, но подозреваю, что это жёсткое ограничение, заданное непосредственно в коде. Не могли бы вы уточнить, чего именно вы пытаетесь достичь? Это ключевой момент.

И, возможно, лучше использовать персону «Исследователь форума»?

У нас есть категория «журнал/лог», которая часто содержит несколько сотен постов, где владелец темы сообщает о прогрессе своего проекта в течение 4–5 месяцев.

Моя цель — получить все посты в этой теме, отфильтровать их по автору (владелец темы) и создать сводку.

Мы рассматривали использование персонажа-исследователя, но на данный момент он не поддерживает работу с изображениями. Кроме того, нам нужно обрабатывать изображения пользователей.

1 лайк

О, для этого вам нужно использовать форумный исследователь — это идеальный случай для применения персоны.

2 лайка

@sam Я бы с радостью, но сейчас это не поддерживается. Это что-то из плана развития или пока не является приоритетом?

3 лайка

Конечно, я могу это добавить, это не слишком большое изменение.

3 лайка