Files
microdao-daarion/docs/users/nodes/NODE_GUARDIAN_AND_STEWARD.md
Apple 0bab4bba08 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
2025-11-29 01:46:38 -08:00

71 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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]`).
Це дозволяє оператору швидко перейти до налаштувань агента або почати діалог з ним.