feat: TASK 038 - Node Guardian & Steward Integration
- Backend: Added dynamic discovery of node agents in repo_city.py - Backend: Created seed SQL for agent types - Frontend: Added NodeGuardianCard component - Frontend: Integrated NodeGuardianCard into Node Dashboard / Profile
This commit is contained in:
70
docs/users/nodes/NODE_GUARDIAN_AND_STEWARD.md
Normal file
70
docs/users/nodes/NODE_GUARDIAN_AND_STEWARD.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# 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]`).
|
||||
|
||||
Це дозволяє оператору швидко перейти до налаштувань агента або почати діалог з ним.
|
||||
|
||||
Reference in New Issue
Block a user