Каталог Плагинов и Медиа-Модулей

Движок содержит 9 модульных плагинов и 6 медиа-способностей, которые могут включаться и комбинироваться для каждого бота индивидуально.

graph LR subgraph Plugins ["9 Базовых Плагинов (app/plugins/)"] P1["WebSearchPlugin"] P2["CharacterPlugin"] P3["IntentRouterPlugin"] P4["JailbreakGuardPlugin"] P5["MultiAgentPlugin"] P6["NsfwPhotoPlugin"] P7["QuickQuestionsPlugin"] P8["RelationshipPlugin"] P9["RemindersPlugin"] end subgraph Media ["6 Медиа-Способностей (app/media/)"] M1["PhotoCapability"] M2["RagPhotosCapability"] M3["VoiceCapability (TTS)"] M4["VideoCapability"] M5["ReactionsCapability"] M6["StickersCapability"] end

Таблица Назначения Плагинов

Плагин Ключевой Функционал Предоставляемые Инструменты / Поля
WebSearchPlugin Поиск в сети, парсинг сайтов и фоновый авто-RAG search_web, fetch_url, save_to_knowledge_base
CharacterPlugin Внешность персонажа и самообновление Инструмент update_character_appearance
IntentRouterPlugin Быстрая классификация намерений Предварительная маршрутизация
JailbreakGuardPlugin Защита от взлома и отчёты нарушений BotConfig.jailbreak_auto_ban_on_heuristic, AbuseReport
MultiAgentPlugin Маршрутизация между суб-агентами route_to_subagent
NsfwPhotoPlugin Генерация обычных и откровенных фото Схема tease_photo, explicit_photo, photo_category
QuickQuestionsPlugin Варианты быстрых ответов Опции быстрой реплики
RelationshipPlugin Метрика лояльности User.metric_score Изменение metric_delta (-10…+10) и естественный спад
RemindersPlugin Одноразовые и периодические напоминания Инструмент schedule_reminder и крон check_and_send_reminders

Медиа-Способности (app/media/)

flowchart TD Req["LLM Ответ / Вызов Инструмента"] --> Split{"Тип Контента"} Split -->|Photo| P["PhotoCapability (Stability, Imagen, DashScope, OpenAI)"] Split -->|RAG Image| RAGP["RagPhotosCapability (attach_document_image)"] Split -->|TTS Voice| V["VoiceCapability (OpenAI Speech, DashScope REST)"] Split -->|Video| VID["VideoCapability (DashScope Video API)"] Split -->|Emoji Reaction| REAC["ReactionsCapability (send_reaction)"] Split -->|Sticker| STIC["StickersCapability (send_sticker)"]