Инструменты, веб-поиск и MCP
Инструменты дают модели возможность действовать: читать файлы, искать в интернете, запускать команды, работать с памятью, создавать cron-задачи и подключаться к внешним MCP-серверам.Общие ограничения
Для постоянной установки начните с ограничения рабочей области:exec
exec запускает команды оболочки. Это мощный и рискованный инструмент.
exec по-прежнему применяет базовую защиту от явно разрушительных команд. Сетевая проверка управляется общим полем tools.blockPrivateNetworks. По умолчанию оно равно true, поэтому Велес блокирует внутренние домены и частные адреса для exec и web_fetch. Если поставить false, команды оболочки и загрузка страниц смогут обращаться к таким адресам, если среда Велеса видит эту сеть.
Если команды оболочки не нужны, выключите их:
Веб-поиск
Веб-поиск настраивается вtools.web.search.
Если учётные данные отсутствуют у Brave, Tavily, Jina или не задан адрес SearXNG, Велес может перейти на DuckDuckGo. Для Exa автоматического перехода на другой сервис нет.
Поиск через Exa
Exa подключается как ещё один вариант в существующем разделе, без изменения структуры настроек: Вscripts/config.template.json по умолчанию выбран Exa без ключа, с числом результатов 10. Внутри tools.web.search._comment.tavilyExample приведён неактивный пример Tavily. Чтобы переключиться на Tavily, сохраните его ключ в зашифрованном хранилище Велеса и перенесите поля примера в сам раздел tools.web.search. Содержимое _comment не влияет на работу и может быть удалено при сохранении через редактор настроек. Изменение шаблона не переключает уже настроенные установки.
apiKey в пустую строку; одно изменение provider не очищает прежнюю ссылку. Не записывайте сам ключ в файл настроек. Переменная EXA_API_KEY автоматически не подхватывается.
Адрес подключения закреплён: https://mcp.exa.ai/mcp?tools=web_search_exa. Поле baseUrl для Exa не используется. Общий tools.web.proxy учитывается. Для каждого запроса создаётся отдельное подключение; суммарное время подключения и поиска ограничено 30 секундами. Это добавляет время установления соединения, но исключает совместное использование сеанса разными запросами.
Инструмент web_search сохраняет параметры query и count, с числом результатов от 1 до 10. Заголовки, ссылки и выдержки возвращаются в текстовом оформлении Exa, с пометкой о внешнем содержимом. Ответ ограничен 20 000 символами; сокращение явно отмечается. Инструкции внутри найденных страниц не являются командами для Велеса.
Ошибки ключа, исчерпание лимита, превышение времени ожидания и недоступность сервиса возвращаются как ошибки поиска. Велес не повторяет запрос автоматически и не отправляет его другому поисковику. При ошибке ключа проверьте, что сохранён именно ключ Exa; при исчерпании лимита проверьте доступный объём запросов или настройте свой ключ. При временном сбое повторите запрос позже.
Отдельный навык глубокого исследования продолжает использовать Tavily. Он не передаёт ключ Exa в Tavily. Получение страниц через web_fetch также сохраняет прежнее поведение.
После настройки на Windows или в Railway проверьте поиск в новом сообщении: должны вернуться ссылки и выдержки Exa. Затем верните прежний поисковый сервис вместе с его ключом и убедитесь, что он работает. Для проверки доступа без ключа используйте пустое apiKey; для проверки ошибочного ключа ожидается сообщение об ошибке, без выдачи другого сервиса.
Загрузка страниц
web_fetch читает уже известный URL и возвращает очищенный текст страницы, JSON, обычный текст или изображение.
Для длинных страниц Велес не отдаёт только начало текста. Он показывает начало и конец страницы, сохраняет полный очищенный текст в рабочей области в .veles/web-fetch/ и добавляет в ответ путь для read_file. Так можно дочитать пропущенную середину без повторной загрузки страницы.
Параметр maxChars задаёт объём текста, который попадает прямо в ответ инструмента. Он не ограничивает сохранённый полный текст страницы.
Прокси для веб-поиска и загрузки страниц:
MCP
MCP подключает внешние серверы инструментов.stdio и транспорт HTTP/SSE. Если type не указан, Велес определяет его по конфигурации.
Каждое подключение MCP живёт в собственной фоновой задаче. При остановке Велес просит эту задачу закрыться, поэтому транспорт и клиентская сессия освобождаются в той же задаче, где были открыты.
Фильтрация инструментов MCP
Оставить только часть инструментов:["*"]или отсутствие поля — зарегистрировать все инструменты;[]— не регистрировать ни одного инструмента;- список имён — зарегистрировать только указанные;
- принимаются исходные имена MCP и обёрнутые имена вида
mcp_<server>_<tool>.
Разбор документов
documentParse использует Mistral OCR для извлечения текста из документов.
Векторная память
Векторная память индексирует документы и помогает искать по смыслу.docs/, проектных материалов и длительных рабочих областей. Корневой MEMORY.md и заметки memory/**/*.md тоже индексируются, а сырые аварийные архивы memory/*-raw-archive.md — нет. По умолчанию один файл ограничен 8 МиБ через maxFileBytes; превышение не удаляет исходник, а только исключает его из обоих видов поиска.
Индекс хранит модель эмбеддингов и признак успешного построения векторов для каждого файла. Если провайдер эмбеддингов временно недоступен, Велес сохраняет текстовый поиск по файлу и повторяет векторизацию при следующей синхронизации. При смене модели с той же размерностью неизменившиеся файлы также переиндексируются. Если новая модель возвращает другую размерность, Велес оставляет действующую таблицу нетронутой и сообщает о несовместимости; такую смену нужно готовить отдельно на теневой копии индекса.
До первого запроса эмбеддингов Велес складывает текст во временную дисковую базу, полностью подсчитывает фрагменты, проверяет предел в 8192 фрагмента и нижнюю оценку текстовой записи. После первого ответа размерность известна, и полная оценка поколения с векторами проверяется до их упаковки и публикации; предел составляет 64 МиБ. Затем эмбеддинги готовятся порциями не более 20 за раз и сразу переводятся в двоичное представление. Готовое поколение файла публикуется одной транзакцией; если сумма старого и нового поколений превышает предел, старое сначала удаляется порциями, а публикация повторяется позже. Частичный результат не становится видимым. За один проход полное чтение, первичное хеширование или переиндексация выполняются не более чем для 20 файлов; постановка исчезнувших путей в очередь также ограничена 20 файлами. Суммарная расчётная запись поколений за проход ограничена 64 МиБ, а будущие обращения к поставщику резервируются сразу для целого файла. Один допустимый файл может превысить обычный бюджет обращений только первым и не делит его с другим файлом; жёсткой верхней границей остаются 8192 фрагмента. Первый сбой поставщика приостанавливает новые запросы для остальных файлов, а смена ключа, модели или предела файла не позволяет завершившейся старой работе изменить индекс. Перед публикацией и перед скрытием отклонённого поколения Велес повторно проверяет исходник. Новые строки не сохраняют вторую копию вектора в виде JSON. Старые копии намеренно не очищаются автоматически: это потребовало бы тяжёлой перезаписи действующей базы. Сведения о прежнем формате сохраняются до добавления в прежнюю таблицу files столбцов, которые скрыли бы его смысл, а запуск не проверяет полноту двоичных копий полным обходом больших таблиц. Компактный счётчик старых поколений изменяется вместе с их скрытием или заменой; после последнего поколения ограничение снимается без обхода таблицы фрагментов.
Для журнала SQLite заданы автоматическая контрольная точка и предпочтительный предел 64 МиБ. Во время обычной работы Велес выполняет неблокирующую контрольную точку; усечение оставляется для спокойного завершения процесса или отдельного обслуживания. Занятый читатель лишь откладывает эту операцию и не делает синхронизацию ошибочной. Исключённые старые файлы и крупные явные удаления сразу пропадают из поиска, а их служебные строки удаляются небольшими подтверждёнными порциями в следующих проходах. Для старого полнотекстового индекса очередь хранит курсор и верхнюю границу строк на момент удаления, а новые поколения используют точное соответствие фрагмента строке. Поэтому один большой архив не создаёт новую огромную транзакцию, и очистка не следует бесконечно за новыми записями.
Глубокое исследование
Глубокое исследование настраивается вtools.deepResearch: отдельные модели для исследования, сжатия, планирования и итогового отчёта, лимиты токенов, число параллельных исследователей и бюджет поиска.
Если не хотите тонко настраивать процесс, начните с отдельной страницы навыка: Глубокое исследование.
