Инструменты — это функции, расширяющие возможности агента. Они организованы в логические наборы инструментов (toolsets), которые можно включать или отключать для каждой платформы.
Доступные инструменты
Hermes поставляется с обширным встроенным реестром инструментов, охватывающим веб-поиск, автоматизацию браузера, выполнение команд в терминале, редактирование файлов, память, делегирование, RL-обучение, доставку сообщений, Home Assistant и многое другое.
Honcho cross-session memory доступен как плагин провайдера памяти (plugins/memory/honcho/), а не как встроенный набор инструментов. Инструкции по установке см. в разделе Plugins.
Категории верхнего уровня:
Категория
Примеры
Описание
Веб
web_search, web_extract
Поиск в интернете и извлечение содержимого страниц.
tip Nous Tool Gateway
Платные подписчики Nous Portal могут использовать веб-поиск, генерацию изображений, TTS и автоматизацию браузера через Tool Gateway — отдельные API-ключи не требуются. Выполните hermes model для его включения или настройте отдельные инструменты с помощью hermes tools.
Использование наборов инструментов (Toolsets)
# Use specific toolsets
hermeschat--toolsets"web,terminal"# See all available tools
hermestools
# Configure tools per platform (interactive)
hermestools
Распространённые наборы инструментов включают web, search, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant, messaging, spotify, discord, discord_admin, debugging, safe и rl.
Полный список, включая предустановки платформ, такие как hermes-cli, hermes-telegram, и динамические MCP-наборы инструментов, например mcp-<server>, см. в разделе Toolsets Reference.
Бэкенды терминала
Инструмент terminal может выполнять команды в различных окружениях:
Бэкенд
Описание
Сценарий использования
local
Запуск на вашей машине (по умолчанию)
Разработка, доверенные задачи
docker
Изолированные контейнеры
Безопасность, воспроизводимость
ssh
Удалённый сервер
Изоляция, защита кода агента от изменений
singularity
HPC-контейнеры
Кластерные вычисления, без root
modal
Облачное выполнение
Serverless, масштабирование
daytona
Облачное sandbox-окружение
Постоянные удалённые среды разработки
vercel_sandbox
Облачная microVM Vercel Sandbox
Облачное выполнение с сохранением файловой системы через снапшоты
Конфигурация
# In ~/.hermes/config.yamlterminal:backend:local# or: docker, ssh, singularity, modal, daytona, vercel_sandboxcwd:"."# Working directorytimeout:180# Command timeout in seconds
Один постоянный контейнер, общий для всего процесса. Hermes запускает один долгоживущий контейнер при первом использовании (docker run -d ... sleep 2h) и направляет все вызовы terminal, file и execute_code через docker exec в тот же контейнер. Изменения рабочей директории, установленные пакеты, настройки окружения и файлы, записанные в /workspace, сохраняются между вызовами инструментов, при /new, /reset и в подагентах delegate_task, на протяжении всего времени работы процесса Hermes. Контейнер останавливается и удаляется при завершении работы.
Это означает, что бэкенд Docker ведёт себя как постоянная sandbox-виртуальная машина, а не как новый контейнер на каждую команду. Если вы один раз выполнили pip install foo, он останется на остаток сессии. Если вы перешли в cd /workspace/project, последующие вызовы ls увидят эту директорию. Подробности о жизненном цикле и флаге container_persistent, который управляет сохранением /workspace и /root между перезапусками Hermes, см. в разделе Configuration → Docker Backend.
Бэкенд SSH
Рекомендуется для безопасности — агент не может изменять свой собственный код:
terminal:backend:ssh
# Set credentials in ~/.hermes/.envTERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa
Аутентифицируйтесь, указав все три: VERCEL_TOKEN, VERCEL_PROJECT_ID и VERCEL_TEAM_ID. Эта настройка с токеном доступа является рекомендуемым способом для развёртывания и обычных долгоживущих процессов Hermes на Render, Railway, Docker и подобных хостингах. Поддерживаемые среды выполнения: node24, node22 и python3.13; Hermes по умолчанию использует /vercel/sandbox как корневую рабочую директорию.
Для разовой локальной разработки Hermes также принимает краткосрочные Vercel OIDC-токены:
С опцией container_persistent: true Hermes использует снапшоты Vercel для сохранения состояния файловой системы при пересоздании sandbox'а для той же задачи. Это может включать синхронизированные Hermes учётные данные, навыки и кэш-файлы внутри sandbox'а. Снапшоты не сохраняют живые процессы, пространство PID или идентичность sandbox'а.
Фоновые команды терминала используют общий процесс Hermes для нелокальных операций: spawn, poll, wait, log и kill работают через обычный инструмент process, пока sandbox активен, но Hermes не предоставляет встроенного восстановления отсоединённых процессов Vercel после очистки или перезапуска.
Оставьте container_disk неустановленным или на общем значении по умолчанию 51200; пользовательский размер диска не поддерживается для Vercel Sandbox и приведёт к ошибкам диагностики/создания бэкенда.
Ресурсы контейнера
Настройте CPU, память, диск и сохранение для всех контейнерных бэкендов:
terminal:backend:docker# or singularity, modal, daytona, vercel_sandboxcontainer_cpu:1# CPU cores (default: 1)container_memory:5120# Memory in MB (default: 5GB)container_disk:51200# Disk in MB (default: 50GB)container_persistent:true# Persist filesystem across sessions (default: true)
Когда container_persistent: true, установленные пакеты, файлы и настройки сохраняются между сессиями.
Безопасность контейнера
Все контейнерные бэкенды работают с усиленной безопасностью:
Файловая система root только для чтения (Docker)
Все возможности Linux отключены
Нет повышения привилегий
Лимит PID (256 процессов)
Полная изоляция пространств имён
Постоянное рабочее пространство через volumes, а не через перезаписываемый корневой слой
Docker может опционально получать явный список разрешённых переменных окружения через terminal.docker_forward_env, но пересылаемые переменные видны командам внутри контейнера и должны рассматриваться как доступные для этой сессии.
Управление фоновыми процессами
Запуск и управление фоновыми процессами:
terminal(command="pytest -v tests/",background=true)# Returns: {"session_id": "proc_abc123", "pid": 12345}# Then manage with the process tool:process(action="list")# Show all running processesprocess(action="poll",session_id="proc_abc123")# Check statusprocess(action="wait",session_id="proc_abc123")# Block until doneprocess(action="log",session_id="proc_abc123")# Full outputprocess(action="kill",session_id="proc_abc123")# Terminateprocess(action="write",session_id="proc_abc123",data="y")# Send input
Режим PTY (pty=true) включает интерактивные CLI-инструменты, такие как Codex и Claude Code.
Поддержка Sudo
Если команде требуется sudo, вас попросят ввести пароль (кэшируется на время сессии). Или установите SUDO_PASSWORD в ~/.hermes/.env.
На платформах обмена сообщениями, если sudo не срабатывает, вывод содержит подсказку добавить `SUDO_PASSWORD` в `~/.hermes/.env`.