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

Tips

На этой странице Подборка практических советов для быстрого повышения эффективности работы с Hermes Agent. Каждый раздел посвящён отдельному аспекту — просмотрите заголовки и переходите к тому, что актуально для вас.


Достижение наилучших результатов​

Будьте конкретны в своих запросах​

Расплывчатые запросы приводят к расплывчатым результатам. Вместо «исправь код» скажите «исправь TypeError в api/handlers.py на 47-й строке — функция process_request() получает None от parse_body()». Чем больше контекста вы дадите, тем меньше итераций потребуется.

Предоставляйте контекст сразу​

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

Используйте контекстные файлы для повторяющихся инструкций​

Если вы замечаете, что повторяете одни и те же инструкции («используй табуляцию, а не пробелы», «мы используем pytest», «API находится по адресу /api/v2»), поместите их в файлAGENTS.md`. Агент читает его автоматически в каждой сессии — после настройки никаких усилий.

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

Не пытайтесь контролировать каждый шаг. Скажите «найди и исправь падающий тест» вместо «открой tests/test_foo.py, посмотри на строку 42, затем...». У агента есть поиск по файлам, доступ к терминалу и выполнение кода — дайте ему исследовать и итерировать.

Используйте навыки для сложных рабочих процессов​

Прежде чем писать длинный запрос с объяснением, как что-то сделать, проверьте, нет ли уже навыка для этого. Введите /skills для просмотра доступных навыков или просто вызовите нужный напрямую, например /axolotl или /github-pr-workflow.

Советы для продвинутых пользователей CLI​

Многострочный ввод​

Нажмите Alt+Enter (или Ctrl+J), чтобы вставить новую строку без отправки. Это позволяет составлять многострочные запросы, вставлять блоки кода или структурировать сложные запросы перед отправкой.

Определение вставки​

CLI автоматически определяет многострочные вставки. Просто вставьте блок кода или трассировку ошибки напрямую — она не будет отправлена построчно. Вставка буферизируется и отправляется как одно сообщение.

Прерывание и перенаправление​

Нажмите Ctrl+C один раз, чтобы прервать агента во время ответа. Затем вы можете ввести новое сообщение, чтобы перенаправить его. Двойное нажатие Ctrl+C в течение 2 секунд приводит к принудительному выходу. Это незаменимо, когда агент начинает идти по неверному пути.

Возобновление сессий с -c​

Забыли что-то из прошлой сессии? Запустите hermes -c, чтобы возобновить сессию ровно с того места, где вы остановились, с полным восстановлением истории разговора. Вы также можете возобновить по заголовку: hermes -r "мой исследовательский проект".

Вставка изображений из буфера обмена​

Нажмите Ctrl+V, чтобы вставить изображение из буфера обмена прямо в чат. Агент использует зрение для анализа скриншотов, диаграмм, всплывающих окон с ошибками или макетов интерфейса — не нужно сначала сохранять в файл.

Автодополнение слеш-команд​

Введите / и нажмите Tab, чтобы увидеть все доступные команды. Сюда входят встроенные команды (/compress, /model, /title) и все установленные навыки. Вам не нужно ничего запоминать — автодополнение по Tab всё подскажет. tip Используйте /verbose для переключения режимов отображения вывода инструментов: off → new → all → verbose. Режим «all» отлично подходит для наблюдения за действиями агента; «off» — самый чистый для простых вопросов и ответов.

Контекстные файлы​

AGENTS.md: Мозг вашего проекта​

Создайте AGENTS.md в корне вашего проекта с архитектурными решениями, соглашениями по коду и инструкциями, специфичными для проекта. Этот файл автоматически внедряется в каждую сессию, так что агент всегда знает правила вашего проекта. [code] # Контекст проекта - Это бэкенд на FastAPI с SQLAlchemy ORM - Всегда используй async/await для операций с базой данных - Тесты находятся в tests/ и используют pytest-asyncio - Никогда не коммить .env файлы

[/code]

SOUL.md: Настройка личности​

Хотите, чтобы у Hermes был стабильный голос по умолчанию? Отредактируйте ~/.hermes/SOUL.md (или $HERMES_HOME/SOUL.md, если вы используете пользовательскую домашнюю директорию Hermes). Hermes теперь автоматически создаёт начальный SOUL и использует этот глобальный файл как источник личности для всего экземпляра. Полное руководство см. в разделе Использование SOUL.md с Hermes. [code] # Личность Ты — старший бэкенд-инженер. Будь краток и прямолинеен. Не давай пояснений, если не просят. Предпочитай однострочные решения многословным. Всегда учитывай обработку ошибок и граничные случаи.

[/code] Используйте SOUL.md для долговременной настройки личности. Используйте AGENTS.md для инструкций, специфичных для проекта.

Совместимость с .cursorrules​

Уже есть файл .cursorrules или .cursor/rules/*.mdc? Hermes читает и их. Нет необходимости дублировать ваши соглашения по коду — они загружаются автоматически из рабочей директории.

Обнаружение​

Hermes загружает AGENTS.md из корня текущей рабочей директории при запуске сессии. Файлы AGENTS.md в поддиректориях обнаруживаются лениво во время вызовов инструментов (через subdirectory_hints.py) и внедряются в результаты работы инструментов — они не загружаются заранее в системный промпт. tip Делайте контекстные файлы лаконичными. Каждый символ учитывается в вашем токенном бюджете, поскольку они внедряются в каждое сообщение.

Память и навыки​

Память vs. Навыки: что куда относится​

Память — для фактов: ваше окружение, предпочтения, расположение проектов и то, что агент узнал о вас. Навыки — для процедур: многошаговые рабочие процессы, инструкции для конкретных инструментов и переиспользуемые рецепты. Используйте память для «что», навыки — для «как».

Когда создавать навыки​

Если вы обнаружили задачу, которая требует 5+ шагов и вы будете выполнять её снова, попросите агента создать для неё навык. Скажите «сохрани то, что ты только что сделал, как навык с именем deploy-staging»». В следующий раз просто введите/deploy-staging`, и агент загрузит полную процедуру.

Управление объёмом памяти​

Объём памяти намеренно ограничен (~2 200 символов для MEMORY.md, ~1 375 символов для USER.md). Когда он заполняется, агент консолидирует записи. Вы можете помочь, сказав «очисти память» или «замени старую заметку о Python 3.9 — мы теперь на 3.12».

Позвольте агенту запоминать​

После продуктивной сессии скажите «запомни это для следующего раза», и агент сохранит ключевые выводы. Вы также можете быть конкретны: «сохрани в память, что наш CI использует GitHub Actions с рабочим процессом deploy.yml». warning Память — это замороженный снимок: изменения, сделанные во время сессии, не появляются в системном промпте до начала следующей сессии. Агент записывает на диск немедленно, но кеш промпта не инвалидируется во время сессии.

Производительность и стоимость​

Не ломайте кеш промпта​

Большинство LLM-провайдеров кешируют префикс системного промпта. Если вы поддерживаете стабильность системного промпта (те же контекстные файлы, та же память), последующие сообщения в сессии получают попадания в кеш, что значительно дешевле. Избегайте смены модели или системного промпта в середине сессии.

Используйте /compress до достижения лимитов​

Длинные сессии накапливают токены. Когда вы замечаете, что ответы замедляются или обрезаются, выполните /compress. Это суммирует историю разговора, сохраняя ключевой контекст и значительно сокращая количество токенов. Используйте /usage, чтобы проверить текущее состояние.

Делегирование для параллельной работы​

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

Используйте execute_code для пакетных операций​

Вместо того чтобы выполнять команды терминала по одной, попросите агента написать скрипт, который делает всё сразу. «Напиши Python-скрипт для переименования всех файлов .jpeg в .jpg и запусти его» — дешевле и быстрее, чем переименовывать файлы по одному.

Выбирайте правильную модель​

Используйте /model для переключения моделей в середине сессии. Используйте前沿ные модели (Claude Sonnet/Opus, GPT-4o) для сложных рассуждений и архитектурных решений. Переключайтесь на более быструю модель для простых задач вроде форматирования, переименования или генерации шаблонного кода. tip Периодически выполняйте /usage для просмотра потребления токенов. Выполните /insights для более широкого обзора шаблонов использования за последние 30 дней.

Советы по обмену сообщениями​

Установка домашнего канала​

Используйте /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» даёт удовлетворительное живое отображение всего, что делает агент. tip На платформах обмена сообщениями сессии автоматически сбрасываются после бездействия (по умолчанию: 24 часа) или ежедневно в 4 утра. Настройте для каждой платформы в ~/.hermes/config.yaml, если нужны более длинные сессии.

Безопасность​

Используйте Docker для недоверенного кода​

При работе с недоверенными репозиториями или запуске незнакомого кода используйте Docker или Daytona в качестве терминального бэкенда. Установите TERMINAL_BACKEND=docker в вашем .env. Разрушительные команды внутри контейнера не могут навредить вашей хост-системе. [code] # В вашем .env: TERMINAL_BACKEND=docker TERMINAL_DOCKER_IMAGE=hermes-sandbox:latest

[/code]

Избегайте проблем с кодировкой в Windows​

В Windows некоторые кодировки по умолчанию (например, cp125x) не могут представить все символы Unicode, что может вызвать UnicodeEncodeError при записи файлов в тестах или скриптах. * Открывайте файлы с явным указанием кодировки UTF-8:

[code] with open("results.txt", "w", encoding="utf-8") as f: f.write("✓ Всё хорошо\n")

[/code] * В PowerShell вы также можете переключить текущую сессию на UTF-8 для вывода консоли и нативных команд:

[code] $OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)

[/code] Это сохраняет PowerShell и дочерние процессы в UTF-8 и помогает избежать сбоев, характерных для Windows.

Думайте, прежде чем выбирать «Always»​

Когда агент запрашивает подтверждение опасной команды (rm -rf, DROP TABLE и т.д.), у вас есть четыре варианта: once, session, always, deny. Хорошо подумайте, прежде чем выбирать «always» — это навсегда добавляет этот шаблон в белый список. Начните с «session», пока не будете уверены.

Подтверждение команд — ваша страховка​

Hermes проверяет каждую команду на соответствие курируемому списку опасных шаблонов перед выполнением. Это включает рекурсивное удаление, SQL DROP, передачу curl в shell и многое другое. Не отключайте это в продакшене — эта функция существует не просто так. warning При работе в контейнерном бэкенде (Docker, Singularity, Modal, Daytona) проверки опасных команд пропускаются, поскольку контейнер является границей безопасности. Убедитесь, что ваши образы контейнеров должным образом защищены.

Используйте белые списки для ботов обмена сообщениями​

Никогда не устанавливайте GATEWAY_ALLOW_ALL_USERS=true для бота с доступом к терминалу. Всегда используйте белые списки для конкретных платформ (TELEGRAM_ALLOWED_USERS, DISCORD_ALLOWED_USERS) или связывание через ЛС, чтобы контролировать, кто может взаимодействовать с вашим агентом. [code] # Рекомендуется: явные белые списки для каждой платформы TELEGRAM_ALLOWED_USERS=123456789,987654321 DISCORD_ALLOWED_USERS=123456789012345678

# Или кроссплатформенный белый список
GATEWAY_ALLOWED_USERS=123456789,987654321

[/code]


Есть совет, который должен быть на этой странице? Откройте issue или PR — вклад сообщества приветствуется. * Достижение наилучших результатов * Будьте конкретны в своих запросах * Предоставляйте контекст сразу * Используйте контекстные файлы для повторяющихся инструкций * Позвольте агенту использовать его инструменты * Используйте навыки для сложных рабочих процессов * Советы для продвинутых пользователей CLI * Многострочный ввод * Определение вставки * Прерывание и перенаправление * Возобновление сессий с -c * Вставка изображений из буфера обмена * Автодополнение слеш-команд * Контекстные файлы * AGENTS.md: Мозг вашего проекта * SOUL.md: Настройка личности * Совместимость с .cursorrules * Обнаружение * Память и навыки * Память vs. Навыки: что куда относится * Когда создавать навыки * Управление объёмом памяти * Позвольте агенту запоминать * Производительность и стоимость * Не ломайте кеш промпта * Используйте /compress до достижения лимитов * Делегирование для параллельной работы * Используйте execute_code для пакетных операций * Выбирайте правильную модель * Советы по обмену сообщениями * Установка домашнего канала * Используйте /title для организации сессий * Связывание через ЛС для доступа команды * Режимы отображения прогресса инструментов * Безопасность * Используйте Docker для недоверенного кода * Избегайте проблем с кодировкой в Windows * Думайте, прежде чем выбирать «Always» * Подтверждение команд — ваша страховка * Используйте белые списки для ботов обмена сообщениями