- 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
9.0 KiB
9.0 KiB
✅ Кабінети агентів з CrewAI командами - Завершено
Дата: 2025-11-23
Статус: ✅ Готово до використання
🎉 Що реалізовано
✅ 1. React компонент кабінету агента (AgentCabinetPage.tsx)
Розташування: src/pages/AgentCabinetPage.tsx
Функціонал:
- ✅ Детальні метрики агента (uptime, запити, успішність, час відповіді)
- ✅ Кнопка "Стати оркестратором" для звичайних агентів
- ✅ Відображення команди агентів для оркестраторів
- ✅ Відображення CrewAI команд для оркестраторів
- ✅ Вікно чату з агентом
- ✅ Налаштування агента
Вкладки:
- Огляд - загальна інформація та метрики
- Метрики - детальна статистика
- Команда - список агентів команди (тільки для оркестраторів)
- CrewAI Команди - список створених CrewAI команд (тільки для оркестраторів)
- Налаштування - конфігурація агента
✅ 2. Виправлено CrewAI інтеграцію з Ollama
Файл: /tmp/yaromir_crew.py → /opt/microdao-daarion/router/crews/yaromir_crew.py
Зміни:
- ✅ Використовується
LLMобгортка з CrewAI для правильного підключення Ollama - ✅ Виправлено шляхи до prompt файлів (
/app/gateway-bot/замість/app/prompts/) - ✅ Всі 4 субагенти (Вождь, Проводник, Домир, Создатель) налаштовані з правильними LLM
Моделі:
- Вождь:
qwen2.5:14b(temperature: 0.1) - Проводник:
qwen2.5:7b(temperature: 0.3) - Домир:
qwen2.5:3b(temperature: 0.4) - Создатель:
qwen2.5:14b(temperature: 0.5)
✅ 3. Маршрутизація
Файл: src/App.tsx
Додано:
<Route path="/agent/:agentId" element={<AgentCabinetPage />} />
Доступ:
- URL:
http://localhost:8899/agent/{agent_id} - Приклад:
http://localhost:8899/agent/yaromir
📊 Структура кабінету агента
┌─────────────────────────────────────────────────┐
│ Header (Name, ID, Status, Buttons) │
│ - Кнопка "Стати оркестратором" (якщо не оркестратор) │
│ - Кнопка "Чат з агентом" │
├─────────────────────────────────────────────────┤
│ Tabs (Огляд | Метрики | Команда | CrewAI | Налаштування) │
├─────────────────────────────────────────────────┤
│ Content (залежить від активної вкладки) │
│ │
│ Огляд: │
│ - Детальні метрики (4 картки) │
│ - Конфігурація (модель, backend, нода) │
│ │
│ Команда (тільки для оркестраторів): │
│ - Таблиця агентів команди │
│ - Кнопка "Додати агента" │
│ │
│ CrewAI Команди (тільки для оркестраторів): │
│ - Список створених CrewAI команд │
│ - Інформація про кожну команду (агенти, задачі)│
│ - Кнопка "Створити нову команду" │
└─────────────────────────────────────────────────┘
🔌 API Endpoints (потрібно реалізувати в backend)
1. Отримати метрики агента
GET /api/agent/{agent_id}/metrics
Response:
{
"agent_id": "yaromir",
"agent_name": "Яромир",
"status": "active",
"uptime_hours": 150.5,
"total_requests": 2500,
"successful_requests": 2400,
"failed_requests": 100,
"avg_response_time_ms": 450.5,
"last_active": "2025-11-23T12:00:00Z",
"model": "qwen3:8b",
"model_backend": "ollama",
"node": "node-1",
"is_orchestrator": true,
"team_size": 4,
"sub_agents": [
{
"id": "vozhd",
"name": "Вождь",
"role": "Strategic Guardian"
},
{
"id": "provodnik",
"name": "Проводник",
"role": "Deep Mentor"
}
]
}
2. Отримати CrewAI команди агента
GET /api/agent/{agent_id}/crews
Response:
[
{
"id": "crew-1",
"name": "Yaromir Team",
"agents": [
{
"id": "vozhd",
"name": "Вождь",
"role": "Strategic Guardian"
}
],
"tasks": [
{
"id": "task-1",
"description": "Стратегічне планування",
"status": "completed"
}
],
"status": "active",
"created_at": "2025-11-23T10:00:00Z"
}
]
3. Стати оркестратором
POST /api/agent/{agent_id}/become-orchestrator
Response:
{
"status": "success",
"agent_id": "yaromir",
"is_orchestrator": true
}
🚀 Як використати
1. Відкрити кабінет агента
# Через браузер
http://localhost:8899/agent/yaromir
http://localhost:8899/agent/clan
http://localhost:8899/agent/soul
2. Перетворити агента на оркестратора
- Відкрити кабінет агента
- Натиснути кнопку "Стати оркестратором"
- Агент отримає можливість:
- Додавати агентів до команди
- Створювати CrewAI команди
- Делегувати завдання
3. Переглянути CrewAI команди (для оркестраторів)
- Відкрити кабінет оркестратора
- Перейти на вкладку "CrewAI Команди"
- Переглянути список створених команд
- Створити нову команду (кнопка "Створити нову команду")
📝 Наступні кроки
Backend Implementation
Потрібно реалізувати в fixed_monitor.py або окремому сервісі:
-
Endpoint
/api/agent/{agent_id}/metrics- Збирати метрики з DAGI Router
- Зберігати в базі даних або пам'яті
- Повертати структуровані дані
-
Endpoint
/api/agent/{agent_id}/crews- Отримувати список CrewAI команд для агента
- Зберігати інформацію про команди
- Повертати список з деталями
-
Endpoint
/api/agent/{agent_id}/become-orchestrator- Оновлювати статус агента в базі даних
- Створювати workspace для CrewAI
- Повертати підтвердження
-
Автоматичне створення кабінету
- При реєстрації нового агента автоматично створювати кабінет
- Зберігати базові метрики
- Ініціалізувати workspace (якщо потрібно)
✅ Статус
Готово:
- ✅ React компонент кабінету агента
- ✅ Відображення детальних метрик
- ✅ Кнопка "Стати оркестратором"
- ✅ Відображення команди агентів
- ✅ Відображення CrewAI команд
- ✅ Виправлено CrewAI інтеграцію з Ollama
- ✅ Маршрутизація в App.tsx
Потрібно реалізувати:
- ⏳ Backend endpoints для метрик
- ⏳ Backend endpoints для CrewAI команд
- ⏳ Backend endpoint для перетворення в оркестратора
- ⏳ Автоматичне створення кабінету при реєстрації
Кабінети агентів з CrewAI командами готові до використання! 🎉