- 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.5 KiB
9.5 KiB
Звіт про синхронізацію агентів та дашборд моніторингу
Дата: 2025-11-21
Дашборд: http://localhost:8889 (monitoring/local_monitor.py)
🔍 Знайдені інструменти пошуку
✅ Інструменти пошуку ВЖЕ встановлені
1. Web Search Tool (GREENFOOD)
- Файл:
services/greenfood/crew/tools/crawl4ai_tool.py - Інструменти:
web_search_tool- Пошук в інтернеті через Crawl4AIcrawl_url_tool- Обробка конкретного URL та витягування контенту
- Використання: Parser Service (Crawl4AI) на порту 9400
- Статус: ✅ Налаштовано для GREENFOOD агентів
2. Parser Service (Crawl4AI)
- Порт: 9400
- Endpoint:
/crawl - Можливості:
- Пошук через Google
- Crawl конкретних URL
- Витягування markdown контенту
- Підтримка Playwright для JavaScript сайтів
🤖 Агенти в системі
Агенти в router-config.yml (8 агентів)
- devtools - DevTools Agent (з інструментами: fs_read, fs_write, run_tests, git_diff, git_commit)
- microdao_orchestrator - Multi-agent orchestrator
- greenfood - GREENFOOD Assistant (ERP для крафтових виробників)
- helion - Helion (Energy Union platform)
- cto - CTO Agent (оркеструє команду розробки)
- parser - Document parsing agent
- monitor - Monitor Agent (Architect-inspector)
- crewai - CrewAI orchestrator
Агенти в config/agents.yaml (1 агент)
- tokenomics-advisor - TokenomicsAdvisor (спеціалізований агент)
Агенти в AGENT_REGISTRY на сервері (2 агенти) ⚠️
- daarwizz - DAARWIZZ Bot
- helion - Helion Bot
Проблема синхронізації
❌ Розбіжність між конфігураціями:
| Джерело | Кількість агентів | Агенти |
|---|---|---|
router-config.yml |
8 | devtools, microdao_orchestrator, greenfood, helion, cto, parser, monitor, crewai |
config/agents.yaml |
1 | tokenomics-advisor |
AGENT_REGISTRY (gateway-bot) |
2 | daarwizz, helion |
| ВСЬОГО унікальних | 11 | devtools, microdao_orchestrator, greenfood, helion, cto, parser, monitor, crewai, tokenomics-advisor, daarwizz |
Проблема: AGENT_REGISTRY містить тільки агенти з Telegram ботами, але не всі агенти з router-config.yml.
📊 Дашборд моніторингу (порт 8889)
Поточний стан
Файл: monitoring/local_monitor.py (5978 рядків)
Що вже відображено:
- ✅ Ноди (Node Registry)
- ✅ Агенти (з router-config.yml та gateway-bot)
- ✅ Провайдери (LLM, Orchestrator)
- ✅ Сервіси та їх статус
- ✅ Swapper Service метрики
- ✅ Метрики нод (CPU, RAM, GPU)
- ✅ Telegram боти інформація
- ✅ DAO інформація
API Endpoints:
/api/nodes- Список нод/api/agents- Список агентів/api/providers- Список провайдерів/api/services- Статус сервісів/api/swapper/status- Статус Swapper Service/api/dagi/nodes/{node_id}/metrics- Метрики ноди/api/dagi/nodes/{node_id}/events- Події ноди/api/dagi/stack/nodes/overview- Огляд стеку нод/api/dagi/stack/agents/overview- Огляд стеку агентів
Що відсутнє:
- ❌ Інтеграція з Prometheus (метрики в реальному часі)
- ❌ Інтеграція з Grafana (дашборди)
- ❌ Відображення інструментів пошуку
- ❌ Відображення мультимодальних можливостей
🔧 Рекомендації
1. Додати інтеграцію з Prometheus
Додати до monitoring/local_monitor.py:
PROMETHEUS_URL = os.getenv("PROMETHEUS_URL", "http://localhost:9090")
async def fetch_prometheus_metrics(query: str) -> Dict:
"""Отримати метрики з Prometheus"""
try:
async with httpx.AsyncClient(timeout=10.0) as client:
response = await client.get(
f"{PROMETHEUS_URL}/api/v1/query",
params={"query": query}
)
if response.status_code == 200:
return response.json()
except Exception as e:
logger.error(f"Prometheus query error: {e}")
return {}
@app.get("/api/prometheus/metrics")
async def get_prometheus_metrics():
"""Отримати метрики з Prometheus"""
metrics = {
"router_requests": await fetch_prometheus_metrics("dagi_router_requests_total"),
"gateway_requests": await fetch_prometheus_metrics("dagi_gateway_requests_total"),
"agent_requests": await fetch_prometheus_metrics("dagi_agent_requests_total"),
"service_health": await fetch_prometheus_metrics("up"),
}
return metrics
2. Додати інтеграцію з Grafana
Додати посилання на Grafana дашборди та embedded iframes:
GRAFANA_URL = os.getenv("GRAFANA_URL", "http://localhost:3000")
@app.get("/api/grafana/dashboards")
async def get_grafana_dashboards():
"""Отримати список Grafana дашбордів"""
# Можна використати Grafana API для отримання дашбордів
return {
"url": f"{GRAFANA_URL}",
"dashboards": [
{"id": "router", "name": "Router Metrics", "url": f"{GRAFANA_URL}/d/router"},
{"id": "gateway", "name": "Gateway Metrics", "url": f"{GRAFANA_URL}/d/gateway"},
]
}
3. Синхронізувати всіх агентів
Проблема: AGENT_REGISTRY містить тільки агенти з Telegram ботами.
Рішення: Додати всіх агентів з router-config.yml до AGENT_REGISTRY (навіть якщо вони не мають Telegram ботів):
# Додати до gateway-bot/http_api.py
# Завантажити всіх агентів з router-config.yml
if ROUTER_CONFIG_PATH.exists():
with open(ROUTER_CONFIG_PATH, "r") as f:
router_config = yaml.safe_load(f)
for agent_id, agent_config in router_config.get("agents", {}).items():
if agent_id not in AGENT_REGISTRY:
# Створити конфігурацію для агентів без Telegram
config = AgentConfig(
agent_id=agent_id,
name=agent_config.get("description", agent_id),
prompt_path="", # Немає окремого файлу
telegram_token_env="", # Немає Telegram бота
default_prompt=agent_config.get("system_prompt", ""),
system_prompt=agent_config.get("system_prompt", "")
)
AGENT_REGISTRY[agent_id] = config
4. Відобразити інструменти пошуку на дашборді
Додати секцію про інструменти:
@app.get("/api/tools")
async def get_tools():
"""Отримати список інструментів"""
tools = []
# Інструменти пошуку
tools.append({
"id": "web_search_tool",
"name": "Web Search via Crawl4AI",
"agent": "greenfood",
"type": "search",
"description": "Пошук в інтернеті через Crawl4AI"
})
# Інструменти DevTools
for tool_id in ["fs_read", "fs_write", "run_tests", "git_diff", "git_commit"]:
tools.append({
"id": tool_id,
"name": tool_id,
"agent": "devtools",
"type": "builtin",
"description": f"DevTools tool: {tool_id}"
})
return {"tools": tools}
📝 Підсумок
✅ Що працює
- Дашборд на порту 8889 працює
- Інструменти пошуку встановлені (web_search_tool для greenfood)
- Мультимодальність працює (фото, голос, документи)
- Дашборд відображає ноди, агенти, сервіси
⚠️ Що потрібно виправити
- Синхронізувати всіх агентів між router-config.yml та AGENT_REGISTRY
- Додати інтеграцію з Prometheus до дашборду
- Додати інтеграцію з Grafana до дашборду
- Відобразити інструменти пошуку на дашборді
- Додати інструменти пошуку для інших агентів (не тільки greenfood)
🔧 Наступні кроки
- Додати Prometheus/Grafana інтеграцію до дашборду
- Синхронізувати всіх агентів
- Додати інструменти пошуку для daarwizz та helion
- Оновити документацію
Останнє оновлення: 2025-11-21
Статус: ⚠️ Потребує синхронізації та інтеграції