Как устроен собственный ассистент в Open WebUI

Разбираем базовую модель и её рабочий пресет в Open WebUI: инструкции, параметры и роли Knowledge, Prompts, Skills и Tools на примере книжного клуба.

После урока вы сможете

  • Отличать подключённую модель от сохранённого пресета
  • Различать постоянную инструкцию и данные отдельного сообщения
  • Понимать роли Knowledge, Prompts, Skills и Tools
  • Объяснять ограничения Capabilities и сохранённых настроек

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

Допустим, Анна организует встречи небольшого книжного клуба. Перед каждым собранием она готовит короткое объявление для участников: книга, день, время и место каждый раз меняются, но требования к самому тексту остаются одними и теми же. Нужно писать коротко, сохранять переданные факты и переспрашивать, если какого-то условия в черновике не хватает.

Когда такая задача возникает один раз, правила проще написать прямо в сообщении чата. Но если встречи проходят регулярно, повторять одну и ту же инструкцию в каждой новой беседе неудобно. В Open WebUI для этого создают собственный рабочий вариант модели — пресет, который в интерфейсе и документации также называют ассистентом или агентом. Такое название само по себе не обещает автономной работы, а создание пресета не формирует новую языковую модель: он сохраняет выбранные правила и настройки поверх уже подключённой базовой модели, которая и формирует ответ.

На этом вымышленном примере мы по исходникам и документации Open WebUI разберём запись из раздела Workspace → Models: отделим базовую модель от сохранённой конфигурации и разового сообщения в чате, а также посмотрим на реальные границы такого пресета без запуска модели и настройки сервера.

Что сохраняет пресет «Редактор объявлений клуба»

Чтобы не копировать одни и те же правила в каждый новый чат, Анна сохраняет рабочую конфигурацию под понятным именем и выбирает её в новых беседах (пресеты Models).

Посмотрим на минимальную карточку такого пресета на бумаге:

  • Отображаемое имя (Name): Редактор объявлений клуба — название, которое видно в списке выбора.
  • Отдельный идентификатор (ID): собственный технический идентификатор записи (в стабильном коде v0.12.3 и документации — строка без пробельных символов). Он отличается от имени и от идентификатора базовой модели; конкретную строку ID для копирования мы здесь не задаём.
  • Базовая модель (Base Model (From)): условная Базовая модель A. Это бумажное обозначение уже подключённой языковой модели, а не реальный идентификатор провайдера или утверждение, что конкретная модель сейчас доступна на сервере.
  • Системная инструкция (System Prompt):

Помогай готовить короткие объявления о встречах книжного клуба. Сохраняй переданные дату, время и место. Если нужного факта нет, попроси уточнение; не придумывай его.

Такая карточка хранит собственные имя и ID, ссылку на выбранную базовую модель, блок параметров (куда при сохранении в редакторе записывается системная инструкция) и метаданные для возможных связей с ресурсами. В нашей минимальной бумажной карточке мы не задаём числовых переопределений параметров или дополнительных связей с коллекциями документов (Knowledge), навыками (Skills) и инструментами (Tools) — чтобы отличить пресет от базовой модели, они не требуются. Источники: состав записи модели, форма Name и ID, сохранение системной инструкции.

Создание пресета не скачивает, не устанавливает и не дообучает веса языковой модели. «Редактор объявлений клуба» — это сохранённая обёртка с настройками, а саму генерацию текста по-прежнему выполняет выбранная Базовая модель A. При этом сохранение текста в поле System Prompt лишь фиксирует инструкцию в конфигурации, но не гарантирует, что модель безошибочно выполнит каждое правило и никогда не выдумает недостающую деталь.

Где находится пресет в Workspace и как его выбирают

Посмотрим, где эта запись находится в интерфейсе и чем выбор пресета для разговора отличается от редактирования его конфигурации. Ниже мы опираемся на официальные английские названия из кода стабильного релиза Open WebUI v0.12.3, проверенные по исходникам и сопоставленные с отдельной веткой документации main на 22 октября 2026 года без кликов в живом интерфейсе. В конкретной установленной копии вид экрана может отличаться из-за локализации, версии или прав доступа.

Конфигурации ассистентов хранятся в разделе Workspace → Models. В списке моделей у записи есть два разных сценария работы (редактор и действия Models):

  • Выбор для беседы: стрелка рядом с именем пресета открывает с ним новый чат (также доступный пресет можно выбрать в селекторе моделей обычного диалога). В этом режиме вы пользуетесь уже сохранённым вариантом.
  • Создание и редактирование конфигурации: кнопка Create в общем заголовке Workspace при открытой вкладке Models открывает редактор для новой записи, а нажатие на само имя существующего пресета открывает этот же редактор для изменения его настроек.

В редакторе расположены знакомые нам ориентиры: поля имени и идентификатора (Name / ID), выбор базовой модели Base Model (From) из уже подключённых источников, краткое описание (Description), теги (Tags) и поле System Prompt. Откуда в системе берутся сами исходные модели, мы разбирали в материале про список моделей и источники подключений. Ниже в форме идут строки дополнительных настроек и привязок (Advanced Params, Knowledge, Tools, Skills, Capabilities), но они показывают возможные опции, а не обязательный чеклист для заполнения. Источники: выбор базовой модели, дополнительные связи редактора.

Кнопка сохранения в нижней части формы также различает два действия (сохранение новой и существующей записи): при создании новой карточки через Create она называется Save & Create, а при открытии существующего пресета по его имени меняется на Save & Update и активируется после внесения правок.

Если в вашем окне Open WebUI нет раздела Workspace → Models или не видно нужной записи, это зависит от трёх разных уровней проверки доступа:

  1. Видимость раздела в интерфейсе: фронтенд v0.12.3 показывает и открывает вкладку Models администратору или пользователю с разрешением workspace.models.
  2. Право создать запись: проверенный серверный маршрут создания модели требует подтверждённого пользователя и роли администратора либо разрешения workspace.models.
  3. Доступ к конкретному пресету и его базе: возможность выбрать и использовать уже созданную запись в чате проверяется отдельно — в проверенных путях сервер контролирует право чтения самой карточки пресета и доступ к её базовой модели, причём на эти условия влияют административный статус и серверные настройки обхода контроля доступа (admin/bypass).

Поэтому разрешение управлять разделом Workspace не означает автоматического доступа к каждой чужой записи или базовой модели, а обычный пользователь может видеть готового «Редактора объявлений клуба» в чате, не имея доступа к редактору Workspace → Models. Менять права ради этого обзора не нужно. Источники: доступ к вкладке Models, доступ к рабочей области, проверка создания записи, доступ к пресету и базе.

Что меняется в новой беседе и как обрабатывается запрос

Представим, что карточка «Редактор объявлений клуба» сохранена, и Анна открывает с этим пресетом новый чат для подготовки очередного анонса. Нужно ли ей заходить в редактор модели, если в этот раз клуб читает другую книгу и собирается в новый день?

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

Встреча 12 ноября в 19:00, читальный зал; обсуждаем «Капитанскую дочку».

Эти дата, время, место и название книги — разовые входные сведения сообщения. Они не записываются обратно в карточку «Редактора объявлений клуба» и не становятся постоянными правилами пресета автоматически. Текст готового объявления мы здесь не приводим, поскольку не запускали модель на этом примере; вместо этого проследим, как система обрабатывает запрос.

В двух проверенных стандартных серверных маршрутах — для подключений OpenAI-compatible и Ollama — подготовка запроса проходит по такой общей схеме:

  1. Когда в чате выбран «Редактор объявлений клуба», сервер Open WebUI находит сохранённую конфигурацию пресета по его идентификатору.
  2. Система определяет связанную с карточкой базовую модель (нашу условную Базовую модель A) и подставляет её в качестве получателя запроса.
  3. К запросу по правилам маршрута применяются сохранённые параметры и системная инструкция пресета, а также проверяется доступ пользователя к модели.
  4. Подготовленный запрос передаётся через уже настроенное подключение к серверу базовой модели (локальному или внешнему, в зависимости от того, куда ведёт соединение).

Эта схема описывает именно два обычных серверных маршрута OpenAI-compatible и Ollama: её не следует автоматически переносить на прямые браузерные подключения (Direct Connections), конвейеры и плагины (Pipe / Functions), режим arena или специальные API-пути. Сам пресет не заменяет собой подключение к серверу модели, а лишь комплектует запрос перед отправкой к выбранной базе. Источники: маршрут OpenAI-compatible, маршрут Ollama.

В этих проверенных маршрутах обычные настройки из блока Advanced Params и системная инструкция работают по разным правилам:

  • Обычные параметры генерации работают как значения по умолчанию (defaults). Сохранённое в пресете значение обычного параметра заполняет поле запроса тогда, когда чат или пользовательские настройки не передали для этого же поля собственное явное значение. Поэтому нельзя сказать ни что пресет всегда перекрывает настройки чата, ни что чат полностью отключает пресет. Подробнее работу самих регуляторов мы разбирали в уроке про параметры и режим рассуждений. Источники: Advanced Params, параметры чата, значения по умолчанию, обработка параметров.
  • Системная инструкция (System Prompt) обрабатывается отдельно от обычных параметров. Она не подчиняется формуле «значение по умолчанию, пока пользователь не указал своё»: сервер извлекает системную инструкцию пресета отдельно от числовых настроек и встраивает её через собственную процедуру сборки системного сообщения, тогда как для специальных элементов управления (Model Controls, custom_params), фильтров и шаблонов провайдера действуют свои правила. При этом отдельная процедура сборки всё так же не гарантирует, что модель безусловно подчинится инструкции.

Для чего нужны Knowledge, Prompts, Skills и Tools

Рядом с вкладкой Models в меню Workspace расположены разделы Knowledge, Prompts, Skills и Tools. Для минимального пресета заполнять их не требуется: это самостоятельные объекты со своими ролями, и в карточке Анны ни один из них не подключён (разделы Workspace).

Сопоставим все пять разделов по их назначению и отношению к нашему пресету:

Раздел или объектКакую роль выполняетКак соотносится с пресетом «Редактор объявлений клуба»
ModelsСохранённая рабочая конфигурация поверх базовой моделиСама карточка Анны: объединяет имя и ID, выбор Базовой модели A и постоянную инструкцию
KnowledgeКоллекции загруженных документов как возможный источник контекстаСамостоятельный объект; ссылку на коллекцию можно сохранить в пресете или прикрепить к беседе. В минимальной карточке Анны не используется
PromptsБиблиотека повторяемых заготовок запросов, вызываемых в чате через слэш-команду /Отдельная библиотека шаблонов для ввода сообщений (например, возможная заготовка для подстановки фактов новой встречи); не привязывается к пресету как ресурс наравне с Knowledge, Skills и Tools
SkillsПереиспользуемые наборы текстовых инструкций и правил в формате MarkdownСамостоятельный объект; может быть связан с пресетом, если одни и те же текстовые правила (условно — памятку о ясном языке) нужно подключать к разным моделям
ToolsВызываемые исполняемые операции и обращения к внешним сервисамОтдельно настроенные инструменты; пресет может хранить выбор их идентификаторов, но в карточке Анны инструментов нет

При выборе Knowledge, Skills или Tools в редакторе модели пресет сохраняет в метаданных ссылки на эти самостоятельные ресурсы (ссылки на ресурсы в пресете). Чтобы не смешивать их возможности при чтении карточки, учитывайте три технические границы:

  1. Привязка Knowledge задаёт возможный источник контекста, а не обучает веса модели. О базовом отличии контекста от обучения мы говорили в уроке про файлы и прошлые чаты как контекст. Связь коллекции с пресетом или беседой не означает, что весь текст каждого документа автоматически отправляется в каждом запросе или что модель ищет ответ только внутри приложенных файлов: способ обращения к документам зависит от выбранного режима извлечения и вызова функций (retrieval / function calling) и конфигурации сервера. Источники: Knowledge в модели и беседе, режимы обработки документов, обработка привязанных знаний, знания во встроенных инструментах.
  2. Skills остаются текстом в Markdown, а не исполняемым кодом. Навык (текстовые навыки Skills) описывает правила и методику на обычном языке, но его привязка к карточке не обещает безусловной вставки любого объёма текста целиком без учёта контекстных ограничений системы.
  3. Связь с Tools в карточке выбирает идентификатор инструмента, но не настраивает и не авторизует его. Инструменты из Workspace → Tools выполняют Python-код на сервере, а внешние инструменты MCP и OpenAPI работают через отдельные процессы или сервисы. Сам выбор инструмента в пресете не устанавливает его на сервер, не включает отключённую конфигурацией категорию, не выдаёт пользователю право чтения (read) на локальный инструмент, не создаёт API-ключи и не выполняет за человека вход в защищённый внешний аккаунт (например, для OAuth-инструментов). Конфигурация, права доступа с учётом административных режимов и аутентификация проверяются отдельно, поэтому сама ссылка в пресете не гарантирует ни безопасности Python-кода, ни успешного вызова. Источники: виды Tools, доступ к привязанным инструментам, проверка конфигурации и прав Tools, аутентификация внешних инструментов.

System Prompt, библиотека Prompts и подсказки начала чата

Слово Prompt встречается в интерфейсе в трёх разных местах и обозначает три разные функции, которые не создают друг друга автоматически:

  • System Prompt в карточке пресета: постоянная системная инструкция конкретного рабочего варианта в Workspace → Models («Помогай готовить короткие объявления…»).
  • Раздел Workspace → Prompts: самостоятельная библиотека переиспользуемых шаблонов сообщений (библиотека Prompts), которые вызываются в поле ввода чата через слэш-команду / для быстрой подстановки текста запроса.
  • Строка Prompts внутри редактора модели: список предлагаемых подсказок начала разговора (prompt suggestions) на стартовом экране чата для этого пресета. Сохранение таких подсказок в карточке модели не создаёт записей в библиотеке Workspace → Prompts.

Что означают Capabilities и чего нельзя узнать по карточке

В редакторе модели есть строка переключателей Capabilities (возможности). Эти флажки настраивают доступность функций для данного пресета, но сами по себе не добавляют новых способностей базовой модели и не выдают пользовательских прав.

В коде компонента Capabilities прямо указано условие: выбранные функции должны поддерживаться самой подключённой базовой моделью и её провайдером при соответствующей конфигурации. Например, переключатель Vision отвечает за передачу изображений на анализ, но требует базовой модели с поддержкой работы с изображениями (требования Vision); включение этого флага в карточке не превратит текстовую модель в мультимодальную.

Текстовая инструкция в карточке также задаёт конфигурацию запроса, но не даёт жёсткой гарантии результата (пределы системной инструкции). Насколько точно ассистент удержит правила Анны и не пропустит деталь, зависит от выбранной базовой модели, шаблона провайдера или локального сервера, полного контекста беседы и дополнительных инструкций от подключённых инструментов, файлов, RAG, навыков, памяти или фильтров. Поскольку мы разбираем карточку без запуска модели, по одной сохранённой записи нельзя заранее установить реальное качество объявления или успешность выполнения действия.

Проверьте, чем база отличается от рабочего пресета

Проверим по нашей бумажной карточке «Редактор объявлений клуба», как различаются роли базовой модели, пресета и сообщения беседы. Открывать Open WebUI, создавать запись или отправлять запросы для этой самопроверки не нужно.

Сопоставьте четыре вопроса по разобранному примеру с ключом:

  1. Что именно сформирует текст ответа в чате: сама карточка «Редактор объявлений клуба» или выбранная базовая модель? Ключ: Генерацию текста выполняет подключённая базовая модель (Базовая модель A), а карточка пресета задаёт рабочую конфигурацию, которую Open WebUI применяет при подготовке и передаче запроса в проверенных серверных маршрутах.
  2. Какие сведения в примере Анны сохраняются для повторного использования, а какие меняются от встречи к встрече? Ключ: В карточке пресета для повторного использования сохраняются имя и ID, ссылка на базовую модель, постоянная инструкция System Prompt и возможные параметры или связи. Конкретные факты новой встречи (12 ноября, 19:00, читальный зал, «Капитанскую дочку») передаются сообщением в текущей беседе и не становятся постоянными правилами пресета автоматически.
  3. Обязательно ли подключать Knowledge, Prompts, Skills и Tools, чтобы пресет отличался от базовой модели, и одно ли и то же означают три функции со словом Prompt? Ключ: Нет, дополнительные ресурсы необязательны и работают как самостоятельные объекты. Поле System Prompt в карточке пресета, отдельная библиотека /-шаблонов Workspace → Prompts и подсказки начала разговора (prompt suggestions) в редакторе модели выполняют три разные функции.
  4. Что показывает включённый переключатель вроде Vision или ссылка на инструмент в карточке, и можно ли по самой карточке оценить соблюдение правил? Ключ: Включённый флаг или ссылка показывают только выбранную настройку в конфигурации пресета: они не создают новых способностей у базовой модели, не выдают право чтения (read), API-ключи или вход во внешний сервис и не гарантируют успешного выполнения. Оценить реальное качество текста и соблюдение инструкции по одной карточке нельзя — для этого нужна фактическая проверка на запуске, которой в этом обзоре не проводилось.

Теперь по карточке пресета в Workspace → Models вы можете отделить подключённую базовую модель от сохранённой поверх неё рабочей конфигурации и разовых сведений диалога. В следующих уроках этого модуля мы разберём шаблоны в Workspace → Prompts, текстовые навыки Skills, полную сборку и проверку собственного ассистента, а также настройку версий и прав доступа, тогда как работа с документами (RAG) и подключение исполняемых инструментов Tools будут рассмотрены в своих отдельных модулях курса.

Для повторяемых сообщений подготовьте шаблон Prompts с переменными.

Отметить прохождение

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