Личность и SOUL.md

Личность Hermes Agent полностью настраиваема. SOUL.md — это основная идентичность агента. Этот файл стоит первым в системном промпте и определяет, кем является агент.

  • SOUL.md — постоянный файл персоны, который живет в HERMES_HOME и служит идентичностью агента (слот №1 в системном промпте).
  • Встроенные или пользовательские пресеты /personality — наложения на системный промпт на уровне сессии.

Если вы хотите изменить характер Hermes или полностью заменить его другой персоной, отредактируйте SOUL.md.

Как работает SOUL.md

Hermes автоматически создает стандартный SOUL.md по пути:

~/.hermes/SOUL.md

Точнее, он использует HERMES_HOME текущего экземпляра, так что если вы запускаете Hermes с пользовательской домашней директорией, путь будет таким:

$HERMES_HOME/SOUL.md

Важное поведение

  • SOUL.md — это первичная идентичность агента. Он занимает слот №1 в системном промпте, заменяя стандартную идентичность.
  • Hermes автоматически создает начальный SOUL.md, если он еще не существует.
  • Существующие файлы SOUL.md никогда не перезаписываются.
  • Hermes загружает SOUL.md только из HERMES_HOME.
  • Hermes не ищет SOUL.md в текущем рабочем каталоге.
  • Если SOUL.md пуст или не может быть загружен, Hermes откатывается к встроенной идентичности по умолчанию.
  • Если в SOUL.md есть контент, он вставляется «как есть» после сканирования на безопасность и обрезки.
  • SOUL.md не дублируется в разделе контекстных файлов — он появляется только один раз в качестве идентичности.

Это делает SOUL.md персональной идентичностью для конкретного пользователя или экземпляра, а не просто дополнительным наслоением.

Почему именно такой дизайн

Это делает личность агента предсказуемой.

Если бы Hermes загружал SOUL.md из любой директории, в которой вы его запустили, личность могла бы неожиданно меняться при переходе между проектами. Загрузка только из HERMES_HOME гарантирует, что личность принадлежит самому экземпляру Hermes.

Это также упрощает обучение пользователей:

  • «Отредактируйте ~/.hermes/SOUL.md, чтобы изменить личность Hermes по умолчанию».

Где его редактировать

Для большинства пользователей:

~/.hermes/SOUL.md

Если вы используете пользовательский путь:

$HERMES_HOME/SOUL.md

Что должно быть в SOUL.md?

Используйте его для долгосрочных указаний по характеру и поведению, таких как:

  • тон общения
  • стиль коммуникации
  • степень прямолинейности
  • стиль взаимодействия по умолчанию
  • стилистические запреты (чего избегать)
  • как Hermes должен вести себя в случае неуверенности, несогласия или двусмысленности

Старайтесь НЕ использовать его для:

  • разовых инструкций по проекту
  • путей к файлам
  • соглашений конкретного репозитория
  • временных деталей рабочего процесса

Для этого предназначен файл AGENTS.md, а не SOUL.md.

Хорошее содержание SOUL.md

Хороший файл SOUL:

  • стабилен в разных контекстах
  • достаточно широк, чтобы применяться во многих беседах
  • достаточно конкретен, чтобы ощутимо формировать голос агента
  • сфокусирован на общении и идентичности, а не на конкретных задачах

Пример

# Личность

Ты — прагматичный старший инженер с отличным вкусом.
Ты ценишь истину, ясность и пользу выше напускной вежливости.

## Стиль
- Будь прямым, но не холодным
- Предпочитай суть «воде»
- Возражай, если идея кажется неудачной
- Честно признавай неуверенность
- Давай компактные объяснения, если не требуется глубина

## Чего избегать
- Подхалимства
- Хайповых словечек
- Повторения неверных формулировок пользователя
- Излишнего разжевывания очевидных вещей

## Техническая позиция
- Простые системы лучше «умных»
- Заботься об операционной реальности, а не об идеализированной архитектуре
- Относись к граничным случаям как к части дизайна, а не как к мусору

Что Hermes вставляет в промпт

Содержимое SOUL.md попадает прямиком в слот №1 системного промпта — позицию идентичности агента. Никаких дополнительных словесных оболочек вокруг него не добавляется.

Контент проходит через:

  • сканирование на промпт-инъекции
  • обрезку, если файл слишком велик

Если файл пуст, содержит только пробелы или не может быть прочитан, Hermes откатывается к встроенной идентичности: «Вы — Hermes Agent, интеллектуальный помощник с ИИ, созданный Nous Research...». Этот откат также применяется, когда установлен флаг skip_context_files (например, в контекстах субагентов или делегирования).

Сканирование на безопасность

SOUL.md, как и другие контекстные файлы, перед включением сканируется на наличие паттернов промпт-инъекций.

Поэтому всё же старайтесь фокусироваться на персоне и характере, а не на попытках внедрить странные мета-инструкции.

SOUL.md против AGENTS.md

Это самое важное различие.

SOUL.md

Используйте для:

  • идентичности
  • тона общения
  • стиля
  • настроек коммуникации по умолчанию
  • поведения на уровне личности

AGENTS.md

Используйте для:

  • архитектуры проекта
  • соглашений по кодированию
  • предпочтений в инструментах
  • рабочих процессов конкретного репозитория
  • команд, портов, путей, заметок по развертыванию

Простое правило:

  • если это должно следовать за вами повсюду, это место в SOUL.md
  • если это относится к проекту, это место в AGENTS.md

SOUL.md против /personality

SOUL.md — это ваша постоянная личность по умолчанию.

/personality — это наложение на уровне сессии, которое изменяет или дополняет текущий системный промпт.

То есть:

  • SOUL.md = базовый голос
  • /personality = временное переключение режима

Примеры:

  • держите прагматичный SOUL по умолчанию, и используйте /personality teacher для обучающей беседы
  • держите краткий SOUL, и используйте /personality creative для мозгового штурма

Встроенные личности

Hermes поставляется со встроенными личностями, на которые можно переключиться командой /personality.

ИмяОписание
helpfulДружелюбный универсальный помощник
conciseКраткие ответы по существу
technicalДетальный и точный технический эксперт
creativeИнновационное, нестандартное мышление
teacherТерпеливый наставник с понятными примерами
kawaiiМилые выражения, звездочки и энтузиазм ★
catgirlНеко-тян с кошачьими повадками, ня~
pirateКапитан Гермес, технически подкованный флибустьер
shakespeareБардовская проза с драматическим оттенком
surferРасслабленный стиль «своего парня»
noirНуарный детектив из старого кино
uwuМаксимально милый uwu-стиль
philosopherГлубокие размышления над каждым вопросом
hypeМАКСИМУМ ЭНЕРГИИ И ЭНТУЗИАЗМА!!!

Переключение личности командами

CLI

/personality
/personality concise
/personality technical

Мессенджеры

/personality teacher

Это удобные надстройки, но ваш глобальный SOUL.md по-прежнему задает основной характер Hermes, если надстройка не меняет его радикально.

Пользовательские личности в конфиге

Вы также можете определить именованные пользовательские личности в ~/.hermes/config.yaml в разделе agent.personalities.

agent:
personalities:
codereviewer: >
Вы — дотошный ревьюер кода. Ищите баги, проблемы безопасности,
производительности и сомнительные архитектурные решения. Будьте точны и конструктивны.

Затем активируйте её командой:

/personality codereviewer

Оптимальная настройка выглядит так:

  1. Ведите один глобальный SOUL.md в ~/.hermes/SOUL.md
  2. Описывайте специфику проекта в AGENTS.md
  3. Используйте /personality только для временной смены режима работы

Это обеспечит вам:

  • стабильный и узнаваемый голос агента
  • поведение, специфичное для каждого проекта, там, где оно уместно
  • гибкий контроль, когда это необходимо

Как личность взаимодействует с полным промптом

В упрощенном виде стек промптов включает:

  1. SOUL.md (идентичность агента или встроенная версия, если SOUL.md недоступен)
  2. Инструкции по работе с инструментами
  3. Контекст памяти и профиль пользователя
  4. Руководство по навыкам (skills)
  5. Контекстные файлы (AGENTS.md, .cursorrules)
  6. Временная метка (timestamp)
  7. Подсказки по форматированию для конкретной платформы
  8. Опциональные наложения, такие как /personality

SOUL.md — это фундамент, на котором строится всё остальное.

Оформление CLI против характера общения

Характер общения и внешний вид CLI настраиваются отдельно:

  • SOUL.md, agent.system_prompt и /personality влияют на то, КАК говорит Hermes
  • display.skin и /skin влияют на то, КАК выглядит Hermes в терминале

О внешнем виде терминала читайте в разделе Оболочки и темы (Skins).