docs(platform): add policy configs, runbooks, ops scripts and platform documentation
Config policies (16 files): alert_routing, architecture_pressure, backlog, cost_weights, data_governance, incident_escalation, incident_intelligence, network_allowlist, nodes_registry, observability_sources, rbac_tools_matrix, release_gate, risk_attribution, risk_policy, slo_policy, tool_limits, tools_rollout Ops (22 files): Caddyfile, calendar compose, grafana voice dashboard, deployments/incidents logs, runbooks for alerts/audit/backlog/incidents/sofiia/voice, cron jobs, scripts (alert_triage, audit_cleanup, migrate_*, governance, schedule), task_registry, voice alerts/ha/latency/policy Docs (30+ files): HUMANIZED_STEPAN v2.7-v3 changelogs and runbooks, NODA1/NODA2 status and setup, audit index and traces, backlog, incident, supervisor, tools, voice, opencode, release, risk, aistalk, spacebot Made-with: Cursor
This commit is contained in:
554
docs/AGENT_AUDIT_PLAN.md
Normal file
554
docs/AGENT_AUDIT_PLAN.md
Normal file
@@ -0,0 +1,554 @@
|
||||
# AGENT AUDIT PLAN — NODA1 DAARION.city
|
||||
**Дата:** 2026-02-28
|
||||
**Аудитор:** Sofiia — Chief AI Architect
|
||||
**Мета:** Ретельна перевірка кожного з 14 агентів на NODA1
|
||||
|
||||
---
|
||||
|
||||
## BASELINE — Поточний стан інфраструктури
|
||||
|
||||
### LLM Routing (після виправлень 2026-02-28)
|
||||
| Агент | Провайдер | Fallback |
|
||||
|-------|-----------|---------|
|
||||
| sofiia | **Grok** | DeepSeek |
|
||||
| senpai | **Grok** | DeepSeek |
|
||||
| всі інші (12) | DeepSeek | Mistral |
|
||||
| monitor, devtools | Ollama (local) | — |
|
||||
|
||||
### Telegram Tokens
|
||||
Всі 14 агентів: ✅ (підтверджено через `docker inspect dagi-gateway-node1`)
|
||||
|
||||
### Qdrant Collections (61 total)
|
||||
| Агент | messages | docs | memory_items | summaries | user_context |
|
||||
|-------|----------|------|-------------|-----------|-------------|
|
||||
| agromatrix | 2159 | 350 | — | — | — |
|
||||
| alateya | 163 | — | — | 1 | — |
|
||||
| clan | 1089 | — | — | — | — |
|
||||
| daarwizz | 144 | — | — | — | — |
|
||||
| druid | 338 | — | — | — | — |
|
||||
| eonarch | 75 | — | — | — | — |
|
||||
| greenfood | 301 | — | — | — | — |
|
||||
| helion | 5836 | 315 | — | 12 | — |
|
||||
| nutra | 890 | — | — | — | — |
|
||||
| oneok | 38 | — | — | — | — |
|
||||
| senpai | 1759 | — | — | 3 | — |
|
||||
| sofiia | 1184 | — | — | — | — |
|
||||
| soul | 412 | 153 | — | 1 | — |
|
||||
| yaromir | 11 | — | — | — | — |
|
||||
|
||||
### Multimodal Stack (Swapper :8890)
|
||||
| Модель | Тип | Статус | Розмір |
|
||||
|--------|-----|--------|--------|
|
||||
| qwen3-8b | llm | ✅ loaded | 5.2GB |
|
||||
| qwen3-vl-8b | vision | ⚪ unloaded | 6.1GB |
|
||||
| got-ocr2 | ocr | ⚪ unloaded | 7.0GB |
|
||||
| granite-docling | document | ⚪ unloaded | 2.5GB |
|
||||
| faster-whisper-large | stt | ⚪ unloaded | 3.0GB |
|
||||
| whisper-small | stt | ⚪ unloaded | 0.5GB |
|
||||
| xtts-v2 | tts | ⚪ unloaded | 2.0GB |
|
||||
| flux-klein-4b | image_gen | ⚪ unloaded | 15.4GB |
|
||||
|
||||
### Capability Services
|
||||
| Сервіс | Порт | Статус |
|
||||
|--------|------|--------|
|
||||
| swapper (vision/STT/TTS) | 8890 | ✅ healthy |
|
||||
| rag-service | 9500 | ✅ healthy |
|
||||
| crawl4ai | 11235 | ✅ ok |
|
||||
| presentation | 9212 | ✅ healthy |
|
||||
| artifact-registry | 9220 | ✅ healthy |
|
||||
| crewai-service | 9010 | ✅ ok |
|
||||
| senpai-md-consumer | 8892 | ✅ ok |
|
||||
| market-data | 8893 | ✅ ok |
|
||||
| plant-vision | 8085 | ❌ down |
|
||||
|
||||
### Standard Tool Stack (всі агенти)
|
||||
`memory_search`, `graph_query`, `web_search`, `web_extract`, `crawl4ai_scrape`,
|
||||
`remember_fact`, `image_generate`, `tts_speak`, `presentation_create`,
|
||||
`presentation_status`, `presentation_download`, `file_tool`
|
||||
|
||||
---
|
||||
|
||||
## ЧЕКЛИСТ ПЕРЕВІРКИ АГЕНТА
|
||||
|
||||
Для кожного агента перевіряємо 10 категорій:
|
||||
|
||||
### 1. TELEGRAM CHAT (Чат з користувачем)
|
||||
- [ ] Надіслати `/start` — отримати привітання
|
||||
- [ ] Надіслати просте питання — отримати змістовну відповідь
|
||||
- [ ] Перевірити що агент відповідає у своєму стилі (persona)
|
||||
- [ ] Перевірити швидкість відповіді (<10 сек норма)
|
||||
- [ ] Перевірити що відповідь не з кешу — задати питання про поточну дату
|
||||
|
||||
### 2. LLM ROUTING (Маршрутизація до правильної моделі)
|
||||
- [ ] `curl POST /v1/agents/{id}/infer` → перевірити `model` та `backend` у відповіді
|
||||
- [ ] Переконатись що `backend` відповідає очікуваному провайдеру
|
||||
- [ ] Перевірити `tokens_used` > 0
|
||||
|
||||
### 3. MEMORY MODULE (Модуль пам'яті)
|
||||
- [ ] Колекція `{agent}_messages` існує і має > 0 точок
|
||||
- [ ] `remember_fact` — назвати факт → перевірити через наступний запит що агент його знає
|
||||
- [ ] `memory_search` — запитати про попередні розмови → агент має згадати
|
||||
- [ ] Перевірити наявність `{agent}_user_context` якщо є
|
||||
|
||||
### 4. QDRANT COLLECTIONS (Векторні колекції)
|
||||
- [ ] Перелік колекцій: `messages`, `docs`, `memory_items`, `summaries`, `user_context`
|
||||
- [ ] Підрахунок points в кожній колекції
|
||||
- [ ] Перевірити що нові повідомлення записуються (порівняти count до і після)
|
||||
|
||||
### 5. DOCUMENT PROCESSING (Обробка документів)
|
||||
- [ ] Надіслати PDF документ у чат — агент має підтвердити отримання
|
||||
- [ ] Запитати про зміст документу — перевірити що агент може відповісти
|
||||
- [ ] Перевірити що `{agent}_docs` collection оновилась
|
||||
- [ ] Перевірити OCR для зображень з текстом (через swapper got-ocr2)
|
||||
|
||||
### 6. WEB SEARCH (Пошук в інтернеті)
|
||||
- [ ] Задати питання що вимагає актуальної інформації
|
||||
- [ ] Перевірити в логах router що `web_search` tool викликався
|
||||
- [ ] Перевірити якість відповіді (не галюцинація, а реальні дані)
|
||||
- [ ] Перевірити `crawl4ai_scrape` для глибокого аналізу сторінок
|
||||
|
||||
### 7. MULTIMODAL — VISION (Обробка зображень)
|
||||
- [ ] Надіслати фото у чат — агент має описати що на фото
|
||||
- [ ] Перевірити що swapper завантажив `qwen3-vl-8b` (через /models)
|
||||
- [ ] Перевірити якість опису (деталізованість, точність)
|
||||
- [ ] Спеціально для agromatrix: рослина на фото → визначення виду
|
||||
|
||||
### 8. VOICE (Голосовий чат)
|
||||
- [ ] Надіслати голосове повідомлення у Telegram
|
||||
- [ ] Перевірити що STT (faster-whisper-large) транскрибує
|
||||
- [ ] Перевірити що агент відповідає на транскрипт
|
||||
- [ ] Перевірити TTS (xtts-v2) — відповідь голосом (якщо підтримується)
|
||||
- [ ] Перевірити логи swapper під час STT
|
||||
|
||||
### 9. СПЕЦІАЛІЗОВАНІ ІНСТРУМЕНТИ (Agent-specific tools)
|
||||
- Залежить від агента — деталі нижче у секції кожного агента
|
||||
|
||||
### 10. SYSTEM PROMPT (Системний промпт і особистість)
|
||||
- [ ] Перевірити що `{agent}_prompt.txt` завантажено (`prompt_loaded: true`)
|
||||
- [ ] Задати питання поза доменом агента → має відповідати в ролі, не виходити з персони
|
||||
- [ ] Перевірити мову відповіді (UA/EN відповідно до налаштувань)
|
||||
|
||||
---
|
||||
|
||||
## АГЕНТИ — ПОРЯДОК ПЕРЕВІРКИ
|
||||
|
||||
Порядок від найважливіших / найактивніших:
|
||||
|
||||
### ЧЕРГА 1 — Критичні (найбільше повідомлень, активні юзери)
|
||||
1. **helion** — 5836 msgs, docs 315, summaries 12 → найактивніший
|
||||
2. **senpai** — 1759 msgs, summaries 3, Grok, market_data tool
|
||||
3. **agromatrix** — 2159 msgs, docs 350, plant vision tools
|
||||
4. **sofiia** — 1184 msgs, Grok, CTO агент
|
||||
|
||||
### ЧЕРГА 2 — Активні
|
||||
5. **clan** — 1089 msgs
|
||||
6. **nutra** — 890 msgs
|
||||
7. **soul** — 412 msgs, docs 153
|
||||
8. **druid** — 338 msgs
|
||||
|
||||
### ЧЕРГА 3 — Менш активні
|
||||
9. **greenfood** — 301 msgs
|
||||
10. **alateya** — 163 msgs, summaries
|
||||
11. **eonarch** — 75 msgs
|
||||
12. **oneok** — 38 msgs, 5 CRM tools
|
||||
|
||||
### ЧЕРГА 4 — Службові / нові
|
||||
13. **daarwizz** — 144 msgs, meta-orchestrator
|
||||
14. **yaromir** — 11 msgs, whitelist-only
|
||||
|
||||
---
|
||||
|
||||
## ДЕТАЛЬНІ ЧЕКЛІСТИ ПО АГЕНТАМ
|
||||
|
||||
---
|
||||
|
||||
### 1. HELION — Energy Platform
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Crew:** ✅ enabled
|
||||
**Спец. інструменти:** `comfy_generate_image`, `comfy_generate_video`
|
||||
**Колекції:** messages(5836), docs(315), summaries(12), artifacts
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати про сонячні панелі / енергетичний розрахунок
|
||||
- [ ] Перевірити чи CrewAI crew активується для складних задач
|
||||
- [ ] `image_generate` — запит на схему енергосистеми → перевірити comfy
|
||||
- [ ] Перевірити `helion_artifacts` колекцію (унікальна!)
|
||||
- [ ] RAG по `helion_docs` — запитати про завантажені документи
|
||||
|
||||
---
|
||||
|
||||
### 2. SENPAI — Trading Advisor
|
||||
**LLM:** Grok → fallback DeepSeek
|
||||
**Crew:** ❌ llm_only
|
||||
**Спец. інструменти:** `market_data`, `binance_bots_top`, `binance_account_bots`
|
||||
**Колекції:** messages(1759), summaries(3)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати ціну BTC/ETH → перевірити що tool `market_data` викликається
|
||||
- [ ] Перевірити що `senpai-md-consumer` (:8892) отримує ринкові дані
|
||||
- [ ] Запитати про торговий сигнал → якість аналізу через Grok
|
||||
- [ ] Перевірити `binance_bots_top` — список топ-ботів
|
||||
- [ ] Ринковий звіт — чи зберігається в summaries
|
||||
|
||||
---
|
||||
|
||||
### 3. AGROMATRIX — Agriculture
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Crew:** ❌ llm_only
|
||||
**Спец. інструменти:** `plantnet_lookup`, `nature_id_identify`, `gbif_species_lookup`, `agrovoc_lookup`
|
||||
**Колекції:** messages(2159), docs(350), shared_pending
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Надіслати фото рослини → `nature_id_identify` або `plantnet_lookup`
|
||||
- [ ] Запитати про агрокультуру → `agrovoc_lookup` (FAO база)
|
||||
- [ ] Перевірити `agromatrix_shared_pending` — унікальна колекція (для чого?)
|
||||
- [ ] RAG по docs(350) — запитати про завантажені агрономічні документи
|
||||
- [ ] plant-vision :8085 ❌ DOWN — перевірити вплив на функціональність
|
||||
|
||||
---
|
||||
|
||||
### 4. SOFIIA — Chief AI Architect
|
||||
**LLM:** Grok → fallback DeepSeek
|
||||
**Crew:** ❌ llm_only
|
||||
**Доступ:** whitelist (admin, architect roles only)
|
||||
**Колекції:** messages(1184)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Перевірити access control — чи блокує неавторизованих юзерів
|
||||
- [ ] Запитати про архітектуру NODA1 → точність відповіді через Grok
|
||||
- [ ] Перевірити всі AGENTS.md tools (oncall, observability, pr_reviewer, etc.)
|
||||
- [ ] Перевірити control-plane :9200 → чи є інтеграція
|
||||
- [ ] Запитати технічне питання → quality through Grok vs DeepSeek
|
||||
|
||||
---
|
||||
|
||||
### 5. CLAN — Community Operations
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Crew:** ❌ llm_only
|
||||
**Колекції:** messages(1089)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати про DAO голосування / спільнотні механіки
|
||||
- [ ] Перевірити `remember_fact` — чи зберігає профіль юзера
|
||||
- [ ] Перевірити що docs collection відсутня (це нормально для clan?)
|
||||
|
||||
---
|
||||
|
||||
### 6. NUTRA — Health & Nutrition
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Crew:** ✅ enabled
|
||||
**Спец. інструменти:** `comfy_generate_image`, `comfy_generate_video`
|
||||
**Колекції:** messages(890), food_knowledge (спеціальна!)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати про харчову цінність продукту → `nutra_food_knowledge` RAG
|
||||
- [ ] Запит на план харчування → чи використовує crew для складних кейсів
|
||||
- [ ] Перевірити `nutra_food_knowledge` — скільки points, що це за база
|
||||
|
||||
---
|
||||
|
||||
### 7. SOUL — Spiritual Assistant
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Crew:** ❌ llm_only
|
||||
**Колекції:** messages(412), docs(153), summaries(1)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати про духовну практику → емоційна якість відповіді
|
||||
- [ ] RAG по docs(153) — які документи завантажені?
|
||||
- [ ] Перевірити persona consistency — чи лишається у ролі
|
||||
|
||||
---
|
||||
|
||||
### 8. DRUID — Science/Ayurveda
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Спец. інструменти:** `comfy_generate_image`, `comfy_generate_video`
|
||||
**Колекції:** messages(338), legal_kb (унікальна!)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати про аюрведичний рецепт → якість відповіді
|
||||
- [ ] Перевірити `druid_legal_kb` — це юридична база? Що в ній?
|
||||
- [ ] RAG по legal_kb
|
||||
|
||||
---
|
||||
|
||||
### 9. GREENFOOD — Food ERP
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Колекції:** messages(301)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати про рецептуру або склад продукту
|
||||
- [ ] Перевірити чи є інтеграція з ERP системою
|
||||
|
||||
---
|
||||
|
||||
### 10. ALATEYA — R&D Lab
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Crew:** ❌ llm_only
|
||||
**Колекції:** messages(163), summaries(1)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати про наукову гіпотезу → якість reasoning
|
||||
- [ ] Перевірити summaries — що там за 1 summary
|
||||
|
||||
---
|
||||
|
||||
### 11. EONARCH — Consciousness/Evolution
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Колекції:** messages(75)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати про трансформацію свідомості → філософська глибина
|
||||
- [ ] Мало messages — чи активний взагалі?
|
||||
|
||||
---
|
||||
|
||||
### 12. ONEOK — Window Master
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Спец. інструменти:** `crm_search_client`, `crm_upsert_client`, `crm_upsert_site`, `crm_upsert_window_unit`, `crm_create_quote`, `crm_update_quote`, `crm_create_job`, `calc_window_quote`, `docs_render_quote_pdf`, `docs_render_invoice_pdf`
|
||||
**Колекції:** messages(38)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати розрахунок вікна → `calc_window_quote` tool
|
||||
- [ ] Перевірити CRM інтеграцію (EspoCRM)
|
||||
- [ ] PDF генерація через gotenberg :3010
|
||||
- [ ] Calendly/CalCom інтеграція для записів
|
||||
|
||||
---
|
||||
|
||||
### 13. DAARWIZZ — Meta-Orchestrator
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Колекції:** messages(144)
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Запитати про координацію між агентами
|
||||
- [ ] Перевірити A2A (agent-to-agent) routing якщо є
|
||||
- [ ] Як працює делегування задач між агентами?
|
||||
|
||||
---
|
||||
|
||||
### 14. YAROMIR — Tech Lead (whitelist)
|
||||
**LLM:** DeepSeek → fallback Mistral
|
||||
**Доступ:** whitelist only
|
||||
**Колекції:** messages(11), docs, memory_items
|
||||
|
||||
**Спецперевірки:**
|
||||
- [ ] Перевірити whitelist access control
|
||||
- [ ] Технічні питання → якість відповіді
|
||||
- [ ] Чому лише 11 messages — малоактивний або whitelist обмежує?
|
||||
|
||||
---
|
||||
|
||||
## ФОРМАТ ЗВІТУ ПО АГЕНТУ
|
||||
|
||||
```
|
||||
## AGENT: {name} — AUDIT {date}
|
||||
|
||||
### Status
|
||||
| Категорія | Статус | Деталі |
|
||||
|-----------|--------|--------|
|
||||
| Telegram chat | ✅/⚠️/❌ | ... |
|
||||
| LLM routing | ✅/⚠️/❌ | model=X backend=Y |
|
||||
| Memory (messages) | ✅/⚠️/❌ | N points |
|
||||
| Memory (facts) | ✅/⚠️/❌ | remember/recall OK |
|
||||
| Docs RAG | ✅/⚠️/❌ | N docs points |
|
||||
| Web search | ✅/⚠️/❌ | tool called: Y/N |
|
||||
| Vision | ✅/⚠️/❌ | model loaded: Y/N |
|
||||
| Voice STT | ✅/⚠️/❌ | whisper: Y/N |
|
||||
| Voice TTS | ✅/⚠️/❌ | xtts: Y/N |
|
||||
| Specialized tools | ✅/⚠️/❌ | tools tested |
|
||||
|
||||
### Issues Found
|
||||
- ...
|
||||
|
||||
### Action Items
|
||||
- [ ] ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## KNOWN ISSUES (до початку аудиту)
|
||||
|
||||
| # | Проблема | Агент | Пріоритет |
|
||||
|---|---------|-------|-----------|
|
||||
| 1 | plant-vision :8085 DOWN | agromatrix | HIGH |
|
||||
| 2 | token_configured: false в Gateway health | всі | MEDIUM (баг в health check, токени є) |
|
||||
| 3 | Більшість memory_items і user_context колекцій порожні | всі | MEDIUM |
|
||||
| 4 | qwen3-vl-8b unloaded (on-demand завантаження) | всі vision | INFO |
|
||||
| 5 | whisper/xtts unloaded | всі voice | INFO |
|
||||
| 6 | comfy tools у всіх агентів — чи працює ComfyUI? | всі | TO_CHECK |
|
||||
|
||||
---
|
||||
|
||||
*Документ оновлюється по мірі проходження аудиту.*
|
||||
|
||||
---
|
||||
|
||||
## AUDIT REPORTS
|
||||
|
||||
---
|
||||
|
||||
## AGENT: helion — AUDIT 2026-02-28
|
||||
|
||||
### Status
|
||||
|
||||
| Категорія | Статус | Деталі |
|
||||
|-----------|--------|--------|
|
||||
| Telegram chat | ✅ | Відповідає, persona Energy Union коректна |
|
||||
| LLM routing | ✅ | model=deepseek-chat, backend=deepseek-cloud, tokens=3532 |
|
||||
| Memory — messages | ✅ | helion_messages = **5836 points** (найактивніший) |
|
||||
| Memory — summaries | ✅ | helion_summaries = **12 dialog summaries** (events_count до 20) |
|
||||
| Memory — remember_fact | ⚠️ | Tool викликається і повертає 200, але **agent_id не зберігається** в PostgreSQL |
|
||||
| Memory — memory_items | ⚠️ | Qdrant helion_memory_items = **0 points** — не використовується |
|
||||
| Memory — user_context | ⚠️ | Qdrant helion_user_context = **0 points** — не використовується |
|
||||
| Memory — artifacts | ⚠️ | Qdrant helion_artifacts = **0 points** — artifacts не накопичуються |
|
||||
| Docs RAG | ✅ | helion_docs = **315 points**, 1 документ: `sinergiya-posibnik-elektr_21.05.2024.pdf`, RAG відповідає точно |
|
||||
| Web search | ✅ | `web_extract` tool виконується (логи підтверджують), `memory_search` + `web_extract` активні |
|
||||
| Vision | ⚪ | qwen3-vl-8b **unloaded** (on-demand), потребує тесту фото в Telegram |
|
||||
| Voice STT | ⚪ | whisper-small/faster-whisper **unloaded** (on-demand через swapper), gateway має `process_voice()` |
|
||||
| Voice TTS | ⚪ | xtts-v2 **unloaded** (on-demand), потребує тесту |
|
||||
| Crew (CrewAI) | ⚠️ | crew=True в registry, але logs: `CrewAI decision: False (orchestrator_direct_llm_first)` — crew не активується |
|
||||
| image_generate (comfy) | ❌ | ComfyUI **контейнер відсутній** на NODA1 — `comfy_generate_image` / `comfy_generate_video` не працюють |
|
||||
| System prompt | ✅ | `prompt_loaded: true`, source=config, persona коректна |
|
||||
|
||||
### Issues Found
|
||||
|
||||
#### 🔴 CRITICAL
|
||||
|
||||
**ISSUE-H-01: `agent_id` не зберігається в `user_facts` при remember_fact**
|
||||
- `/facts/upsert` endpoint в memory-service **не передає `agent_id`** в `db.upsert_fact()` — параметр є в сигнатурі функції, але не передається з request
|
||||
- `tool_manager.py` передає `agent_id` тільки в `fact_value_json`, а не як окрему колонку
|
||||
- Наслідок: `SELECT ... WHERE agent_id='helion'` повертає 0 рядків для реальних фактів, пошук по агенту не працює
|
||||
- Файл: `services/memory-service/app/main.py:654` → `db.upsert_fact()` call без `agent_id`
|
||||
|
||||
#### 🟡 WARNING
|
||||
|
||||
**ISSUE-H-02: ComfyUI відсутній на NODA1**
|
||||
- Контейнер ComfyUI не запущений (немає в `docker ps`)
|
||||
- Всі агенти мають `comfy_generate_image` і `comfy_generate_video` в specialized tools
|
||||
- При виклику цих tools — помилка або timeout
|
||||
- Рекомендація: або задеплоїти ComfyUI, або замінити `image_generate` на інший backend (Flux через swapper вже є: `flux-klein-4b unloaded`)
|
||||
|
||||
**ISSUE-H-03: CrewAI ніколи не активується для Helion**
|
||||
- `helion: crew=True` в `agent_registry.yml`
|
||||
- Але в router логах завжди: `CrewAI decision: False (orchestrator_direct_llm_first)`
|
||||
- Умова активації CrewAI не спрацьовує для реальних запитів
|
||||
- Потрібно перевірити логіку `_crewai_decision()` в `main.py`
|
||||
|
||||
**ISSUE-H-04: helion_memory_items, helion_user_context, helion_artifacts = 0 points**
|
||||
- Три Qdrant-колекції існують але порожні
|
||||
- `memory_items` — мав би зберігати структуровані факти (від remember_fact)
|
||||
- `user_context` — мав би зберігати профілі користувачів
|
||||
- `artifacts` — унікальна колекція для helion, ніколи не записувалась
|
||||
- Причина: write path для цих колекцій або не реалізований, або не викликається
|
||||
|
||||
**ISSUE-H-05: Лише 1 документ в helion_docs (315 chunks)**
|
||||
- Весь RAG-корпус = один PDF `sinergiya-posibnik-elektr_21.05.2024.pdf`
|
||||
- Для платформи з 5836 повідомленнями — дуже мало документів
|
||||
- Потрібно завантажити більше документів Energy Union
|
||||
|
||||
#### 🟢 INFO
|
||||
|
||||
**ISSUE-H-06: vision/STT/TTS — on-demand, не тестовано реальним Telegram трафіком**
|
||||
- Swapper завантажує моделі на вимогу, це нормально
|
||||
- Але потрібен реальний тест: надіслати фото і голосове в Telegram чат Helion
|
||||
|
||||
### Action Items
|
||||
|
||||
- [ ] **FIX** `services/memory-service/app/main.py:670` — додати `agent_id=request.fact_value_json.get('agent_id')` в `db.upsert_fact()` call
|
||||
- [ ] **FIX** Перевірити `_crewai_decision()` в `main.py` — чому crew не активується для helion
|
||||
- [ ] **DEPLOY** ComfyUI або налаштувати `image_generate` через swapper flux-klein-4b
|
||||
- [ ] **TEST** Надіслати реальне фото в Telegram @HelionBot → перевірити vision STT
|
||||
- [ ] **TEST** Надіслати голосове повідомлення → перевірити STT whisper pipeline
|
||||
- [ ] **UPLOAD** Завантажити більше документів Energy Union в helion_docs
|
||||
- [ ] **INVESTIGATE** helion_artifacts — для чого ця колекція і як її наповнювати
|
||||
|
||||
---
|
||||
|
||||
## AGENT: senpai — AUDIT 2026-02-28
|
||||
|
||||
### Status
|
||||
|
||||
| Категорія | Статус | Деталі |
|
||||
|-----------|--------|--------|
|
||||
| Telegram chat | ✅ | Відповідає, persona Gordon Senpai — Trading Advisor (після фіксу промпту) |
|
||||
| LLM routing | ✅ | model=grok-4-1-fast-reasoning, backend=grok-cloud ✅ (підтверджено в логах) |
|
||||
| Memory — messages | ✅ | senpai_messages = **1759 points** (активна база) |
|
||||
| Memory — summaries | ✅ | senpai_summaries = **3 dialog summaries** (events_count по 60, content про трейдинг/крипто) |
|
||||
| Memory — remember_fact | ✅ | Факт `Максим торгує BTC з 2021` збережено з `agent_id=senpai` (**agent_id fix діє**) |
|
||||
| Memory — memory_items | ⚠️ | Qdrant senpai_memory_items = **0 points** — не накопичується |
|
||||
| Memory — user_context | ❌ | Колекція **відсутня** (HTTP 404) — не була створена |
|
||||
| Memory — docs | ⚠️ | senpai_docs = **0 points** — жодного документу |
|
||||
| market_data tool | ✅ | BTC=$68,185 / ETH=$2,066 — real-time дані з Bybit/Binance (tool `market_data` OK) |
|
||||
| binance_bots_top | ✅ | Tool **реалізовано** — підключено до `dagi-binance-bot-monitor-node1:8893/top-bots` (web_search fallback) |
|
||||
| binance_account_bots | ✅ | Tool **реалізовано** — `SPOT account, can_trade=True, permissions=[TRD_GRP_072]`, баланс 0 (акаунт порожній) |
|
||||
| comfy_generate_image | ❌ | ComfyUI **відсутній** на NODA1 — не працює (той самий issue що ISSUE-H-02) |
|
||||
| comfy_generate_video | ❌ | ComfyUI **відсутній** на NODA1 — не працює |
|
||||
| web_search | ✅ | Новини Bitcoin 2026-02-26 — знайдено реальний контент (BBC, Cointelegraph) |
|
||||
| Vision | ⚪ | Не налаштовано для senpai (`vision_enabled` не встановлено в config) |
|
||||
| Voice STT | ⚪ | On-demand через swapper (не тестовано реальним трафіком) |
|
||||
| Voice TTS | ⚪ | On-demand через swapper (не тестовано реальним трафіком) |
|
||||
| Crew (CrewAI) | ℹ️ | crew=❌ за конфігом (trading agent — crew не потрібен) |
|
||||
| System prompt | ✅ | **FIXED** — було placeholder `(loaded from senpai_prompt.txt)`, тепер `!file:/app/prompts/senpai_prompt.txt` (13KB, Gordon Senpai v1.1) |
|
||||
| senpai-md-consumer | ✅ | `http://localhost:8892/health` → `{"status":"ok","service":"senpai-md-consumer"}` |
|
||||
| market-data-service | ✅ | `http://localhost:8893/health` → `{"status":"ok","service":"market-data-service"}` |
|
||||
|
||||
### Issues Found
|
||||
|
||||
#### 🔴 CRITICAL
|
||||
|
||||
**ISSUE-S-01: System prompt був placeholder — Senpai відповідав як "Energy Union AI" замість "Gordon Senpai"**
|
||||
- `router-config.yml` містив буквальний рядок `(loaded from senpai_prompt.txt)` замість реального промпту
|
||||
- `prompt_builder._get_from_config()` передавав цей рядок в Grok як system_prompt
|
||||
- Grok без контексту вигадував "Energy Union" персону (з короткого placeholder)
|
||||
- **FIXED:**
|
||||
1. `prompt_builder.py` — додано підтримку `!file:/path/to/file.txt` references
|
||||
2. `docker-compose.node1.yml` — додано volume mount `gateway-bot -> /app/prompts`
|
||||
3. `router-config.yml` — `senpai.system_prompt = !file:/app/prompts/senpai_prompt.txt`
|
||||
4. Аналогічно для `sofiia` (sofiia_prompt.txt 136KB)
|
||||
- **VERIFY:** `grok-4-1-fast-reasoning` → "Я — Гордон Сэнпай, советник высшего уровня по рынкам капитала и цифровым активам" ✅
|
||||
|
||||
#### 🔴 CRITICAL (системний)
|
||||
|
||||
**ISSUE-S-02: `binance_bots_top` і `binance_account_bots` — "ghost tools" → ВИПРАВЛЕНО**
|
||||
- Обидва tools були присутні в `agent_tools_config.py` але **відсутні** в `TOOL_DEFINITIONS` і `execute_tool()` handler
|
||||
- **FIXED:** Реалізовано `_binance_bots_top()` і `_binance_account_bots()` в `tool_manager.py`
|
||||
- Сервіс `dagi-binance-bot-monitor-node1` запущений (порт 8893 внутрішній)
|
||||
- Новий Binance API ключ встановлено в `.env.node1` і задеплоєно → **HTTP 200 OK**
|
||||
- `binance_account_bots` → `SPOT, can_trade=True, TRD_GRP_072, balance=0` ✅
|
||||
- `binance_bots_top` → web_search fallback (marketplace scraping) ✅
|
||||
|
||||
#### 🟡 WARNING
|
||||
|
||||
**ISSUE-S-03: senpai_user_context колекція відсутня (404)**
|
||||
- На відміну від helion, де колекція є але порожня — у senpai її взагалі немає
|
||||
- Потрібно перевірити чому memory-service не створила цю колекцію для senpai
|
||||
|
||||
**ISSUE-S-04: senpai_docs = 0 points**
|
||||
- Для Trading Advisor — відсутні будь-які документи (аналітика, стратегії, ринкові огляди)
|
||||
- Це обмежує RAG-можливості агента
|
||||
|
||||
**ISSUE-S-05: senpai_memory_items = 0 points**
|
||||
- Аналогічно helion — `memory_items` не накопичується
|
||||
- Структуровані факти про трейдери не зберігаються у Qdrant
|
||||
|
||||
**ISSUE-S-06: System prompt — мова Russian (v1.1)**
|
||||
- `senpai_prompt.txt` написаний переважно **російською мовою** ("Версия: 1.1, Язык: русский")
|
||||
- Для українського продукту — потрібно перейти на UA/EN промпт
|
||||
|
||||
#### 🟢 INFO
|
||||
|
||||
**ISSUE-S-07: vision/STT/TTS не тестовано реальним трафіком**
|
||||
- Trading agent — мінімальна потреба у voice/vision
|
||||
- Але доступ до swapper є, on-demand навантаження норма
|
||||
|
||||
### Action Items
|
||||
|
||||
- [x] **FIXED** `services/router/prompt_builder.py` — підтримка `!file:` references для системних промптів
|
||||
- [x] **FIXED** `docker-compose.node1.yml` — volume mount `gateway-bot -> /app/prompts` для router
|
||||
- [x] **FIXED** `services/router/router-config.yml` — senpai і sofiia тепер мають `!file:` references
|
||||
- [x] **FIXED** `binance_bots_top` і `binance_account_bots` tools реалізовані в `tool_manager.py` → з'єднані з `dagi-binance-bot-monitor-node1:8893`
|
||||
- [x] **FIXED** Новий Binance API ключ встановлено в `.env.node1`, сервіс перезапущено → 200 OK
|
||||
- [ ] **CREATE** `senpai_user_context` Qdrant collection — зрозуміти чому не створилась
|
||||
- [ ] **UPLOAD** Завантажити торгові документи/аналітику в `senpai_docs` через RAG pipeline
|
||||
- [ ] **TRANSLATE** `senpai_prompt.txt` на ukrainian/english (зараз russian v1.1)
|
||||
- [ ] **TEST** Реальний тест в Telegram @SenpAI_agent_bot з типовими запитами трейдера
|
||||
Reference in New Issue
Block a user