Перейти к содержанию

Reference

On this page

Наборы инструментов (toolsets) — это именованные пакеты инструментов, определяющие, что может делать агент. Это основной механизм настройки доступности инструментов для каждой платформы, сессии или задачи.

Как работают наборы инструментов​

Каждый инструмент принадлежит ровно одному набору. Когда вы включаете набор, все инструменты в этом пакете становятся доступны агенту. Наборы инструментов бывают трёх видов:

  • Базовый (Core) — единая логическая группа связанных инструментов (например, file объединяет read_file, write_file, patch, search_files)
  • Составной (Composite) — объединяет несколько базовых наборов для общего сценария (например, debugging объединяет файловые, терминальные и веб-инструменты)
  • Платформенный (Platform) — полная конфигурация инструментов для конкретного контекста развёртывания (например, hermes-cli — набор по умолчанию для интерактивных CLI-сессий)

Настройка наборов инструментов​

Для сессии (CLI)​

[code] hermes chat --toolsets web,file,terminal
hermes chat --toolsets debugging # составной — расширяется до file + terminal + web
hermes chat --toolsets all # всё

[/code]

Для платформы (config.yaml)​

[code] toolsets:
- hermes-cli # по умолчанию для CLI
# - hermes-telegram # переопределение для шлюза Telegram

[/code]

Интерактивное управление​

[code] hermes tools # curses-интерфейс для включения/отключения для каждой платформы

[/code]

Или внутри сессии:

[code] /tools list
/tools disable browser
/tools enable rl

[/code]

Базовые наборы инструментов​

Набор Инструменты Назначение
browser browser_back, browser_click, browser_console, browser_get_images, browser_navigate, browser_press, browser_scroll, browser_snapshot, browser_type, browser_vision, web_search Базовая автоматизация браузера. Включает web_search как запасной вариант для быстрых поисковых запросов. browser_cdp и browser_dialog находятся в отдельном наборе browser-cdp и регистрируются только при достижимости CDP-эндпоинта на старте сессии — через /browser connect, browser.cdp_url в конфиге, Browserbase или Camofox. browser_dialog работает совместно с полями pending_dialogs и frame_tree, которые browser_snapshot добавляет при подключённом CDP-супервизоре.
clarify clarify Задать вопрос пользователю, когда агенту нужно уточнение.
code_execution execute_code Запуск Python-скриптов, программно вызывающих инструменты Hermes.
cronjob cronjob Планирование и управление повторяющимися задачами.
debugging составной (file + terminal + web) Пакет для отладки — файлы, процессы/терминал, веб-извлечение/поиск.
delegation delegate_task Запуск изолированных экземпляров под-агентов для параллельной работы.
discord discord Базовые действия Discord (текст/встраивания/ЛС, только через шлюз). Активен в наборе hermes-discord.
discord_admin discord_admin Модерация Discord (баны, изменение ролей, управление каналами). Активен в наборе hermes-discord; требует, чтобы бот обладал соответствующими правами Discord.
feishu_doc feishu_doc_read Чтение содержимого документов Feishu/Lark. Используется обработчиком интеллектуальных ответов на комментарии в документах Feishu.
feishu_drive feishu_drive_add_comment, feishu_drive_list_comments, feishu_drive_list_comment_replies, feishu_drive_reply_comment Операции с комментариями в Feishu/Lark Drive. Ограничен агентом комментариев; не доступен в hermes-cli или других наборах для мессенджеров.
file patch, read_file, search_files, write_file Чтение, запись, поиск и редактирование файлов.
homeassistant ha_call_service, ha_get_state, ha_list_entities, ha_list_services Управление умным домом через Home Assistant. Доступен только при установленной переменной HASS_TOKEN.
image_gen image_generate Генерация изображений по текстовому описанию через FAL.ai (с опциональными бэкендами OpenAI / xAI).
memory memory Управление постоянной памятью между сессиями.
messaging send_message Отправка сообщений на другие платформы (Telegram, Discord и др.) из текущей сессии.
moa mixture_of_agents Многомодельный консенсус через Mixture of Agents.
rl rl_check_status, rl_edit_config, rl_get_current_config, rl_get_results, rl_list_environments, rl_list_runs, rl_select_environment, rl_start_training, rl_stop_training, rl_test_inference Управление окружением RL-обучения (Atropos).
safe image_generate, vision_analyze, web_extract, web_search (через includes) Исследование только для чтения + генерация медиа. Нет записи файлов, нет терминала, нет выполнения кода.
search web_search Только веб-поиск (без извлечения).
session_search session_search Поиск по прошлым сессиям диалогов.
skills skill_manage, skill_view, skills_list CRUD-операции и просмотр навыков.
spotify spotify_albums, spotify_devices, spotify_library, spotify_playback, spotify_playlists, spotify_queue, spotify_search Нативное управление Spotify (воспроизведение, очередь, поиск, плейлисты, альбомы, библиотека). Регистрируется встроенным плагином spotify.
terminal process, terminal Выполнение команд оболочки и управление фоновыми процессами.
todo todo Управление списком задач в рамках сессии.
tts text_to_speech Генерация аудио из текста (Text-to-Speech).
vision vision_analyze Анализ изображений через модели, поддерживающие компьютерное зрение.
web web_extract, web_search Веб-поиск и извлечение содержимого страниц.
yuanbao yb_query_group_info, yb_query_group_members, yb_search_sticker, yb_send_dm, yb_send_sticker Действия с личными сообщениями и группами Yuanbao, поиск стикеров. Регистрируется только в hermes-yuanbao.

Платформенные наборы инструментов​

Платформенные наборы инструментов определяют полную конфигурацию инструментов для целевого развёртывания. Большинство платформ обмена сообщениями используют тот же набор, что и hermes-cli:

Набор Отличия от hermes-cli
hermes-cli Полный набор — 38 инструментов. Используется по умолчанию для интерактивных CLI-сессий.
hermes-acp Исключает clarify, cronjob, image_generate, send_message, text_to_speech и все четыре инструмента Home Assistant. Ориентирован на задачи кодирования в контексте IDE.
hermes-api-server Исключает clarify, send_message и text_to_speech. Оставляет всё остальное — подходит для программного доступа, где взаимодействие с пользователем невозможно.
hermes-cron Совпадает с hermes-cli.
hermes-telegram Совпадает с hermes-cli.
hermes-discord Добавляет discord и discord_admin поверх hermes-cli.
hermes-slack Совпадает с hermes-cli.
hermes-whatsapp Совпадает с hermes-cli.
hermes-signal Совпадает с hermes-cli.
hermes-matrix Совпадает с hermes-cli.
hermes-mattermost Совпадает с hermes-cli.
hermes-email Совпадает с hermes-cli.
hermes-sms Совпадает с hermes-cli.
hermes-bluebubbles Совпадает с hermes-cli.
hermes-dingtalk Совпадает с hermes-cli.
hermes-feishu Добавляет пять инструментов feishu_doc_* / feishu_drive_* (используются только обработчиком комментариев к документам, а не обычным адаптером чата).
hermes-qqbot Совпадает с hermes-cli.
hermes-wecom Совпадает с hermes-cli.
hermes-wecom-callback Совпадает с hermes-cli.
hermes-weixin Совпадает с hermes-cli.
hermes-yuanbao Добавляет пять инструментов yb_* (ЛС/группы/стикеры) поверх hermes-cli.
hermes-homeassistant Совпадает с hermes-cli (инструменты Home Assistant уже присутствуют по умолчанию и активируются при установке HASS_TOKEN).
hermes-webhook Совпадает с hermes-cli.
hermes-gateway Внутренний набор инструментов оркестратора шлюза — объединение всех наборов hermes-<platform>; используется когда шлюзу нужно принимать сообщения из любого источника.

Динамические наборы инструментов​

Наборы инструментов MCP-серверов​

Каждый настроенный MCP-сервер генерирует набор mcp-<server> во время выполнения. Например, если вы настроили MCP-сервер github, создаётся набор mcp-github, содержащий все инструменты этого сервера.

[code] # config.yaml
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]

[/code]

Это создаёт набор mcp-github, на который можно ссылаться в --toolsets или в конфигурациях платформ.

Наборы инструментов плагинов​

Плагины могут регистрировать собственные наборы инструментов через ctx.register_tool() во время инициализации плагина. Они отображаются рядом со встроенными наборами и могут быть включены/отключены тем же способом.

Пользовательские наборы инструментов​

Определите собственные наборы инструментов в config.yaml для создания пакетов под конкретные проекты:

[code] toolsets:
- hermes-cli
custom_toolsets:
data-science:
- file
- terminal
- code_execution
- web
- vision

[/code]

Подстановочные знаки​

  • all или * — раскрывается во все зарегистрированные наборы инструментов (встроенные + динамические + плагины)

Связь с командой hermes tools​

Команда hermes tools предоставляет curses-интерфейс для включения или отключения отдельных инструментов для каждой платформы. Это работает на уровне инструментов (более детально, чем наборы) и сохраняется в config.yaml. Отключённые инструменты фильтруются, даже если их набор включён.

См. также: Справочник по инструментам для полного списка отдельных инструментов и их параметров.