- 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
3.0 KiB
3.0 KiB
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) за наступним алгоритмом:
-
Пошук за типом (
kind):- Система шукає агентів, прив'язаних до цієї ноди (
node_id), які маютьkind = 'node_guardian'або'node_steward'.
- Система шукає агентів, прив'язаних до цієї ноди (
-
Fallback (сумісність):
- Якщо спеціалізованих типів не знайдено, система шукає
infra_monitor(як Guardian) таinfra_ops(як Steward).
- Якщо спеціалізованих типів не знайдено, система шукає
-
Node Cache (Legacy):
- Якщо динамічний пошук не дав результатів, використовується закешоване значення з таблиці
node_registry.nodes(якщо воно було встановлено вручну).
- Якщо динамічний пошук не дав результатів, використовується закешоване значення з таблиці
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]).
Це дозволяє оператору швидко перейти до налаштувань агента або почати діалог з ним.