Личность агента (SOUL.md) и контекстные файлы
Источник
- https://hermes-agent.nousresearch.com/docs/user-guide/features/personality
- https://hermes-agent.nousresearch.com/docs/user-guide/features/context-files
1. SOUL.md — основа личности агента
SOUL.md — файл, определяющий базовую личность, тон и стиль общения Hermes.
Расположение:
Windows: %LOCALAPPDATA%\hermes\SOUL.md
Linux: ~/.hermes/SOUL.md
Как работает:
- Hermes автоматически создаёт
SOUL.mdпри первом запуске (если не существует) - Существующий файл никогда не перезаписывается
- Загружается только из
HERMES_HOME(не из текущей директории) - Если файл пустой или не читается — используется встроенная личность по умолчанию
2. Порядок инъекции в системный промпт
SOUL.md занимает слот #1 в системном промпте — это первое, что видит модель:
- SOUL.md (личность агента)
- Поведение, связанное с инструментами
- Контекст памяти/пользователя
- Руководство по скиллам
- Контекстные файлы (AGENTS.md, .cursorrules)
- Временная метка
- Подсказки форматирования платформы
- Опциональные наложения (/personality)
Важно: SOUL.md не дублируется в секции контекстных файлов — появляется только один раз как личность.
3. Что писать в SOUL.md
Подходит для SOUL.md:
- Тон общения
- Стиль коммуникации
- Уровень прямоты
- Стиль взаимодействия по умолчанию
- Чего избегать стилистически
- Как обрабатывать неопределённость, разногласия, двусмысленность
Не подходит для SOUL.md:
- Инструкции для конкретного проекта
- Пути к файлам
- Конвенции репозитория
- Временные детали рабочего процесса
Пример SOUL.md:
4. SOUL.md vs AGENTS.md
| Аспект | SOUL.md | AGENTS.md |
|---|---|---|
| Назначение | Личность, тон, стиль | Архитектура проекта, конвенции |
| Скоуп | Глобальный (все проекты) | Проектный |
| Примеры | "Будь прямым", "Избегай пустых слов" | "Используй TypeScript strict" |
| Где хранить | %LOCALAPPDATA%\hermes\SOUL.md | В корне проекта |
Правило: Если должно следовать за вами везде — в SOUL.md. Если принадлежит проекту — в AGENTS.md.
5. Встроенные личности (/personality)
Hermes поставляется с набором встроенных личностей для переключения:
| Название | Описание |
|---|---|
helpful | Дружелюбный, универсальный ассистент |
concise | Краткий, по делу |
technical | Детальный технический эксперт |
creative | Креативное мышление за рамками |
teacher | Терпеливый преподаватель с примерами |
kawaii | Милые выражения, блёстки и энтузиазм ★ |
catgirl | Неко-тян с кошачьими выражениями, nya~ |
pirate | Капитан Hermes, технически подкованный пират |
shakespeare | Бардовская проза с драматическим напором |
surfer | Спокойный, дружеский стиль |
noir | Детективная подача в стиле нуар |
uwu | Максимальная милота с uwu-речью |
philosopher | Глубокие размышления на каждый запрос |
hype | МАКСИМАЛЬНАЯ ЭНЕРГИЯ И ЭНТУЗИАЗМ!!! |
6. Смена личности
В CLI:
В мессенджерах:
Кастомные личности в конфиге:
Использование: /personality codereviewer
7. SOUL.md vs /personality
| Аспект | SOUL.md | /personality |
|---|---|---|
| Длительность | Постоянная | Сессионная |
| Назначение | Базовая личность | Временная смена режима |
| Пример | "Я прямой инженер" | "/personality teacher" для обучения |
Рекомендуемый workflow:
- Поддерживайте осмысленный глобальный
SOUL.md - Проектные инструкции в
AGENTS.md /personalityтолько для временных режимов
8. Контекстные файлы
Приоритет загрузки (только один тип за сессию):
.hermes.md(наивысший приоритет)AGENTS.mdCLAUDE.md.cursorrules
SOUL.md загружается всегда независимо от остальных.
Поддерживаемые файлы:
| Файл | Назначение | Обнаружение |
|---|---|---|
.hermes.md / HERMES.md | Инструкции проекта (наивысший приоритет) | Поиск до git root |
AGENTS.md | Инструкции, конвенции, архитектура | CWD + поддиректории |
CLAUDE.md | Контекст Claude Code | CWD + поддиректории |
SOUL.md | Глобальная личность | Только HERMES_HOME |
.cursorrules | Конвенции Cursor IDE | Только CWD |
9. AGENTS.md — контекст проекта
Пример AGENTS.md:
10. Прогрессивное обнаружение поддиректорий
Hermes обнаруживает контекстные файлы по мере навигации по проекту:
Преимущества:
- Нет раздутия системного промпта
- Сохраняется кеш промпта
Каждая поддиректория проверяется не более одного раза за сессию.
11. Безопасность: защита от prompt injection
Все контекстные файлы сканируются перед включением. Обнаруживаются:
- Попытки переопределения инструкций
- Паттерны обмана
- Скрытые HTML-комментарии
- Скрытые div-элементы
- Эксплуатация учётных данных
При обнаружении угрозы файл блокируется:
12. Лимиты размеров
| Параметр | Значение |
|---|---|
| Макс. символов на файл | context_file_max_chars (по умолчанию 20,000, ~7,000 токенов) |
| Сtruncate начала | 70% |
| Сtruncate конца | 20% |
| Маркер транкации | 10% (показывает количество символов) |
При превышении лимита:
13. Внешний вид CLI vs разговорная личность
Это разные вещи:
| Аспект | Управление |
|---|---|
| Разговорная личность | SOUL.md, agent.system_prompt, /personality |
| Внешний вид терминала | display.skin, /skin |
Для внешнего вида терминала см. раздел "Skins & Themes".