Инструменты чата
Включённый ход выполняет несколько раундов: модель запрашивает, Libre WebUI выполняет от пользователя, результат возвращается до ответа — максимум 8 раундов и 8 вызовов за раунд. Stop отменяет модель, инструмент и ожидание.
События chat.tool-call.v1, chat.tool-result.v1, chat.approval.v1 идут через приватный WebSocket и постоянный поток, поэтому обновление воспроизводит состояние.
Включение
По умолчанию выключены. Администратор открывает в 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.readOnlyHintoznacza чтение. stdio намеренно не поддерживается.
Изменения после обновления администратором; доступ admin/все/grant.
Учётные данные
На пользователя (Bearer/header), шифруются и привязаны к точному пользователю и серверу.
Исходящие соединения
Разрешает и закрепляет адрес, отклоняет 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 требует подтверждения.
Сервер MCP
Сервер MCP udostępnia przypięte инструменты.
Переменные
| TOOLS_ACCESS_MODE | admins/all-users |
| TOOLS_PRIVATE_NETWORK_ALLOWLIST | точные хосты |
Границы
WebSocket и постоянный путь, не legacy REST. Агенты Work обращаются к тем же серверам через тот же шлюз: только запуски с сетью, серверы без сохранённых учётных данных отфильтровываются при предложении, инструменты с побочными эффектами проходят через одобрения Work. Gemini/agent CLI без инструментов; Ollama/OpenAI/Responses/Anthropic с инструментами. MCP только статические данные пользователя, не интерактивный OAuth.