Replace Hermes with generic AI agent

This commit is contained in:
Ochenstarik 2026-07-15 23:42:29 +07:00
parent 1f0eaedaf1
commit 2708a0a786
5 changed files with 14 additions and 14 deletions

View file

@ -9,7 +9,7 @@
- SSH-терминал и сохранённые подключения без передачи приватных ключей серверу управления;
- группы серверов, теги, избранное и сводные предупреждения;
- явное включение и ручное отключение защищённых связей между серверами;
- ограниченный доступ автоматизированных инструментов, например Hermes, к выбранному серверу разработки;
- ограниченный доступ любого AI-агента к выбранному серверу разработки;
- маленький Linux-агент без тяжёлой панели, Docker и отдельной базы данных на каждом узле.
## Архитектура
@ -19,10 +19,10 @@ Windows client -- ограниченный SSH --> главный WireGuard Hub
^
| исходящие WireGuard-соединения
|
Hermes / Home / другие серверы
AI-агент / Home / другие серверы
```
Hub объединяет узлы в приватной подсети, но по умолчанию запрещает транзит между ними. Каждая связь `источник → цель` включается и отключается отдельно. Поэтому можно оставить `Hermes → Home`, отключив только `Hermes → Server2`. Обратное направление не появляется автоматически.
Hub объединяет узлы в приватной подсети, но по умолчанию запрещает транзит между ними. Каждая связь `источник → цель` включается и отключается отдельно. Поэтому можно оставить `AI-агент → Home`, отключив только `AI-агент → Server2`. Обратное направление не появляется автоматически.
Подробности: [архитектура](docs/architecture.md), [модель безопасности](docs/security-model.md), [план разработки](docs/roadmap.md) и [контракт Linux-установщика](docs/installer-contract.md).
@ -59,7 +59,7 @@ sudo ./ochenstarik-server-monitor-manager.sh hub
3. Откройте выбранный UDP-порт WireGuard (по умолчанию `51820`) и создайте коды узлов:
```bash
sudo ochenstarik-smm node-code hermes
sudo ochenstarik-smm node-code ai-agent
sudo ochenstarik-smm node-code home
sudo ochenstarik-smm node-code server2
```
@ -80,7 +80,7 @@ sudo ochenstarik-smm node-code server2
- отдельный ключ мониторинга и pinned `known_hosts`; код регистрации Node передаётся один раз вручную;
- отдельная идентичность для пользователя, устройства, агента и автоматизации;
- опасные действия требуют повторного подтверждения и попадают в неизменяемый аудит;
- доступ Hermes выдаётся отдельному Unix-пользователю и SSH-ключу с минимальными правами;
- доступ AI-агенту выдаётся отдельному Unix-пользователю и SSH-ключу с минимальными правами;
- отключение Link сразу удаляет разрешённую пару из nftables на Hub, не затрагивая другие связи узла.
## Лицензия и секреты

View file

@ -61,12 +61,12 @@ Active -> Expired -> Disabled
Control node передаёт каждому узлу только его часть конфигурации. Приватный WireGuard-ключ никогда не покидает узел. `Disconnect` удаляет peer и маршруты с обеих сторон; при недоступности одного узла команда остаётся обязательной и применяется при его следующем подключении.
## 3. Сценарий Hermes
## 3. Сценарий AI-агента
1. На домашнем сервере создаётся отдельный пользователь, например `hermes-dev`, без root-доступа.
1. На домашнем сервере создаётся отдельный пользователь, например `ai-agent-dev`, без root-доступа.
2. Рабочие каталоги и разрешённые команды ограничиваются Unix-правами, группами, контейнером или sandbox-профилем.
3. В Server Monitor Manager создаётся Link от сервера с Hermes к домашнему серверу только для адреса домашнего узла и SSH-порта.
4. Hermes использует собственный SSH-ключ или короткоживущий SSH-сертификат.
3. В Server Monitor Manager создаётся Link от сервера с AI-агентом к домашнему серверу только для адреса домашнего узла и SSH-порта.
4. AI-агент использует собственный SSH-ключ или короткоживущий SSH-сертификат.
5. Пользователь нажимает `Connect`; после разработки — `Disconnect`.
6. Отключение Link разрывает сетевую достижимость, а отзыв SSH-сертификата/ключа остаётся вторым независимым барьером.

View file

@ -36,13 +36,13 @@
- [ ] типизированные безопасные действия с аудитом;
- [ ] экспорт диагностики без секретов.
## Этап 4 — Links и Hermes
## Этап 4 — Links и AI-агенты
- [ ] WireGuard peer helper с минимальными привилегиями;
- [ ] policies по CIDR, протоколу, порту и TTL;
- [ ] connect/disconnect с подтверждением обоих узлов;
- [ ] обязательное отключение после reconnect;
- [ ] отдельная automation identity для Hermes;
- [ ] отдельная automation identity для AI-агента;
- [ ] интеграционные тесты kill switch и частичных отказов.
## Этап 5 — другие платформы

View file

@ -6,13 +6,13 @@
- device, agent, SSH и WireGuard identities;
- команды, терминальные сессии и аудит;
- topology серверов, адреса и метрики;
- права автоматизаций, включая Hermes.
- права автоматизаций, включая AI-агентов.
## Границы доверия
Desktop client, control node и каждый agent считаются отдельными субъектами. Компрометация одного агента не должна выдавать ключи других узлов или право создавать новые Links. Control node координирует публичные параметры и политики, но не хранит приватные WireGuard/SSH-ключи узлов.
В первом SSH-MVP control node отсутствует. Windows-клиент генерирует отдельный Ed25519-ключ, а сервер привязывает его к `restrict,command`. Этот ключ предназначен только для чтения ограниченного snapshot метрик и не используется для интерактивного терминала или Hermes.
В первом SSH-MVP control node отсутствует. Windows-клиент генерирует отдельный Ed25519-ключ, а сервер привязывает его к `restrict,command`. Этот ключ предназначен только для чтения ограниченного snapshot метрик и не используется для интерактивного терминала или AI-агента.
## Регистрация агента

View file

@ -278,7 +278,7 @@
<InfoBar
IsClosable="False"
IsOpen="True"
Message="Связь направленная: Hermes → Home разрешает Hermes обращаться к Home. Обратное направление включается отдельно."
Message="Связь направленная: AI-агент → Home разрешает агенту обращаться к Home. Обратное направление включается отдельно."
Severity="Informational" />
</StackPanel>
</Border>