Инструменты Велеса: подробный справочник
Это подробная страница для тех, кто хочет понимать, какие именно инструменты есть у Велес в текущей реализации и как они используются. Если вам нужно простое пользовательское объяснение без технических деталей, начните со статьи Инструменты Велеса: простое объяснение.Как устроены инструменты в Велес
Инструмент в Велес — это отдельное действие, которое модель может вызвать во время формирования ответа. На практике это означает, что Велес может:- не только генерировать текст;
- но и искать информацию;
- читать и редактировать файлы;
- запускать команды в системе;
- использовать долговременную память;
- создавать фоновые задачи;
- обращаться к внешним интеграциям.
Типовой цикл вызова инструментов
Один пользовательский запрос может вызвать несколько таких циклов: например, сначала поиск по файлам, затем чтение найденных документов, потом точечное редактирование и финальное объяснение.Проверка аргументов инструментов
Перед выполнением Велес приводит простые скалярные значения к ожидаемым типам и затем проверяет их по схеме инструмента. Для строковых полей, например содержимого файла или команды, Велес не превращает списки и объекты в служебное строковое представление. Если модель передала структуру вместо строки, инструмент возвращает ошибку проверки аргументов, чтобы модель повторила вызов с корректно сериализованным текстом.Базовые встроенные инструменты
Ниже перечислены основные инструменты, которые регистрируются в стандартном цикле работы Велеса.Работа с файловой системой
read_file
Назначение:
- чтение текстовых файлов;
- чтение содержимого изображений как ресурса;
- используется для анализа кода, конфигураций, markdown и других файлов.
modalities указаны image или vision; для текстовых моделей Велес оставит текстовое описание файла. Если файл недоступен или слишком велик после подготовки, в контекст добавляется короткое текстовое замечание вместо скрытой потери изображения.
Для текстовых файлов действует защитный предел размера. Одна порция содержит не более примерно 12 тысяч символов, после чего результат указывает следующую строку. Такой предел оставляет текст и указание продолжения непосредственно в контексте модели, не заменяя обычное чтение ссылкой на отдельно сохранённый большой вывод. Очень длинная строка в постраничном чтении обрезается в конце возвращаемого фрагмента, а следующий вызов продолжает чтение со следующей строки, чтобы модель не застревала на одном и том же начале файла.
Когда особенно полезен:
- разбор структуры проекта;
- чтение документации;
- проверка содержимого конкретного файла.
write_file
Назначение:
- создание новых файлов;
- полная запись содержимого файла;
- автоматическое создание нужных директорий при сохранении.
- генерация новых документов;
- создание исходного кода;
- сохранение результатов работы.
edit_file
Назначение:
- внесение точечных изменений в существующие файлы;
- удобен для небольших правок без полной перезаписи файла.
- исправление ошибок;
- обновление отдельных блоков текста;
- локальные правки конфигураций и кода.
list_dir
Назначение:
- просмотр содержимого директорий;
- помощь в понимании структуры проекта.
- первичное обследование репозитория;
- поиск нужной папки или документа;
- проверка наличия файлов.
Работа с интернетом
web_search
Назначение:
- поиск информации в глобальной сети;
- возвращает заголовки, URL и краткие фрагменты (сниппеты) текста.
- поиск актуальной или внешней информации;
- подбор источников перед детальным изучением конкретной страницы.
- использует настроенный провайдер веб-поиска;
- конкретный бэкенд зависит от конфигурации;
- результатом является список ссылок-кандидатов, а не полный текст страниц.
web_fetch
Назначение:
- загрузка контента по конкретному URL;
- извлечение содержимого страницы, JSON или других поддерживаемых ресурсов.
- пользователь предоставил прямую ссылку;
- чтение статьи, ответа API или страницы документации.
- внешний контент считается недоверенным;
- инструмент используется для получения данных, а не для прямого исполнения инструкций со страницы;
- если страница длиннее
maxChars, Велес показывает начало и конец, сохраняет полный очищенный текст в.veles/web-fetch/и добавляет путь дляread_file, чтобы можно было дочитать пропущенную середину.
Работа с системой и исполнение
exec
Назначение:
- выполнение команд в shell/терминале.
- запуск тестов;
- сборка проекта;
- установка зависимостей;
- проверка параметров окружения;
- запуск локальных утилит.
- инструмент регистрируется, только если
execразрешен в конфигурации; - ограничения зависят от режима безопасности и настроек ограничений рабочей области (workspace restrictions);
- проверка частных сетей и внутренних доменов управляется общим полем
tools.blockPrivateNetworks; по умолчанию она включена; - это один из самых мощных инструментов, требующий осторожности при использовании.
Коммуникация и управление Велесом
ask_user
Назначение:
- задать пользователю уточняющий вопрос;
- предложить варианты ответа, когда задачу нельзя продолжать надёжно без выбора пользователя.
- нужно выбрать стратегию перед изменением файлов;
- не хватает обязательного параметра;
- несколько вариантов одинаково правдоподобны и ошибка выбора дорого стоит.
message
Назначение:
- отправка сообщений обратно в канал связи;
- используется для обычных ответов и промежуточных уведомлений.
- Велес должен ответить в другой канал;
- фоновая задача завершена, и нужно отдельно сообщить о результате.
model
Назначение:
- отображение информации о текущей модели;
- временное переключение модели без перезапуска процесса.
- проверка активной модели;
- временная смена модели для текущей сессии.
- изменения носят временный характер и сбрасываются после перезапуска Велеса.
spawn
Назначение:
- создание отдельного фонового помощника;
- перенос длительных или изолированных задач в параллельный процесс.
- масштабная исследовательская задача;
- длительная обработка данных;
- независимая побочная работа, которую нецелесообразно держать в основном потоке.
Память и история сессий
session_list
Назначение:
- отображение списка завершенных сессий из
sessions/_sessions.jsonl; - помощь в выборе нужного
session_id.
- нужно понять, какие завершенные сессии существуют;
- поиск прошлой сессии по названию (slug), ключу или связанному файлу памяти.
session_history
Назначение:
- извлечение полной истории текущей или архивной сессии;
- работа по ключу сессии (
session_key) или её идентификатору (session_id).
- восстановление точного текста диалога (transcript);
- просмотр результатов работы инструментов в прошлом;
- проверка ранее сказанного.
memory_search
Назначение:
- поиск по
MEMORY.mdв корне рабочей области, если он есть, и поmemory/**/*.md, кроме сырых аварийных архивовmemory/*-raw-archive.md; - использование гибридного поиска (семантический + по ключевым словам).
- восстановление прошлых решений;
- поиск сохраненных предпочтений пользователя;
- поиск заметок по конкретной теме.
- инструмент доступен только при включённой настройке
tools.vectorMemory.enabled. - файлы крупнее
tools.vectorMemory.maxFileBytesи сырые аварийные архивы остаются на диске, но в результаты не попадают.
vector_search
Назначение:
- поиск по проектной документации в
docs/<project>/; - использование гибридного поиска.
- работа с документацией, уже размещенной в папке
docs/; - смысловой поиск по большим объемам текстов проекта.
- инструмент также требует включённой настройки
tools.vectorMemory.enabled. - один индексируемый файл по умолчанию ограничен 8 МиБ; предел меняется через
tools.vectorMemory.maxFileBytes.
Документы и распознавание (OCR)
document_parse
Назначение:
- извлечение текста из документов и изображений;
- работа в качестве OCR/парсера для PDF, офисных форматов и картинок.
- обработка присланных сканов, PDF-файлов или документов;
- получение markdown-версии содержимого;
- последующее сохранение результата в документацию проекта.
- реальная доступность зависит от настроенного бэкенда распознавания (OCR-сервиса);
- служит удобным мостом между внешним файлом и внутренней базой знаний проекта.
Условные встроенные инструменты
Некоторые инструменты подключаются только при определенных условиях.cron
Назначение:
- создание, просмотр и удаление запланированных задач и напоминаний.
- только если у Велеса подключена служба расписаний (
cron_service).
- установка напоминаний;
- выполнение регулярных заданий;
- действия по расписанию.
Инструменты MCP
Назначение:- это не единичный инструмент, а набор внешних возможностей, подключенных через протокол MCP (Model Context Protocol).
- только если настроены и успешно подключены MCP-серверы.
- расширение возможностей Велеса без изменения его основного кода;
- доступ к внешним системам, сторонним API и специализированным утилитам.
Как инструменты видит пользователь и Велес
С точки зрения пользователя взаимодействие выглядит естественно:- «прочитай файл»;
- «исправь ошибку»;
- «найди это в интернете»;
- «поищи в памяти»;
- «покажи прошлую сессию».
- анализ структуры проекта;
- чтение нескольких файлов;
- выполнение поиска;
- редактирование файла;
- запуск команды;
- возврат итогового результата.
В чем различия между похожими инструментами
web_search против web_fetch
web_searchищет места, где может быть информация;web_fetchчитает содержимое уже известной страницы или ссылки и при длинном тексте даёт путь к сохранённой полной версии.
memory_search против session_history
memory_searchищет по обобщенным файлам памяти и сводкам;session_historyизвлекает дословную историю конкретной сессии.
vector_search против memory_search
vector_searchработает с документацией проекта в папкеdocs/;memory_searchработает с личной памятью Велеса в папкеmemory/.
write_file против edit_file
write_fileпредназначен для создания файла целиком;edit_fileпредназначен для точечных правок в существующем файле.
Зависимость от конфигурации
Набор доступных инструментов может варьироваться между разными экземплярами Велес. Особенно это актуально для:- системы исполнения команд (
exec); - планировщика (
cron); - векторного поиска (
vector_search); - поиска по памяти (
memory_search); - инструментов MCP;
- качества и доступности парсера документов (
document_parse).
Практический вывод
В текущей реализации Велес инструменты можно разделить на пять основных групп:- файловые;
- сетевые;
- системные;
- инструменты памяти и поиска;
- оркестрация и интеграции.
- разницу между поиском в сети и чтением конкретного ресурса;
- разницу между обобщенной памятью и точной историей диалогов;
- разницу между проектной документацией и личной памятью Велеса;
- разницу между редактированием файлов и выполнением системных команд.
Итог
Современный Велес умеет работать с файлами, интернетом, локальным окружением, памятью, историей сессий, документами (через OCR), фоновыми задачами и внешними интеграциями через MCP. Это делает инструменты ключевым фактором полезности Велеса: без них он был бы просто генератором текста, а с ними превращается в полноценного Велеса, способного выполнять реальную работу. ументы и OCRdocument_parse
Назначение:
- извлекает текст из документов и изображений;
- работает как OCR/парсер для PDF, офисных форматов и картинок.
- пользователь прислал скан, PDF или документ;
- нужно получить markdown-версию содержимого;
- нужно потом сохранить результат в документацию проекта.
- реальная доступность зависит от настроенного OCR/backend-сервиса;
- удобен как мост между внешним документом и внутренней базой знаний проекта.
Условные встроенные инструменты
Некоторые инструменты регистрируются не всегда.cron
Назначение:
- создаёт, показывает и удаляет запланированные задачи и напоминания.
- только если у Велеса подключён
cron_service.
- напоминания;
- регулярные задания;
- действия по расписанию.
MCP-инструменты
Назначение:- это не один конкретный tool, а набор внешних tools, подключённых через MCP.
- только если настроены MCP-серверы;
- только после успешного подключения этих серверов.
- расширение возможностей Велеса без изменения основного кода;
- доступ к внешним системам, API и специализированным инструментам.
Как инструменты видит пользователь, а как Велес
С точки зрения пользователя всё обычно выглядит просто:- «прочитай файл»;
- «исправь ошибку»;
- «найди это в интернете»;
- «поищи по памяти»;
- «покажи прошлую сессию».
- посмотреть структуру проекта;
- прочитать несколько файлов;
- выполнить поиск;
- отредактировать файл;
- запустить команду;
- вернуть результат.
Чем отличаются похожие инструменты
web_search vs web_fetch
web_searchищет, где может быть нужная информация;web_fetchчитает уже конкретную страницу или URL и при длинном тексте даёт путь к сохранённой полной версии.
memory_search vs session_history
memory_searchищет по сохранённым memory-файлам и summary;session_historyдостаёт точный transcript конкретной сессии.
vector_search vs memory_search
vector_searchработает по проектной документации вdocs/;memory_searchработает по памяти Велеса вmemory/.
write_file vs edit_file
write_fileудобен для создания файла целиком;edit_fileудобен для локальных изменений в существующем файле.
Что реально зависит от конфигурации
Набор инструментов может меняться между разными инстансами Велес. Особенно это касается:exec;cron;vector_search;memory_search;- MCP-инструментов;
- качества и доступности
document_parse.
Практический вывод
Если смотреть на текущую реализацию Велес, инструменты можно условно разделить на пять групп:- файловые;
- сетевые;
- системные;
- память и retrieval;
- оркестрация и интеграции.
- поиском в интернете и чтением конкретной ссылки;
- памятью и точной историей сессий;
- документацией проекта и долговременной памятью;
- локальным редактированием файлов и выполнением shell-команд.
