- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
123 lines
5.0 KiB
Markdown
123 lines
5.0 KiB
Markdown
# Статус підключення агентів до мікроДАО
|
||
|
||
## 📊 Поточна ситуація
|
||
|
||
### ✅ Що працює:
|
||
|
||
1. **Отримання агентів з API:**
|
||
- Endpoint: `GET /api/v1/agents?team_id={microDaoId}`
|
||
- Повертає список агентів, підключених до мікроДАО
|
||
- Файл: `src/api/agents.ts`
|
||
|
||
2. **Автоматичне додавання оркестратора:**
|
||
- Оркестратор з НОДИ1 автоматично додається до списку агентів
|
||
- Логіка в `MicroDaoCabinetPage.tsx` (рядки 141-165)
|
||
- Використовує маппінг з `agentMicroDaoMapping.ts`
|
||
|
||
3. **Відображення агентів:**
|
||
- Вкладка "Агенти" в кабінеті мікроДАО
|
||
- Показує оркестратора та інших агентів
|
||
- Кнопка "Додати агента" для створення нових
|
||
|
||
### ⚠️ Потенційні проблеми:
|
||
|
||
1. **Агенти можуть не бути в базі даних:**
|
||
- Таблиця `agents` має поле `team_id` для зв'язку з мікроДАО
|
||
- Якщо агенти не створені в БД, API поверне порожній список
|
||
- Оркестратор додається тільки з НОДИ1, але не зберігається в БД
|
||
|
||
2. **Відсутність автоматичного підключення:**
|
||
- Агенти з НОДИ1 не автоматично підключаються до мікроДАО
|
||
- Потрібно вручну створювати записи в БД
|
||
|
||
## 🔍 Перевірка підключення
|
||
|
||
### 1. Перевірити API:
|
||
|
||
```bash
|
||
# Отримати агентів для мікроДАО
|
||
curl http://localhost:8899/api/v1/agents?team_id=daarion-dao
|
||
```
|
||
|
||
**Очікувана відповідь:**
|
||
```json
|
||
{
|
||
"items": [
|
||
{
|
||
"id": "agent-123",
|
||
"team_id": "daarion-dao",
|
||
"name": "Agent Name",
|
||
...
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 2. Перевірити базу даних:
|
||
|
||
```sql
|
||
-- Перевірити агенти для мікроДАО
|
||
SELECT * FROM agents WHERE team_id = 'daarion-dao';
|
||
|
||
-- Перевірити всі мікроДАО
|
||
SELECT id, name, slug FROM teams WHERE type IN ('platform', 'community', 'guild', 'lab');
|
||
```
|
||
|
||
### 3. Перевірити UI:
|
||
|
||
1. Відкрити кабінет мікроДАО: `http://localhost:8899/microdao/daarion`
|
||
2. Перейти на вкладку "Агенти"
|
||
3. Перевірити чи відображаються агенти
|
||
|
||
## 🔧 Рішення
|
||
|
||
### Варіант 1: Автоматичне підключення оркестраторів
|
||
|
||
Створити міграцію або скрипт для автоматичного створення записів агентів-оркестраторів в БД:
|
||
|
||
```sql
|
||
-- Створити агенти-оркестратори для мікроДАО
|
||
INSERT INTO agents (id, team_id, name, description, config, created_at)
|
||
VALUES
|
||
('agent-daarwizz', 'daarion-dao', 'DAARWIZZ', 'Оркестратор DAARION', '{"type": "orchestrator"}', now()),
|
||
('agent-greenfood', 'greenfood-dao', 'GREENFOOD', 'Оркестратор GREENFOOD', '{"type": "orchestrator"}', now()),
|
||
('agent-helion', 'energy-union-dao', 'Helion', 'Оркестратор ENERGY UNION', '{"type": "orchestrator"}', now())
|
||
ON CONFLICT (id) DO NOTHING;
|
||
```
|
||
|
||
### Варіант 2: Синхронізація з НОДИ1
|
||
|
||
Створити endpoint для синхронізації агентів з НОДИ1 до БД:
|
||
|
||
```typescript
|
||
POST /api/v1/teams/{teamId}/agents/sync
|
||
```
|
||
|
||
### Варіант 3: UI для підключення
|
||
|
||
Додати кнопку "Підключити агентів з НОДИ1" в кабінеті мікроДАО.
|
||
|
||
## 📋 Чеклист перевірки
|
||
|
||
- [ ] API endpoint `/api/v1/agents?team_id={microDaoId}` працює
|
||
- [ ] База даних містить записи агентів з правильним `team_id`
|
||
- [ ] Оркестратор відображається в UI (з НОДИ1)
|
||
- [ ] Інші агенти відображаються в UI (з БД)
|
||
- [ ] Кнопка "Додати агента" працює
|
||
- [ ] Створення нового агента зберігає `team_id`
|
||
|
||
## 🎯 Рекомендації
|
||
|
||
1. **Автоматичне підключення оркестраторів:**
|
||
- При створенні мікроДАО автоматично створювати запис оркестратора в БД
|
||
- Синхронізувати з агентами з НОДИ1
|
||
|
||
2. **UI індикатор:**
|
||
- Показувати статус підключення агентів
|
||
- Додати кнопку "Синхронізувати з НОДИ1"
|
||
|
||
3. **Логування:**
|
||
- Логувати всі спроби підключення агентів
|
||
- Відстежувати помилки синхронізації
|
||
|