# 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 з типовими запитами трейдера