Инструменты чата
Включённый ход выполняет несколько раундов: модель запрашивает, Libre WebUI выполняет от пользователя, результат возвращается до ответа — максимум 8 раундов и 8 вызовов за раунд. Stop отменяет модель, инструмент и ожидание.
События chat.tool-call.v1, chat.tool-result.v1, chat.approval.v1 идут через приватный WebSocket и постоянный поток, поэтому обновление воспроизводит состояние.
Включение
По умолчанию выключены. Администратор открывает в Settings → Управление пользователями → Доступ и политики → Доступ к инструментам; каждый ход выбирает точные инструменты и серверы. Профиль может сузить, но не расширить. В приватном чате инструментов нет.
Переключатель Доступ к инструментам сохраняется сразу. Нажмите на него или наведите фокус клавишей Tab и переключите клавишей Space. Смена доступа сохраняет окно Settings и позицию прокрутки.
Встроенные
web_searchsearch_documentslist_documentsread_documentload_skillread_skill_filelist_notesread_notecreate_note(подтверждение)update_note(подтверждение, версия)list_calendar_eventscreate_calendar_event(подтверждение)delete_calendar_event(подтверждение)
Поиск цитирует источники; навыки загружаются по требованию; изменения требуют подтверждения.
Серверы
- OpenAPI: JSON 3.x получается один раз и закрепляется SHA-256.
GETчтение, остальные — эффект до переопределения. Аргументы не выбирают цель. - MCP (Streamable HTTP): список JSON-RPC закреплён.
annotations.readOnlyHintозначает чтение. stdio намеренно не поддерживается.
Изменения после обновления администратором; доступ admin/все/grant.
Учётные данные
На пользователя (Bearer/header), шифруются и привязаны к точному пользователю и серверу.
Интерактивный OAuth (MCP)
Режим Interactive OAuth: WWW-Authenticate → protected-resource metadata → метаданные authorization server → динамическая регистрация клиента (RFC 7591) либо административные client id/secret, шифруются вместе с discovered endpoints.
Подключить на карточке сервера ведёт к провайдеру: PKCE (S256), CSRF state, verifier в HttpOnly cookie, привязанном к серверу. Callback обменивает код на сервере и шифрует токены как статический secret; в браузер попадает только флаг статуса. Автообновление за минуту до истечения, одно на пользователя и сервер даже при гонке нескольких вызовов; при невозможности обновить — запрос на переподключение вместо анонимного отказа. Отключить удаляет токены пользователя и оставляет регистрацию; удаление сервера стирает discovered-конфигурацию.
Сервер, отказывающий в анонимном списке инструментов, всё равно регистрируется: инвентарь закрепляется при первом успешном подключении (или обновлении администратором).
Исходящие соединения
Разрешает и закрепляет адрес, отклоняет private/loopback/metadata и redirects, ограничивает размер и timeout. TOOLS_PRIVATE_NETWORK_ALLOWLIST разрешает точные хосты. Результат считается недоверенным текстом.
Подтверждения
Чтение выполняется без вопроса. Для эффекта доступны варианты: один раз, этот чат, всегда для инструмента/сервера или отказ. Разрешение «Всегда» сохраняется и может быть отозвано. Через две минуты запрос истекает как отказ. Всё аудируется.
Примеры
web_search z {"query": "SQLite latest release changelog"}; search_documents z {"query": "termination clause"}; load_skill {"slug": "release-notes"} для $release-notes.
OpenAPI: Weather, https://api.example-weather.dev, https://api.example-weather.dev/openapi.json, bearer, инструменты getForecast, createAlert, вызов weather__getForecast {"city": "Montreal"}.
MCP: Issues, https://mcp.example-tracker.dev/mcp, header, X-Api-Key; search_issues чтение, create_issue efekt; issues__search_issues, issues__create_issue.
web_search — поиск
Модель ищет информацию в сети.
search_documents — свои файлы
Модель ищет по документам пользователя.
load_skill — сохранённый навык
Ввод $ открывает навыки.
Сервер OpenAPI
Вызов weather__createAlert требует подтверждения.
Exa MCP — поиск и загрузка из веба
В разделе Settings → Инструменты → Начните с шаблона выберите Exa, чтобы предзаполнить регистрацию MCP значением:
https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa
Адрес выбирает web_search_exa и web_fetch_exa через параметр выбора инструментов Exa. Шаблон не использует аутентификацию и по умолчанию ограничивает доступ администраторами. Проверьте форму и выберите Сохранить, чтобы подключиться и закрепить список инструментов. Открытие или отмена шаблона не обращается к Exa. Поисковые запросы и запрошенные URL уходят в Exa только при запуске этих инструментов.
Сервер MCP
Сервер MCP предоставляет закреплённые инструменты.
Переменные
| TOOLS_ACCESS_MODE | admins/all-users |
| TOOLS_PRIVATE_NETWORK_ALLOWLIST | точные хосты |
Границы
WebSocket и постоянный путь, не legacy REST. Упоминания @model в каналах используют тот же цикл в каталоге упомянувшего участника: подтверждать некому, поэтому вызов с побочным эффектом без действующего разрешения отклоняется сразу, а инструменты только для чтения выполняются как обычно. Агенты Work обращаются к тем же серверам через тот же шлюз: только запуски с сетью, серверы без сохранённых учётных данных отфильтровываются при предложении, инструменты с побочными эффектами проходят через одобрения Work. Gemini/agent CLI без инструментов; Ollama/OpenAI/Responses/Anthropic с инструментами. Интерактивный OAuth только для MCP: OpenAPI-сервер по-прежнему использует статические данные пользователя; поток — authorization-code с PKCE, без device-code и client-credentials; authorization server без метаданных (или без endpoint регистрации и client id администратора) подключить нельзя. Discovered OAuth-эндпоинты только https; http допускается лишь для loopback при локальной разработке. Redirect URI берётся из BASE_URL (или первого CORS_ORIGIN) — это значение должно быть реальным адресом браузера и зарегистрировано у провайдеров с фиксированным redirect URI.