# Node Guardian & Node Steward **Дата:** 29 листопада 2025 **Статус:** Впроваджено (Task 038) У екосистемі DAARION кожна нода має два ключові "обличчя" — спеціалізованих агентів, які відповідають за її функціонування та представлення у мережі. --- ## 1. Ролі ### 🛡️ Node Guardian (Технічний наглядач) **Відповідальність:** * Моніторинг інфраструктури (CPU, RAM, Disk, GPU). * Стан сервісів (Docker, Systemd). * Безпека та алерти. * Автоматична реакція на інциденти (в межах дозволеного). **Тип агента:** `node_guardian` (або `infra_monitor`). ### 🗣️ Node Steward (Хазяїн ноди) **Відповідальність:** * Публічне представлення ноди як "громадянина". * Комунікація з іншими учасниками мережі. * Управління конфігурацією та правилами (Governance). * "Human Interface" до ноди. **Тип агента:** `node_steward` (або `infra_ops`). --- ## 2. Як призначити Агенти автоматично визначаються системою (`city-service`) за наступним алгоритмом: 1. **Пошук за типом (`kind`):** * Система шукає агентів, прив'язаних до цієї ноди (`node_id`), які мають `kind = 'node_guardian'` або `'node_steward'`. 2. **Fallback (сумісність):** * Якщо спеціалізованих типів не знайдено, система шукає `infra_monitor` (як Guardian) та `infra_ops` (як Steward). 3. **Node Cache (Legacy):** * Якщо динамічний пошук не дав результатів, використовується закешоване значення з таблиці `node_registry.nodes` (якщо воно було встановлено вручну). ### SQL для призначення (приклад) ```sql -- Призначити Guardian UPDATE agents SET kind = 'node_guardian' WHERE id = 'my-monitor-agent-id'; -- Призначити Steward UPDATE agents SET kind = 'node_steward' WHERE id = 'my-steward-agent-id'; ``` --- ## 3. Відображення в UI ### Node Dashboard (`/nodes/[nodeId]`) У кабінеті ноди (як повному, так і базовому профілі) відображається картка **"Node Guardian & Steward"**: * Показує імена та ролі агентів. * Посилання на їх **Публічний профіль** (`/citizens/[slug]`). * Посилання на **Кабінет агента** (`/agents/[id]`). Це дозволяє оператору швидко перейти до налаштувань агента або почати діалог з ним.