Советы и лучшие практики
Подборка практических советов, которые помогут вам сразу же работать с Hermes Agent эффективнее. Каждый раздел посвящён отдельному аспекту — просмотрите заголовки и переходите к тому, что актуально для вас.
Как получить наилучшие результаты
Будьте конкретны в своих запросах
Расплывчатые запросы дают расплывчатые результаты. Вместо «исправь код» скажите «исправь TypeError в api/handlers.py на строке 47 — функция process_request() получает None из parse_body()». Чем больше контекста вы дадите, тем меньше итераций потребуется.
Предоставляйте контекст заранее
Начинайте запрос с ключевых деталей: пути к файлам, сообщения об ошибках, ожидаемое поведение. Одно хорошо составленное сообщение заменяет три раунда уточнений. Вставляйте traceback ошибок напрямую — агент умеет их разбирать.
Используйте файлы контекста для повторяющихся инструкций
Если вы замечаете, что повторяете одни и те же инструкции («используй табуляцию, а не пробелы», «мы используем pytest», «API находится по адресу /api/v2»), поместите их в файл AGENTS.md. Агент будет читать его автоматически в каждой сессии — ноль усилий после настройки.
Позвольте агенту использовать свои инструменты
Не пытайтесь контролировать каждый шаг. Скажите «найди и исправь падающий тест» вместо «открой tests/test_foo.py, посмотри на строку 42, затем...» У агента есть поиск по файлам, доступ к терминалу и выполнение кода — позвольте ему исследовать и итерировать.
Используйте навыки для сложных рабочих процессов
Прежде чем писать длинный запрос с объяснением, проверьте, нет ли уже готового навыка для этой задачи. Введите /skills для просмотра доступных навыков или вызовите нужный напрямую, например /axolotl или /github-pr-workflow.
Советы для опытных пользователей CLI
Многострочный ввод
Нажмите Alt+Enter, Ctrl+J или Shift+Enter, чтобы вставить новую строку без отправки. Shift+Enter работает только если терминал отправляет его как отдельное нажатие (Kitty / foot / WezTerm / Ghostty по умолчанию; iTerm2 / Alacritty / терминал VS Code после включения протокола клавиатуры Kitty). Остальные два работают в любом терминале.
Обнаружение вставки
CLI автоматически определяет многострочные вставки. Просто вставьте блок кода или traceback ошибки напрямую — каждая строка не будет отправлена как отдельное сообщение. Вставка буферизируется и отправляется как одно сообщение.
Прерывание и перенаправление
Нажмите Ctrl+C один раз, чтобы прервать агента на полуслове. Затем вы можете ввести новое сообщение, чтобы перенаправить его. Дважды нажмите Ctrl+C в течение 2 секунд для принудительного выхода. Это незаменимо, когда агент начинает идти не по тому пути.
Возобновление сессий с помощью -c
Забыли что-то из прошлой сессии? Запустите hermes -c, чтобы продолжить ровно с того места, где остановились, с полным восстановлением истории разговора. Также можно возобновить по названию: hermes -r "мой исследовательский проект".
Вставка изображений из буфера обмена
Нажмите Ctrl+V, чтобы вставить изображение из буфера обмена прямо в чат. Агент использует vision для анализа скриншотов, диаграмм, всплывающих окон ошибок или макетов интерфейса — не нужно предварительно сохранять в файл.
Автодополнение слэш-команд
Введите / и нажмите Tab, чтобы увидеть все доступные команды. Сюда входят встроенные команды (/compress, /model, /title) и все установленные навыки. Вам не нужно ничего запоминать — автодополнение Tab позаботится об этом.
Файлы контекста
AGENTS.md: Мозг вашего проекта
Создайте AGENTS.md в корне проекта с описанием архитектурных решений, соглашений о коде и специфических для проекта инструкций. Этот файл автоматически внедряется в каждую сессию, поэтому агент всегда знает правила вашего проекта.
# Project Context
- This is a FastAPI backend with SQLAlchemy ORM
- Always use async/await for database operations
- Tests go in tests/ and use pytest-asyncio
- Never commit .env files
SOUL.md: Настройка личности
Хотите, чтобы у Hermes был стабильный голос по умолчанию? Отредактируйте ~/.hermes/SOUL.md (или $HERMES_HOME/SOUL.md, если вы используете пользовательскую домашнюю директорию Hermes). Теперь Hermes автоматически создаёт начальный SOUL и использует этот глобальный файл как источник личности для всего экземпляра.
Полное руководство см. в разделе Использование SOUL.md с Hermes.
# Soul
You are a senior backend engineer. Be terse and direct.
Skip explanations unless asked. Prefer one-liners over verbose solutions.
Always consider error handling and edge cases.
Используйте SOUL.md для постоянной личности. Используйте AGENTS.md для инструкций, специфичных для проекта.
Совместимость с .cursorrules
Уже есть файл .cursorrules или .cursor/rules/*.mdc? Hermes читает и их. Не нужно дублировать соглашения о коде — они загружаются автоматически из рабочей директории.
Обнаружение
Hermes загружает корневой AGENTS.md из текущей рабочей директории при запуске сессии. Файлы AGENTS.md в поддиректориях обнаруживаются лениво во время вызовов инструментов (через subdirectory_hints.py) и внедряются в результаты инструментов — они не загружаются заранее в системный промпт.
Память и навыки
Память против навыков: что куда
Память — для фактов: ваше окружение, предпочтения, расположение проектов и то, что агент узнал о вас. Навыки — для процедур: многошаговые рабочие процессы, инструкции по инструментам и переиспользуемые рецепты. Используйте память для «что», навыки для «как».
Когда создавать навыки
Если вы нашли задачу, которая занимает 5+ шагов и вы будете повторять её, попросите агента создать навык для неё. Скажите «сохрани то, что ты только что сделал, как навык с именем deploy-staging». В следующий раз просто введите /deploy-staging, и агент загрузит полную процедуру.
Управление объёмом памяти
Объём памяти намеренно ограничен (~2 200 символов для MEMORY.md, ~1 375 символов для USER.md). Когда она заполняется, агент объединяет записи. Вы можете помочь, сказав «почисти свою память» или «замени старую заметку про Python 3.9 — теперь мы на 3.12».
Позвольте агенту запомнить
После продуктивной сессии скажите «запомни это на будущее», и агент сохранит ключевые выводы. Вы также можете быть конкретным: «сохрани в память, что наш CI использует GitHub Actions с workflow deploy.yml».
Производительность и стоимость
Не разрушайте кэш промпта
Большинство провайдеров LLM кэшируют префикс системного промпта. Если вы поддерживаете стабильность системного промпта (те же файлы контекста, та же память), последующие сообщения в сессии получают попадания в кэш, которые значительно дешевле. Избегайте смены модели или системного промпта в середине сессии.
Используйте /compress до достижения лимитов
Длинные сессии накапливают токены. Когда вы замечаете, что ответы замедляются или обрезаются, запустите /compress. Это создаёт сводку истории разговора, сохраняя ключевой контекст и значительно сокращая количество токенов. Используйте /usage, чтобы проверить текущее состояние.
Делегируйте для параллельной работы
Нужно исследовать три темы одновременно? Попросите агента использовать delegate_task с параллельными подзадачами. Каждый сабагент работает независимо со своим контекстом, и возвращаются только итоговые сводки — это значительно сокращает использование токенов в основном разговоре.
Используйте execute_code для пакетных операций
Вместо выполнения терминальных команд по одной попросите агента написать скрипт, который делает всё сразу. «Напиши Python-скрипт для переименования всех файлов .jpeg в .jpg и запусти его» дешевле и быстрее, чем переименовывать файлы по отдельности.
Выбирайте правильную модель
Используйте /model для переключения моделей в середине сессии. Используйте передовую модель (Claude Sonnet/Opus, GPT-4o) для сложных рассуждений и архитектурных решений. Переключайтесь на более быструю модель для простых задач, таких как форматирование, переименование или создание шаблонного кода.
Советы по мессенджерам
Настройка домашнего канала
Используйте /sethome в предпочитаемом чате Telegram или Discord, чтобы назначить его домашним каналом. Сюда доставляются результаты задач Cron и вывод запланированных задач. Без этого агенту некуда отправлять проактивные сообщения.
Используйте /title для организации сессий
Называйте свои сессии с помощью /title auth-refactor или /title research-llm-quantization. Именованные сессии легко найти с помощью hermes sessions list и возобновить с помощью hermes -r "auth-refactor". Безымянные сессии накапливаются и становятся неразличимыми.
Привязка через ЛС для командного доступа
Вместо ручного сбора ID пользователей для белых списков включите привязку через ЛС. Когда коллега пишет боту в личные сообщения, он получает одноразовый код привязки. Вы одобряете его командой hermes pairing approve telegram XKGH5N7P — просто и безопасно.
Режимы отображения прогресса инструментов
Используйте /verbose для контроля отображаемой активности инструментов. В мессенджерах меньше обычно значит больше — оставьте режим «new», чтобы видеть только новые вызовы инструментов. В CLI режим «all» даёт полную живую картину всех действий агента.
Безопасность
Используйте Docker для недоверенного кода
При работе с недоверенными репозиториями или запуске незнакомого кода используйте Docker или Daytona в качестве терминального бэкенда. Установите TERMINAL_BACKEND=docker в вашем .env. Деструктивные команды внутри контейнера не могут навредить вашей хост-системе.
# In your .env:
TERMINAL_BACKEND=docker
TERMINAL_DOCKER_IMAGE=hermes-sandbox:latest
Избегайте проблем с кодировками в Windows
В Windows некоторые кодировки по умолчанию (такие как cp125x) не могут представить все символы Unicode, что может вызвать UnicodeEncodeError при записи файлов в тестах или скриптах.
- Предпочитайте открытие файлов с явным указанием кодировки UTF-8:
with open("results.txt", "w", encoding="utf-8") as f:
f.write("✓ All good\n")
- В PowerShell вы также можете переключить текущую сессию на UTF-8 для вывода консоли и нативных команд:
$OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)
Это удерживает PowerShell и дочерние процессы на UTF-8 и помогает избежать сбоев, характерных для Windows.
Подумайте, прежде чем выбирать «Всегда»
Когда агент запрашивает одобрение опасной команды (rm -rf, DROP TABLE и т.д.), вам предлагаются четыре варианта: once (один раз), session (сессия), always (всегда), deny (отклонить). Хорошо подумайте, прежде чем выбирать «always» — это навсегда добавляет паттерн в белый список. Начните с «session», пока не будете уверены.
Одобрение команд — ваша страховка
Hermes проверяет каждую команду по курируемому списку опасных паттернов перед выполнением. Сюда входят рекурсивные удаления, SQL DROP, передача curl в shell и многое другое. Не отключайте это в продакшене — эта функция существует не просто так.
Используйте белые списки для ботов в мессенджерах
Никогда не устанавливайте GATEWAY_ALLOW_ALL_USERS=true на боте с доступом к терминалу. Всегда используйте платформозависимые белые списки (TELEGRAM_ALLOWED_USERS, DISCORD_ALLOWED_USERS) или привязку через ЛС, чтобы контролировать, кто может взаимодействовать с вашим агентом.
# Recommended: explicit allowlists per platform
TELEGRAM_ALLOWED_USERS=123456789,987654321
DISCORD_ALLOWED_USERS=123456789012345678
# Or use cross-platform allowlist
GATEWAY_ALLOWED_USERS=123456789,987654321
Знаете совет, который должен быть на этой странице? Откройте issue или PR — вклад сообщества приветствуется.