Skip to main content

Инструменты, веб-поиск и 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 не влияет на работу и может быть удалено при сохранении через редактор настроек. Изменение шаблона не переключает уже настроенные установки.
Велес обращается непосредственно к размещённому серверу Exa по протоколу MCP. Это тот же источник общего веб-поиска, который использует Agent-Reach, но установка Agent-Reach и дополнительных программ не требуется. Доступ к социальным платформам из Agent-Reach при этом не добавляется. Exa остаётся внешним поисковым сервисом: запросы передаются ему, а доступность и ограничения зависят от него. Без ключа доступ ограничен условиями Exa. Для доступа со своим ключом сохраните ключ Exa в зашифрованном хранилище Велеса для поиска и используйте ссылку:
Поле ключа общее для выбранного поискового сервиса. При переключении с Tavily или другого сервиса замените сохранённый ключ на ключ Exa. Для работы без ключа явно установите 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>.
Для медленных MCP-вызовов:

Разбор документов

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: отдельные модели для исследования, сжатия, планирования и итогового отчёта, лимиты токенов, число параллельных исследователей и бюджет поиска. Если не хотите тонко настраивать процесс, начните с отдельной страницы навыка: Глубокое исследование.

Минимальный безопасный профиль

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