sidebar_position: 1 title: "Tips & Best Practices" description: "Practical advice to get the most out of Hermes Agent — prompt tips, CLI shortcuts, context files, memory, cost optimization, and security" lang: ru


Советы и лучшие практики

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


Получение лучших результатов

Будьте конкретны в том, чего вы хотите

Расплывчатые подсказки дают расплывчатые результаты. Вместо «исправить код» скажите «исправьте ошибку типа в 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), чтобы вставить новую строку без отправки. Это позволяет вам составлять многострочные запросы, вставлять блоки кода или структурировать сложные запросы, прежде чем нажимать Enter для отправки.

Обнаружение вставки

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

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

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

Возобновить сеансы с -c

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

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

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

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

Введите / и нажмите Tab, чтобы просмотреть все доступные команды. Сюда входят встроенные команды (/compress, /model, /title) и все установленные навыки. Вам не нужно ничего запоминать — заполнение табуляции поможет вам.

:::совет Используйте /verbose для переключения между режимами отображения выходных данных инструмента: выкл. → новый → все → подробный. Режим «все» отлично подходит для наблюдения за тем, что делает агент; «Выкл.» наиболее подходит для простых вопросов и ответов.

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

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/SOUL.md (или $HERMES_HOME/SOUL.md, если вы используете собственный дом Hermes). Гермес теперь автоматически создает стартовую ДУШУ и использует этот глобальный файл в качестве источника личности для всего экземпляра.

Полное описание см. в разделе Использование 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 загружает AGENTS.md верхнего уровня из текущего рабочего каталога при запуске сеанса. Файлы подкаталога AGENTS.md обнаруживаются лениво во время вызовов инструментов (через subdirectory_hints.py) и вводятся в результаты инструментов — они не загружаются заранее в системную подсказку.

:::совет Сохраняйте контекстные файлы целенаправленными и краткими. Каждый персонаж учитывается в вашем бюджете токенов, поскольку он добавляется в каждое сообщение.

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

Память против навыков: что и куда

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

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

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

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

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

Пусть агент запомнит

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

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

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

Не нарушайте кэш команд

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

Используйте /compress, прежде чем достичь предела

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

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

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

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

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

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

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

:::совет Периодически запускайте /usage, чтобы отслеживать потребление токенов. Запустите /insights, чтобы получить более широкое представление о моделях использования за последние 30 дней.

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

Установите домашний канал

Используйте /sethome в предпочитаемом вами чате Telegram или Discord, чтобы назначить его домашним каналом. Сюда доставляются результаты заданий Cron и результаты запланированных задач. Без него агенту некуда отправлять проактивные сообщения.

Используйте /title для организации сеансов

Назовите свои сеансы с помощью /title auth-refactor или /title research-llm-quantization. Именованные сеансы легко найти с помощью hermes sessions list и возобновить с помощью hermes -r "auth-refactor". Безымянные сеансы накапливаются, и их становится невозможно отличить.

Соединение DM для командного доступа

Вместо того чтобы вручную собирать идентификаторы пользователей для белых списков, включите сопряжение DM. Когда товарищ по команде отправляет боту личное сообщение, он получает одноразовый код сопряжения. Вы подтверждаете это с помощью hermes pairing approve telegram XKGH5N7P — просто и безопасно.

Режимы отображения хода работы инструмента

Используйте /verbose, чтобы контролировать, какую активность инструмента вы видите. На платформах обмена сообщениями меньше значит лучше — оставьте значение «новое», чтобы видеть только вызовы новых инструментов. В CLI «все» дает вам наглядное представление обо всем, что делает агент.

:::совет На платформах обмена сообщениями сеансы автоматически сбрасываются после простоя (по умолчанию: 24 часа) или ежедневно в 4 часа утра. Настройте каждую платформу в ~/.hermes/config.yaml, если вам нужны более длительные сеансы.

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

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

При работе с ненадежными репозиториями или запуске незнакомого кода используйте Docker или Daytona в качестве серверной части терминала. Установите TERMINAL_BACKEND=docker в своем .env. Деструктивные команды внутри контейнера не могут нанести вред вашей хост-системе.

# In your .env:
TERMINAL_BACKEND=docker
TERMINAL_DOCKER_IMAGE=hermes-sandbox:latest

Избегайте ошибок кодирования Windows

В Windows некоторые кодировки по умолчанию (например, cp125x) не могут представлять все символы Юникода, что может привести к появлению UnicodeEncodeError при записи файлов в тестах или сценариях.

with open("results.txt", "w", encoding="utf-8") as f:
    f.write("✓ All good\n")
$OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)

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

Проверьте, прежде чем выбрать «Всегда»

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

Одобрение команд — ваша защита

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

:::предупреждение При запуске в серверной части контейнера (Docker, Singularity, Modal, Daytona) проверки опасных команд пропускаются, поскольку контейнер является границей безопасности. Убедитесь, что ваши образы контейнеров правильно заблокированы.

Использование разрешенных списков для ботов обмена сообщениями

Никогда не устанавливайте 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

Есть совет, который должен быть на этой странице? Откройте проблему или сделайте пиар — вклад сообщества приветствуется.