Инструменты и наборы инструментов

Инструменты — это функции, расширяющие возможности агента. Они организованы в логические наборы инструментов, которые можно включать и отключать для каждой платформы.

Доступные инструменты

Hermes поставляется с обширным встроенным реестром инструментов, охватывающим веб-поиск, автоматизацию браузера, выполнение терминала, редактирование файлов, память, делегирование, обучение RL, доставку сообщений, Home Assistant и многое другое.:::примечание Межсессионная память Honcho доступна как плагин поставщика памяти (plugins/memory/honcho/), а не как встроенный набор инструментов. См. Плагины для установки.

Категории высокого уровня:

Категория Примеры Описание
Интернет web_search, web_extract Выполните поиск в Интернете и извлеките содержимое страницы.
Терминал и файлы терминал, процесс, read_file, патч Выполняйте команды и манипулируйте файлами.
Браузер browser_navigate, browser_snapshot, browser_vision Интерактивная автоматизация браузера с поддержкой текста и изображений.
СМИ vision_analyze, image_generate, text_to_speech Мультимодальный анализ и генерация.
Агентская оркестровка todo, clarify, execute_code, delegate_task Планирование, уточнение, выполнение кода и делегирование субагента.
Память и припоминание память, session_search Постоянная память и поиск сеансов.
Автоматизация и доставка cronjob, send_message Запланированные задачи с действиями создания/списка/обновления/паузы/возобновления/запуска/удаления, а также доставки исходящих сообщений.
Интеграция ha_*, инструменты сервера MCP, rl_* Home Assistant, MCP, обучение RL и другие интеграции.

Информацию об авторитетном реестре на основе кода см. в Справочнике по встроенным инструментам и Справочнике по наборам инструментов.

💡 Tip

Шлюз инструментов Nous Платные подписчики Nous Portal могут использовать веб-поиск, генерацию изображений, TTS и автоматизацию браузера через Tool Gateway — отдельные ключи API не требуются. Запустите «модель Гермеса», чтобы включить ее, или настройте отдельные инструменты с помощью «инструментов Гермеса».

Использование наборов инструментов

# Use specific toolsets
hermes chat --toolsets "web,terminal"

# See all available tools
hermes tools

# Configure tools per platform (interactive)
hermes tools

Общие наборы инструментов включают в себя «web», «search», «terminal», «file», «browser», «vision», «image_gen», «moa», «skills», «tts», «todo», «memory», «session_search», «cronjob», «code_execution», «делегирование», «clarify», «homeassistant», «messaging». Spotify, Discord, Discord_admin, Отладка, Safe и rl.

Полный набор инструментов см. в Справочнике по наборам инструментов, включая предустановки платформы, такие как hermes-cli, hermes-telegram и динамические наборы инструментов MCP, такие как mcp-<server>.

Серверные части терминала

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

Бэкэнд Описание Вариант использования
местный Запустить на своем компьютере (по умолчанию) Разработка, доверенные задачи
докер Изолированные контейнеры Безопасность, воспроизводимость
сш Удаленный сервер Песочница: держите агента подальше от собственного кода
сингулярность Контейнеры HPC Кластерные вычисления, без корней
модальный Облачное исполнение Бессерверное масштабирование
дайтона Рабочая среда облачной песочницы Постоянные удаленные среды разработки
vercel_sandbox Облачная микроVM Vercel Sandbox Облачное выполнение с сохранением файловой системы на основе моментальных снимков

Конфигурация

# In ~/.hermes/config.yaml
terminal:
  backend: local    # or: docker, ssh, singularity, modal, daytona, vercel_sandbox
  cwd: "."          # Working directory
  timeout: 180      # Command timeout in seconds

Серверная часть Docker

terminal:
  backend: docker
  docker_image: python:3.11-slim

Один постоянный контейнер, общий для всего процесса. Hermes запускает один долгоживущий контейнер при первом использовании («docker run -d... Sleep 2h») и направляет каждый терминал, файл и вызов «execute_code» через «docker exec» в этот же контейнер. Изменения рабочего каталога, установленные пакеты, настройки среды и файлы, записанные в /workspace, все переносится от одного вызова инструмента к другому через подагенты /new, /reset и delegate_task в течение всего срока службы процесса Hermes. Контейнер останавливается и удаляется при выключении.

Это означает, что серверная часть Docker ведет себя как постоянная виртуальная машина в песочнице, а не как новый контейнер для каждой команды. Если вы один раз pip install foo, он будет там до конца сеанса. Если вы cd /workspace/project, последующие вызовы ls увидят этот каталог. См. Конфигурация → Docker Backend для получения полной информации о жизненном цикле и флага container_persistent, который контролирует, сохраняются ли /workspace и /root после перезапуска Hermes.

SSH-бэкэнд

Рекомендуется в целях безопасности — агент не может изменять собственный код:

terminal:
  backend: ssh
# Set credentials in ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa

Сингулярность/Apptainer

# Pre-build SIF for parallel workers
apptainer build ~/python.sif docker://python:3.11-slim

# Configure
hermes config set terminal.backend singularity
hermes config set terminal.singularity_image ~/python.sif

Модальное (бессерверное облако)

uv pip install modal
modal setup
hermes config set terminal.backend modal

Песочница Верселя

pip install 'hermes-agent[vercel]'
hermes config set terminal.backend vercel_sandbox
hermes config set terminal.vercel_runtime node24

Выполните аутентификацию со всеми тремя из VERCEL_TOKEN, VERCEL_PROJECT_ID и VERCEL_TEAM_ID. Эта настройка токена доступа является поддерживаемым путем для развертываний и обычных длительных процессов Hermes на Render, Railway, Docker и подобных хостах. Поддерживаемые среды выполнения: node24, node22 и python3.13; По умолчанию Hermes использует /vercel/sandbox в качестве корня удаленной рабочей области.

Для разовых местных разработок Hermes также принимает недолговечные токены Vercel OIDC:

VERCEL_OIDC_TOKEN="$(vc project token <project-name>)" hermes chat

Из связанного каталога проекта Vercel:

VERCEL_OIDC_TOKEN="$(vc project token)" hermes chat

При использовании container_persistent: true Hermes использует снимки Vercel для сохранения состояния файловой системы при воссоздании в песочнице для одной и той же задачи. Сюда могут входить синхронизированные с Hermes учетные данные, навыки и файлы кэша внутри песочницы. Снимки не сохраняют действующие процессы, пространство PID или ту же самую идентичность активной изолированной программной среды.

Команды фонового терминала используют общий нелокальный поток процессов Hermes: создание, опрос, ожидание, журналирование и уничтожение работают с помощью обычного инструмента обработки, пока «песочница» жива, но Hermes не обеспечивает встроенное восстановление отсоединенного процесса Vercel после очистки или перезапуска.

Оставьте container_disk неустановленным или оставьте общее значение по умолчанию 51200; Пользовательский размер диска не поддерживается для Vercel Sandbox и не позволит выполнить диагностику или создание серверной части.

Ресурсы контейнера

Настройте ЦП, память, диск и постоянство для всех серверных частей контейнера:

terminal:
  backend: docker  # or singularity, modal, daytona, vercel_sandbox
  container_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, установленные пакеты, файлы и настройки сохраняются между сеансами.

Безопасность контейнера

Все серверные части контейнеров работают с усилением безопасности:

Docker может дополнительно получить явный список разрешений env через 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 processes
process(action="poll", session_id="proc_abc123")   # Check status
process(action="wait", session_id="proc_abc123")   # Block until done
process(action="log", session_id="proc_abc123")    # Full output
process(action="kill", session_id="proc_abc123")   # Terminate
process(action="write", session_id="proc_abc123", data="y")  # Send input

Режим PTY (pty=true) включает интерактивные инструменты CLI, такие как Codex и Claude Code.

Поддержка Судо

Если для команды требуется sudo, вам будет предложено ввести пароль (кэшированный для сеанса). Или установите SUDO_PASSWORD в ~/.hermes/.env.:::предупреждение На платформах обмена сообщениями, если sudo завершается неудачно, выходные данные включают подсказку о добавлении SUDO_PASSWORD к ~/.hermes/.env.