EN | RU
Этот сетап обслуживают два AI с разным уровнем доверия:
- Облачный копилот (Claude Code по SSH): проектирует архитектуру, пишет и ревьюит скиллы агента, чинит конфиги, дебажит хосты. Всё, что он читает, становится API-трафиком к третьей стороне, поэтому он считается недоверенным читателем.
- Локальный агент (hermes-agent + локальная LLM на GB10): ведёт хозяйство - Telegram, умный дом, дашборды здоровья, семейные журналы. Инференс локальный, его контекст не покидает LAN, поэтому читать он может всё.
Асимметрия и есть весь дизайн: наставник учит агента работать, но никогда не читает данные, с которыми агент работает. Как бы вы ни относились к обращению облачных вендоров с данными, чистое решение - чтобы приватные байты вообще не попадали в облачный промпт.
- память и профили агента (
MEMORY.md,memories/,sessions/,logs/) - это жизнь семьи в текстовом виде - переписки (Telegram)
config.yamlи.env- токены, ключи и даже URL (URL Home Assistant = геолокация)- состояние Home Assistant в любом виде: присутствие людей, списки устройств, метрики здоровья с носимых устройств
- базы здоровья, журналы еды, семейные леджеры, папки с фото
- коварные боковые каналы: каталог данных bot-API, где имена подкаталогов - ЭТО токены ботов; DEBUG-логи, дампящие auth-заголовки. Даже листинг каталога может быть утечкой.
- Правила загружаются автоматически. Хук
UserPromptSubmitраспознаёт задачи, связанные с агентом, и вкачивает файл правил в сессию до начала работы. Модель обязана подтвердить это sha-штампованной строкой-маркером первой строкой вывода - человек видит два независимых сигнала (баннер хука + подтверждение модели), что правила активны. Правила, которые держатся на «не забыть», ломаются; хуки - нет. - Только агрегаты в шелле. На любом файле, где могут быть персональные данные, разрешены только не печатающие строки команды:
wc -l,grep -c,grep -ilE(только имена файлов),grep -oE(только совпавший токен),sha256sum. Никогдаcat/head/tail/less, никогда печатающие строкиgrep/awk/sed. Имена и структура (ls,find) - можно; содержимое - нельзя. - Запись конфига без чтения. Изменения конфига агента - через
hermes config set KEY VALUE; проверка -grep -oEпо ожидаемому токену. Файл конфига не открывается никогда - в нём секреты. - Делегирование вместо доступа. Когда задаче правда нужны приватные данные, копилот формулирует точный вопрос, а локальный агент отвечает очищенным результатом: агрегаты, статусы, имена сущностей без значений. «Сработала ли автоматизация сегодня - да/нет» вместо дампа истории геолокации.
- Секреты живут в vault. vaultwarden +
bw serve+ маленький CLIsecretна хосте агента; агент сам достаёт свои креды в рантайме. Копилот оперирует именами секретов, никогда значениями. На NAS конфиги рендерятся из env-файла в tmpfs - в docker-дереве нет секретов открытым текстом. - Нарушения - громкие. Случайно прочитать приватное = инцидент: немедленно остановиться, доложить человеку, никакого тихого «доделаю». Зубы у правил выросли ровно из одного такого инцидента - геномная сессия слила в облачный контекст три значения генотипа через беспечные подглядывания
head/awk. Итог: вечное правило «только агрегаты» для генотип-файлов и протокол инцидента выше.
Переносимая версия этих правил, из которой вычищены все имена хостов и продуктов - это собственный скилл копилота: skills/confidential-data-handling/.
- Геномный проект: копилот - только архитектор; пайплайны проектируются и ревьюятся абстрактно, значения генотипов не попадают в контекст (только
wc -l,grep -c, чексуммы,bcftools stats). - База здоровья: схемы и число записей - можно, значения полей - нет.
- Всё новое по умолчанию под запретом: если файл может быть приватным - считай, что он приватный.
- Наставнику нужна форма данных, а не данные: схемы, счётчики, коды возврата, тексты ошибок. Этого почти всегда достаточно, чтобы проектировать и дебажить.
- Запрет по умолчанию лучше редактирования: не «прочитай и вычисти», а просто не читай.
- Каждая сторона делает то, что умеет лучше всех: передовая модель проектирует, локальная - трогает.