Файлы инстанса
Инстанс — это каталог с данными: характер агента, память, скиллы, тикеты, журналы. Ядро и тулы читают его с диска, поэтому правка файла действует без пересборки.
Каталоги и переменные
| что | по умолчанию | переменная |
|---|---|---|
| данные | ~/.local/share/snens (%APPDATA%\snens на Windows) | SNENS_DATA_DIR, XDG_DATA_HOME |
| конфиг | ~/.config/snens/config.toml | SNENS_CONFIG_DIR, SNENS_CONFIG |
| сессии | <данные>/sessions | ключ sessions_dir |
| скиллы | <данные>/skills | skills_dir |
| тикеты | <данные>/tickets | tickets_dir |
| ящик подагентов | <данные>/mail | mail_dir |
| тулы | <данные>/tools, иначе tools/ рядом с бинарём ядра | tools_dir |
Второй инстанс — это не второй бинарник, а свои каталоги и свой конфиг: SNENS_DATA_DIR=/srv/exp SNENS_CONFIG_DIR=/srv/exp/cfg snens tui.
Пути внутри данных
| путь | что | кто правит |
|---|---|---|
soul.md | кто я: тон, рамки, стиль | человек |
user.md | кто человек: язык, город, привычки работы | человек |
memory.md | карточка долгих фактов | агент |
skills/<имя>/SKILL.md | скилл: front-matter и тело | агент |
skills/<имя>/references/*.md | детали скилла, читаются по требованию | агент |
skills/<имя>/scripts/* | запускаемые проверки скилла | агент |
tickets/*.md | тикеты: неудобства и возможности | агент |
sessions/<id>.jsonl | журнал сессии, append-only | никто (только дописывание) |
sessions/<id>.out/ | дампы полного вывода, LIVE_CONTEXT.json, cwd, attach/ | ядро и агент (зеркало) |
mail/<id>/new/*.json | входящие: вопросы, ответы, steer | пишут родитель и ребёнок |
mail/<id>/read/ | прочитанные сообщения | ход сессии |
mail/<id>/children/<id> | pid ребёнка: без него не отличить «снят» от «думает» | харнесс |
Что уезжает в каждый ход
soul.md, user.md, memory.md читаются заново при каждой сборке промпта и приклеиваются к системному тексту целиком. Рядом едет оглавление скиллов (только name и description) и строка рабочего каталога. Тела скиллов, references/, тикеты и журналы в префикс не попадают — их читают по требованию.
Отсюда лимит memory.md: около 4 КБ. Всё, что там лежит, оплачивается на каждом ходу любой сессии, включая те, где эти факты не нужны. Поэтому в карточку идёт только то, что нужно всегда и не добывается разведкой за минуту; остальное — указателем: «проекты и их грабли — там-то».
soul.md и user.md держатся короткими по той же причине; подробности про человека, его проекты и железо — в скиллах и тикетах, куда промпт не тянется.
Почему файлы, а не код
Характер и память меняются чаще, чем харнесс. Файл в каталоге данных правится руками и агентом, версионируется отдельно от исходников и переносится между машинами копированием каталога. Ничего из этого не требует компиляции.
Дальше: скиллы · долгая память · контекст