8.1 KiB
8.1 KiB
DAARION MVP ↔ DAGI Runtime Alignment
Version: 1.0
Date: 2025-11-28
Status: Active
Огляд
Цей документ визначає "джерело істини" (Source of Truth) для всіх сутностей DAARION MVP та їх зв'язок з реальною DAGI-мережею.
Ключовий принцип: DAARION MVP — це UI-шар над реальною DAGI/DAOS-мережею. Всі дані беруться з відповідних Registry, а не з моків чи статичних конфігів.
1. Node Registry
Джерело даних
- Database:
node_registry.nodes(окрема БД node_registry) - Cache:
daarion.node_cache(кеш в основній БД для швидких JOIN)
Схема node_cache
CREATE TABLE node_cache (
id SERIAL PRIMARY KEY,
node_id TEXT NOT NULL UNIQUE, -- 'node-1-hetzner-gex44'
node_name TEXT NOT NULL, -- 'Hetzner GEX44 Production'
hostname TEXT, -- '144.76.224.179'
roles TEXT[], -- '{core,gateway,matrix,agents,gpu}'
environment TEXT, -- 'production' | 'development'
status TEXT DEFAULT 'offline', -- 'online' | 'offline'
gpu TEXT, -- GPU info
last_sync TIMESTAMPTZ,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
Поточні ноди
| node_id | name | hostname | environment | roles |
|---|---|---|---|---|
node-1-hetzner-gex44 |
Hetzner GEX44 Production | 144.76.224.179 | production | core, gateway, matrix, agents, gpu |
node-2-macbook-m4max |
MacBook Pro M4 Max | 192.168.1.33 | development | development, gpu, ai_runtime |
Source of Truth для
/nodes— Node Directoryhome_node_idкожного агента- Розташування сервісів: Swapper, Router, Ollama, STT, OCR
API Endpoints
GET /public/nodes— список всіх нодGET /public/nodes/{node_id}— профіль конкретної нодиGET /api/v1/nodes/{node_id}/dashboard— детальний дашборд ноди
2. Agent Registry
Джерело даних
- Database:
daarion.agents - Config: DAGI Router
router-config.yml(для runtime routing)
Схема agents (ключові поля)
CREATE TABLE agents (
id TEXT PRIMARY KEY, -- 'exor', 'faye', 'sofia'
display_name TEXT NOT NULL,
kind TEXT DEFAULT 'assistant', -- orchestrator, security, marketing, etc.
status TEXT DEFAULT 'offline',
-- Home Node (ОБОВ'ЯЗКОВО!)
node_id TEXT NOT NULL, -- 'node-1-hetzner-gex44'
-- DAIS (публічний профіль)
is_public BOOLEAN DEFAULT false,
public_slug TEXT UNIQUE, -- URL slug для /citizens/
public_title TEXT,
public_tagline TEXT,
public_skills TEXT[],
public_district TEXT,
public_primary_room_slug TEXT,
-- System Prompts
system_prompt_core TEXT,
system_prompt_safety TEXT,
system_prompt_governance TEXT,
system_prompt_tools TEXT,
-- Metadata
avatar_url TEXT,
capabilities TEXT[],
model TEXT,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
Правила
- Кожен агент ОБОВ'ЯЗКОВО має
node_id— немає агентів без "прописки" idагента відповідаєagent_idв DAGI Router configis_public=true— агент видимий у/citizenspublic_slug— унікальний URL для публічного профілю
Source of Truth для
/agents— Agent Console (всі агенти)/citizens— Public Citizens (WHERE is_public=true)/agents/{id}— Agent Cabinet (DAIS + System Prompts)
API Endpoints
GET /public/agents— список всіх агентів з home_nodeGET /city/agents/{id}/dashboard— детальний дашборд агентаGET /public/citizens— публічні громадяниGET /public/citizens/{slug}— профіль громадянина
3. MicroDAO Registry
Джерело даних
- Database:
daarion.microdaos,daarion.microdao_agents
Схема
CREATE TABLE microdaos (
id UUID PRIMARY KEY,
slug TEXT UNIQUE NOT NULL, -- 'greenfood-dao'
name TEXT NOT NULL, -- 'GreenFood DAO'
description TEXT,
district TEXT,
base_node_id TEXT, -- нода де живе core DAO
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE microdao_agents (
id UUID PRIMARY KEY,
microdao_id UUID REFERENCES microdaos(id),
agent_id TEXT REFERENCES agents(id),
role TEXT DEFAULT 'member', -- 'orchestrator' | 'member'
is_core BOOLEAN DEFAULT false,
created_at TIMESTAMPTZ DEFAULT NOW()
);
Правила
- Кожен MicroDAO має
orchestrator_agent_id— головний агент base_node_id— нода де живе core стек MicroDAO- Зв'язок з Matrix/City rooms через
microdao_channels
Source of Truth для
/microdao— список MicroDAO/microdao/{slug}— деталі MicroDAO з агентами
API Endpoints
GET /city/microdao— список всіх MicroDAOGET /city/microdao/{slug}— деталі MicroDAO
4. MVP UI Mapping
| UI Route | Source of Truth | Notes |
|---|---|---|
/nodes |
Node Registry (node_cache) |
Всі ноди мережі |
/nodes/{nodeId} |
Node Registry + health probes | Детальний кабінет ноди |
/agents |
Agent Registry (agents) |
Всі агенти з home_node |
/agents/{id} |
Agent Registry | DAIS + System Prompts |
/citizens |
Agent Registry (WHERE is_public=true) |
Публічні громадяни |
/citizens/{slug} |
Agent Registry | Публічний профіль |
/microdao |
MicroDAO Registry | Всі MicroDAO |
/microdao/{slug} |
MicroDAO Registry | Деталі з агентами |
/city |
City Rooms + Agent Presence | 2D мапа міста |
5. DAGI Runtime Services
Per-Node Services
| Service | NODE1 URL | NODE2 URL | Purpose |
|---|---|---|---|
| DAGI Router | http://10.99.0.1:9102 | http://10.99.0.2:9102 | Agent orchestration |
| Swapper | http://10.99.0.1:8890 | http://10.99.0.2:8890 | Model switching |
| Ollama | http://10.99.0.1:11434 | http://10.99.0.2:11434 | LLM inference |
| STT | http://10.99.0.1:8895 | - | Speech-to-text |
| OCR | http://10.99.0.1:8896 | - | Image OCR |
Health Checks
- Router:
GET /health - Swapper:
GET /models - Ollama:
GET /api/tags
6. Важливі примітки
⚠️ Agents ≠ Agents on NODE1
Агенти в MVP беруться з Agent Registry і мають поле
home_node_id, яке вказує реальну ноду. Агент з NODE2 буде показаний в/agentsз бейджем "НОДА2".
⚠️ Кожен агент має "прописку"
Не може існувати агента без
node_id. Якщо такий з'являється — це баг, який треба виправити.
⚠️ Public Citizens = Subset of Agents
/citizensпоказує тільки агентів зis_public=true. Це не окрема сутність, а фільтр.
7. Пов'язані документи
- NODE_PROFILE_STANDARD_v1.md — стандарт профілю ноди
- AGENT_PROFILE_STANDARD_v1.md — DAIS стандарт
- Node_Dashboard_API_v1.md — API дашборду ноди
services/router/router-config.yml— конфіг DAGI Router- SWAPPER-DEFAULT-MODEL-NODE1-SETUP.md — налаштування Swapper