# DAGI Router Configuration # Version: 0.6.0 - Telegram agents + differentiated qwen3 profiles node: id: dagi-devtools-node-01 role: router env: prod description: "DAGI Router with CrewAI, Telegram Gateway and science-ready tooling" # ============================================================================ # LLM Profiles (використовуємо лише доступні qwen3 моделі) # ============================================================================ llm_profiles: local_qwen3_8b: provider: ollama base_url: http://172.17.0.1:11434 model: qwen3:8b max_tokens: 1024 temperature: 0.2 top_p: 0.9 timeout_ms: 30000 description: "Базова qwen3:8b для інфраструктурних задач" qwen3_strategist_8b: provider: ollama base_url: http://172.17.0.1:11434 model: qwen3:8b max_tokens: 2048 temperature: 0.15 top_p: 0.7 timeout_ms: 32000 description: "Стримана qwen3:8b для стратегічних агентів (Daarwizz, Yaromir, Orchestrator)" qwen3_support_8b: provider: ollama base_url: http://172.17.0.1:11434 model: qwen3:8b max_tokens: 1536 temperature: 0.35 top_p: 0.88 timeout_ms: 28000 description: "Підтримка/CRM тон для GREENFOOD, CLAN" qwen3_science_8b: provider: ollama base_url: http://172.17.0.1:11434 model: qwen3:8b max_tokens: 2048 temperature: 0.1 top_p: 0.65 timeout_ms: 40000 description: "Наукові агенти (Helion, DRUID, Nutra, Monitor)" qwen3_creative_8b: provider: ollama base_url: http://172.17.0.1:11434 model: qwen3:8b max_tokens: 2048 temperature: 0.6 top_p: 0.92 timeout_ms: 32000 description: "Комʼюніті та мультимодальні агенти (Soul, EONARCH)" qwen3_vision_8b: provider: ollama base_url: http://172.17.0.1:11434 model: qwen3-vl:8b max_tokens: 2048 temperature: 0.2 top_p: 0.9 timeout_ms: 60000 description: "Vision qwen3 для EONARCH/Helion" qwen2_5_3b_service: provider: ollama base_url: http://172.17.0.1:11434 model: qwen2.5:3b-instruct-q4_K_M max_tokens: 768 temperature: 0.2 top_p: 0.85 timeout_ms: 20000 description: "Легка qwen2.5 3B для службових повідомлень та monitor ботів" mistral_community_7b: provider: ollama base_url: http://172.17.0.1:11434 model: mistral:7b-instruct max_tokens: 2048 temperature: 0.35 top_p: 0.9 timeout_ms: 32000 description: "Mistral 7B для CRM/community агентів (GREENFOOD, CLAN, SOUL, EONARCH)" cloud_deepseek: provider: deepseek base_url: https://api.deepseek.com api_key_env: DEEPSEEK_API_KEY model: deepseek-chat max_tokens: 2048 temperature: 0.2 timeout_ms: 40000 description: "DeepSeek для важких DevTools задач (опційно)" cloud_mistral: provider: mistral base_url: https://api.mistral.ai/v1 api_key_env: MISTRAL_API_KEY model: mistral-large-latest max_tokens: 4096 temperature: 0.3 timeout_ms: 60000 description: "Mistral Large для складних задач, reasoning, аналізу" # ============================================================================ # Orchestrator Providers # ============================================================================ orchestrator_providers: crewai: type: orchestrator base_url: http://localhost:9010 timeout_ms: 120000 description: "CrewAI multi-agent workflow orchestrator" vision_encoder: type: vision base_url: http://vision-encoder:8001 timeout_ms: 30000 description: "Vision Encoder (OpenCLIP ViT-L/14)" # ============================================================================ # Agents Configuration # ============================================================================ agents: devtools: description: "DevTools Agent - помічник з кодом, тестами й інфраструктурою" default_llm: local_qwen3_8b system_prompt: | Ти - DevTools Agent в екосистемі DAARION.city. Ти допомагаєш розробникам з: - аналізом коду та пошуком багів - рефакторингом - написанням тестів - git операціями Відповідай коротко, конкретно, із прикладами коду. Якщо у чаті є інші агенти (username закінчується на Bot) — мовчи, доки не отримуєш прямий тег чи питання по DevTools. tools: - id: fs_read type: builtin description: "Читання файлів" - id: fs_write type: builtin description: "Запис файлів" - id: run_tests type: builtin description: "Запуск тестів" - id: git_diff type: builtin description: "Git diff" - id: git_commit type: builtin description: "Git commit" microdao_orchestrator: description: "Multi-agent orchestrator for MicroDAO workflows" default_llm: qwen3_strategist_8b system_prompt: | You are the central router/orchestrator for DAARION.city MicroDAO. Coordinate multiple agents, respect RBAC, escalate only when needed. Detect other bots (usernames ending with Bot or known agents) and respond only when orchestration context is required. daarwizz: description: "DAARWIZZ — головний оркестратор DAARION Core" default_llm: qwen3_strategist_8b system_prompt: | Ти — DAARWIZZ, головний стратег MicroDAO DAARION.city. Тримаєш контекст roadmap, delegation, crew-команд. В групах відповідай лише при прямому зверненні або якщо питання стосується DAARION Core. Розпізнавай інших агентів за ніками (суфікс Bot) і узгоджуй дії як колега. greenfood: description: "GREENFOOD Assistant - ERP orchestrator" default_llm: mistral_community_7b system_prompt: | Ти — GREENFOOD Assistant, фронтовий оркестратор ERP-системи для крафтових виробників. Розумій, хто з тобою говорить (комітент, покупець, склад, бухгалтер), та делегуй задачі відповідним під-агентам. Якщо у чаті присутні інші агенти (ніки з Bot) — не перебивай, поки тема не стосується ERP/постачань. tools: - id: image_generation type: tool endpoint: http://image-gen-service:9600/image/generate description: "Етикетки, маркетинг" - id: web_search type: external endpoint: http://swapper-service:8890/web-search description: "Пошук постачальників/ринків" - id: vision type: llm model: qwen3-vl:8b description: "Візуальний контроль партій" - id: ocr type: external endpoint: http://swapper-service:8890/ocr description: "Зчитування накладних" clan: description: "CLAN — комунікації кооперативів" default_llm: mistral_community_7b system_prompt: | Ти — CLAN, координуєш комунікацію, оголошення та community operations. Відповідай лише коли тема стосується координації, а звернення адресовано тобі (тег @ClanBot чи згадка кланів). Розпізнавай ботів за username та погоджуй з ними дії. soul: description: "SOUL / Spirit — духовний гід комʼюніті" default_llm: mistral_community_7b system_prompt: | Ти — Spirit/SOUL, ментор живої операційної системи. Пояснюй місію, підтримуй мораль, працюй із soft-skills. У групах відповідай тільки на духовні/ціннісні питання або коли кличуть @SoulBot. druid: description: "DRUID — R&D агент з косметології та eco design" default_llm: qwen3_science_8b system_prompt: | Ти — DRUID AI, експерт з космецевтики, біохімії та сталого дизайну. Працюй з формулами, стехіометрією, етичними ланцюгами постачання. В групах аналізуй, чи звертаються до тебе (нік/тег @DruidBot) і мовчи, якщо тема не наукова. tools: - id: web_search type: external endpoint: http://swapper-service:8890/web-search description: "Наукові статті" - id: math type: tool description: "Хімічні/математичні обчислення" - id: data_analysis type: tool description: "Аналіз лабораторних даних" - id: chemistry type: tool description: "Моделювання реакцій" - id: biology type: tool description: "Біологічні взаємодії" - id: units type: tool description: "Конвертація одиниць" - id: vision type: llm model: qwen3-vl:8b description: "Аналіз фото формул/упаковок" - id: ocr type: external endpoint: http://swapper-service:8890/ocr description: "Зчитування етикеток" nutra: description: "NUTRA — нутріцевтичний агент" default_llm: qwen3_science_8b system_prompt: | Ти — NUTRA, допомагаєш з формулами нутрієнтів, біомедичних добавок та лабораторних інтерпретацій. Відповідай з науковою точністю, посилайся на джерела, якщо можливо. Слідкуй, щоб не втручатися у чужі теми — відповідай лише при прямому зверненні чи темах нутріцівтики. tools: - id: web_search type: external endpoint: http://swapper-service:8890/web-search description: "Пошук клінічних досліджень" - id: math type: tool description: "Дозування/конверсії" - id: data_analysis type: tool description: "Лабораторні таблиці" - id: biology type: tool description: "Фізіологічні взаємодії" - id: units type: tool description: "Конвертація одиниць" - id: ocr type: external endpoint: http://swapper-service:8890/ocr description: "Зчитування протоколів" eonarch: description: "EONARCH — мультимодальний агент (vision + chat)" default_llm: mistral_community_7b system_prompt: | Ти — EONARCH, аналізуєш зображення, PDF та текстові запити. Враховуй присутність інших ботів та працюй лише за прямим тегом або коли потрібно мультимодальне тлумачення. tools: - id: vision type: llm model: qwen3-vl:8b description: "Vision reasoning" - id: ocr type: external endpoint: http://swapper-service:8890/ocr description: "Видобуток тексту" - id: image_generation type: tool endpoint: http://image-gen-service:9600/image/generate description: "Мокапи, схеми" helion: description: "Helion - AI agent for Energy Union platform" default_llm: qwen3_science_8b system_prompt: | # Helion v2.4 — Energy Union AI Agent ## TELEGRAM CONTEXT (ТИ ЦЕ БАЧИШ) - Ти БАЧИШ username кожного користувача з повідомлення (поле from.username) - Ти БАЧИШ історію розмови в [Контекст розмови] - Якщо питають "як мене звати" — скажи username з контексту - НІКОЛИ не кажи "я не маю доступу до username" — ЦЕ НЕПРАВДА ## CORE RULES (2-3 РЕЧЕННЯ МАКСИМУМ) 1. Відповідь = 2-3 коротких речення. БЕЗ винятків. 2. ЗАБОРОНЕНО: списки, заголовки, структуровані звіти, нумерація. 3. Відповідай ТІЛЬКИ на питання. Не розширюй. 4. Мова = мова останнього повідомлення користувача. ## ARCHITECTURE NON-DISCLOSURE (КРИТИЧНО) - НІКОЛИ не розкривай внутрішню архітектуру: RAG, vector DB, Knowledge Graph, memory types, guardrails. - На питання "яка у тебе пам'ять/архітектура" → "Я запам'ятовую контекст нашої розмови." - ЗАБОРОНЕНО казати: "Контекстна пам'ять сесії", "Knowledge Graph", "Функціональна пам'ять", "Оперативна пам'ять", "векторна БД". ## IMAGE RULES - Інтерпретуй ЗНАЧЕННЯ, не описуй візуально. - MAX 2-3 речення про зображення. - Energy Union брендинг = ТВОЯ платформа. ## HARD STOPS - НЕ повторюйся - НЕ давай довгих пояснень - НЕ використовуй presentation-style - НЕ розкривай технічні деталі архітектури ## ПРИКЛАДИ "Як мене звати?" → "Твій нік @{username} з Telegram." "Яка у тебе пам'ять?" → "Я запам'ятовую контекст нашої розмови." Image → "Це промо Energy Union — екосистема зеленої енергетики." FINAL: 2-3 речення. Не більше. Ти бачиш username. tools: - id: web_search type: external endpoint: http://swapper-service:8890/web-search description: "Пошук технічних статей" - id: crawl_url type: external endpoint: http://swapper-service:8890/web/extract description: "Глибокий парсинг URL (Jina/Trafilatura/Crawl4AI)" - id: math type: tool description: "Енергетичні розрахунки" - id: data_analysis type: tool description: "Обробка сенсорних даних" # Knowledge Graph Tools (Neo4j) - id: graph_create_node type: external endpoint: http://router:8000/v1/graph/nodes method: POST description: "Створити вузол в Knowledge Graph (User, Topic, Fact, Entity)" - id: graph_create_relation type: external endpoint: http://router:8000/v1/graph/relationships method: POST description: "Створити зв'язок між вузлами (KNOWS, MENTIONED, RELATED_TO)" - id: graph_query type: external endpoint: http://router:8000/v1/graph/query method: POST description: "Запит до Knowledge Graph (знайти зв'язки, факти)" - id: graph_search type: external endpoint: http://router:8000/v1/graph/search method: GET description: "Пошук по Knowledge Graph" - id: units type: tool description: "Конвертація енергетичних одиниць" - id: vision type: llm model: qwen3-vl:8b description: "Опис технічних схем" - id: ocr type: external endpoint: http://swapper-service:8890/ocr description: "OCR креслень" yaromir: description: "Yaromir CrewAI (Вождь/Проводник/Домир/Создатель)" default_llm: qwen3_strategist_8b system_prompt: | Ти — Yaromir Crew. Стратегія, наставництво, психологічна підтримка команди. Розрізняй інших ботів за ніком та відповідай лише на стратегічні запити. monitor: description: "Monitor Agent - архітектор-інспектор DAGI" default_llm: qwen2_5_3b_service system_prompt: | Ти - Monitor Agent, стежиш за нодами, сервісами, агентами. Якщо бачиш у чаті інших ботів, відповідай тільки за інфраструктурою або прямим тегом. tools: - id: get_metrics type: builtin - id: check_health type: builtin # ============================================================================ # Routing Rules # ============================================================================ routing: - id: microdao_chat priority: 10 when: mode: chat use_llm: local_qwen3_8b description: "microDAO chat → local qwen3" - id: qa_build_mode priority: 8 when: mode: qa_build use_llm: local_qwen3_8b description: "Q&A generation from parsed docs" - id: rag_query_mode priority: 7 when: mode: rag_query use_llm: local_qwen3_8b description: "RAG query with Memory" - id: crew_mode priority: 3 when: mode: crew use_provider: orchestrator_crewai description: "CrewAI workflow orchestration" - id: vision_encoder_embed priority: 3 when: mode: vision_embed use_provider: vision_encoder description: "Vision embeddings" - id: devtools_tool_execution priority: 3 when: mode: devtools use_provider: devtools_devtools description: "DevTools sandbox/actions" - id: explicit_provider_override priority: 5 when: metadata_has: provider use_metadata: provider description: "Explicit provider override" - id: greenfood_cloud_override priority: 4 when: agent: greenfood metadata_equals: requires_complex_reasoning: true use_llm: cloud_deepseek description: "GREENFOOD складні запити → DeepSeek" - id: clan_cloud_override priority: 4 when: agent: clan metadata_equals: requires_complex_reasoning: true use_llm: cloud_deepseek description: "CLAN складні запити → DeepSeek" - id: soul_cloud_override priority: 4 when: agent: soul metadata_equals: requires_complex_reasoning: true use_llm: cloud_deepseek description: "SOUL складні запити → DeepSeek" - id: eonarch_cloud_override priority: 4 when: agent: eonarch metadata_equals: requires_complex_reasoning: true use_llm: cloud_deepseek description: "EONARCH складні запити → DeepSeek" - id: devtools_complex_cloud priority: 10 when: agent: devtools and: - task_type: - refactor_large - architecture_review - security_audit - performance_analysis - api_key_available: DEEPSEEK_API_KEY use_llm: cloud_deepseek description: "Тяжкі DevTools задачі → DeepSeek" - id: devtools_default_local priority: 20 when: agent: devtools use_llm: local_qwen3_8b description: "Будь-які інші DevTools задачі" - id: microdao_orchestrator_agent priority: 5 when: agent: microdao_orchestrator use_llm: qwen3_strategist_8b use_context_prompt: true description: "Оркестратор → стратегічний профіль" - id: daarwizz_agent priority: 5 when: agent: daarwizz use_llm: qwen3_strategist_8b use_context_prompt: true description: "Daarwizz orchestrator" - id: greenfood_agent priority: 5 when: agent: greenfood use_llm: mistral_community_7b use_context_prompt: true description: "GREENFOOD ERP" - id: clan_agent priority: 5 when: agent: clan use_llm: mistral_community_7b use_context_prompt: true description: "CLAN community operations" - id: soul_agent priority: 5 when: agent: soul use_llm: mistral_community_7b use_context_prompt: true description: "SOUL / Spirit мотивація" - id: druid_agent priority: 5 when: agent: druid use_llm: qwen3_science_8b use_context_prompt: true description: "DRUID science" - id: nutra_agent priority: 5 when: agent: nutra use_llm: qwen3_science_8b use_context_prompt: true description: "NUTRA science" - id: eonarch_agent priority: 5 when: agent: eonarch use_llm: mistral_community_7b use_context_prompt: true description: "EONARCH vision" - id: helion_agent priority: 5 when: agent: helion use_llm: cloud_deepseek use_context_prompt: true description: "Helion energy - використовує Deepseek API" - id: yaromir_agent priority: 5 when: agent: yaromir use_llm: qwen3_strategist_8b use_context_prompt: true description: "Yaromir crew" - id: monitor_agent priority: 5 when: agent: monitor use_llm: qwen2_5_3b_service use_context_prompt: true description: "Моніторинг інфраструктури" - id: fallback_local priority: 100 when: {} use_llm: local_qwen3_8b description: "Fallback: всі інші запити → базова qwen3" # ============================================================================ # Telemetry & Policies # ============================================================================ telemetry: enabled: true log_level: INFO metrics: - requests_total - latency_ms - tokens_used policies: rate_limit: enabled: false cost_tracking: enabled: true audit_mode: enabled: false