Перейти к основному содержимому

Инструменты чата

Включённый ход выполняет несколько раундов: модель запрашивает, Libre WebUI выполняет от пользователя, результат возвращается до ответа — максимум 8 раундов и 8 вызовов за раунд. Stop отменяет модель, инструмент и ожидание.

События chat.tool-call.v1, chat.tool-result.v1, chat.approval.v1 идут через приватный WebSocket и постоянный поток, поэтому обновление воспроизводит состояние.

Включение​

По умолчанию выключены. Администратор открывает в Settings → Управление пользователями → Доступ и политики → Доступ к инструментам; каждый ход выбирает точные инструменты и серверы. Профиль может сузить, но не расширить. В приватном чате инструментов нет.

Переключатель Доступ к инструментам сохраняется сразу. Нажмите на него или наведите фокус клавишей Tab и переключите клавишей Space. Смена доступа сохраняет окно Settings и позицию прокрутки.

Встроенные​

  • web_search
  • search_documents
  • list_documents
  • read_document
  • load_skill
  • read_skill_file
  • list_notes
  • read_note
  • create_note (подтверждение)
  • update_note (подтверждение, версия)
  • list_calendar_events
  • create_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.