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

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» * Подтверждение команд — ваша страховка * Используйте белые списки для ботов обмена сообщениями