Discourse Chatbot 🤖

Сводка последних PR — 1–3 августа 2026 г.

Несколько связанных PR были объединены в Discourse Chatbot и его плагинах-расширениях.

Основные моменты

  • Внедрены продвинутые стратегии локального рассуждения, включая verify-and-revise (проверка и исправление), best-of-two (выбор лучшего из двух) и uncertainty-guided reasoning (рассуждение с учетом неопределенности).
  • Добавлены актуальные модели OpenAI и новый параметр max reasoning effort (максимальные усилия рассуждения).
  • Добавлен семантический шлюз для блокировки вопросов на основе сходства эмбеддингов.
    • Значительная экономия ресурсов, поскольку эмбеддинги используются для блокировки тем, которые вы не хотите, чтобы бот обрабатывал, без расхода токенов LLM.
  • Базовая и RAG-реализации объединены в единый класс DiscourseChatbot::Bot.
  • Настройки режимов бота заменены на встроенные селекторы инструментов, зависящие от уровня доверия.
  • Переименован API расширений с “Function” на “Tool”.
  • Инструмент-калькулятор на базе SafeRuby заменен на ограниченный парсер выражений Dentaku — это значительное улучшение безопасности, поскольку, несмотря на название, в SafeRuby существуют уязвимости.
  • Внедрена загрузка через Zeitwerk в Chatbot и его плагинах-расширениях.
  • Инструменты, специфичные для локаций, перенесены в плагин Locations Early Access (спонсируйте меня, чтобы вернуть доступ).
  • Улучшено восстановление после ошибок калькулятора и поддержка распространенных обозначений π/e.
  • Обновлен README.
  • Версия основного плагина повышена с 1.8.0 до 2.4.1.

Discourse Chatbot

  • #162 — FIX: Сохранение состояния рассуждения в Responses API (FIX: Preserve Responses API reasoning state - Pull Request #162 - merefield/discourse-chatbot - GitHub)
    Обеспечена надежность рассуждений и продолжений инструментов в Responses API, введены настраиваемые лимиты итераций и токенов,
    улучшена проверка происхождения URL, сохранены полезные частичные ответы, и предотвращено принятие пустых или некорректных ответов.

  • #163 — FEATURE: Добавление продвинутых стратегий локального рассуждения (FEATURE: Add advanced local reasoning strategies - Pull Request #163 - merefield/discourse-chatbot - GitHub)
    Добавлены стратегии рассуждения для Chat Completions: simple (простое), verify-and-revise (проверка и исправление), best-of-two (выбор лучшего из двух) и uncertainty-guided (с учетом неопределенности), с
    ограничением дополнительных запросов и журналами аудита, видимыми для персонала.

  • #164 — FEATURE: Добавление актуальных моделей OpenAI (FEATURE: Add current OpenAI models - Pull Request #164 - merefield/discourse-chatbot - GitHub)
    Обновлены селекторы моделей новыми вариантами GPT-5.x и Pro, настроен роутинг подходящих моделей через Responses
    API, и добавлен параметр max reasoning effort.

  • #165 — FIX: Улучшение рекомендаций по повторным попыткам калькулятора (FIX: Improve calculator retry guidance - Pull Request #165 - merefield/discourse-chatbot - GitHub)
    Предоставлены моделям более четкие синтаксис калькулятора и рекомендации по восстановлению, чтобы исправимые ошибки приводили к соответствующим повторным попыткам.

  • #166 — FEATURE: Добавление семантического шлюза для блокировки вопросов (FEATURE: Add semantic blocked-question gate - Pull Request #166 - merefield/discourse-chatbot - GitHub)
    Добавлен опциональный шлюз на основе эмбеддингов, который может идентифицировать административно определенные заблокированные темы и возвращать шаблонные ответы до вызова основной модели. Включает кэширование, аудит для персонала, поведение fail-open и поддержку пользовательских моделей эмбеддингов.

  • #167 — DEV: Замена SafeRuby и внедрение загрузки через Zeitwerk (DEV: Replace SafeRuby and adopt Zeitwerk loading - Pull Request #167 - merefield/discourse-chatbot - GitHub)
    Заменен локальный парсер SafeRuby на Dentaku, пространства имен и имена файлов приведены в соответствие с Zeitwerk, и
    модернизированы конфигурация загрузки и линтинга плагина. Оказалось, что в SafeRuby есть уязвимости, поэтому была необходима миграция.

  • #168 — DEV: Извлечение функций локаций из Chatbot (DEV: Extract Locations functions from Chatbot - Pull Request #168 - merefield/discourse-chatbot - GitHub)
    Удалены инструменты и настройки, специфичные для локаций, из основного плагина, позволяя предоставлять их независимо через discourse-locations.

  • #169 — FEATURE: Замена режимов бота на выбор инструментов по уровню доверия
    (FEATURE: Replace bot modes with trust-level tool selection - Pull Request #169 - merefield/discourse-chatbot - GitHub)
    Это была основная рационализация архитектуры:

    • Заменены отдельные боты basic и RAG на DiscourseChatbot::Bot.
    • Добавлены встроенные селекторы инструментов для каждого уровня доверия.
    • Пустой селектор приравнен к простому боту без инструментов.
    • Vision и рисование интегрированы в систему выбора инструментов.
    • Инструменты из внешних плагинов оставлены вне встроенных селекторов.
    • Переименована терминология, настройки и классы с Function на Tool.
    • Настройки упорядочены, сгруппированы и условно скрыты.
    • Добавлена обработка миграции для существующих конфигураций.
    • Списание квоты сделано потокобезопасным.
    • Исправлены лимиты символов в ответах, выбор логирования и чтение бинарных PDF-файлов.
  • #170 — FIX: Улучшение восстановления инструмента калькулятора (FIX: Improve calculator tool recovery - Pull Request #170 - merefield/discourse-chatbot - GitHub)
    Приведены к синтаксису, совместимому с Dentaku, распространенные выражения, такие как Math::PI, Math.PI, Math::E, Math.E и π.
    Повторные вызовы с неизменными невалидными данными теперь отклоняются с указанием действий для исправления.

  • #171 — DEV: Обновление документации по чат-боту (DEV: Refresh chatbot documentation - Pull Request #171 - merefield/discourse-chatbot - GitHub)
    Обновлен README для унифицированного бота и архитектуры инструментов, стратегий рассуждения, заблокированных вопросов, поведения калькулятора, лимитов, квот, пользовательских конечных точек, поддержки изображений/PDF и актуальных настроек. Поддержка Vision больше не описывается как экспериментальная.

Сопутствующие плагины

  • discourse-locations #4 — FIX: Обновление расширений локаций для Chatbot под Tool API (https://github.com/merefield/discourse-locations-early-access/pull/4)
    Мигрированы извлеченные интеграции локаций в DiscourseChatbot::Tool, размещены в пространстве имен Locations::Chatbot::Tools и обновлены для унифицированного бота.

  • Function extension example #1 — FIX: Обновление примера расширения под Tool API Chatbot (FIX: Update example extension for Chatbot tool API - Pull Request #1 - merefield/discourse-chatbot-function-extension-example - GitHub)
    Обновлен пример плагина для демонстрации DiscourseChatbot::Tool, загрузки через Zeitwerk, ориентированных на инструменты настроек и
    переводов, а также целенаправленного тестирования поведения без кода обратной совместимости.

2 лайка