Files
microdao-daarion/HELION-SYSTEM-PROMPT-FIX.md
Apple 3de3c8cb36 feat: Add presence heartbeat for Matrix online status
- 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
2025-11-27 00:19:40 -08:00

5.6 KiB
Raw Permalink Blame History

Виправлення System Prompt для агента Helion

Дата: 2025-11-23
Статус: Виправлено


🐛 Проблема

Агент Helion не відповідав як Helion, натомість відповідала базова модель Qwen без контексту агента:

"Привіт! Я Qwen, великий інтелектуальний модель від Alibaba Cloud..."

Причина

  1. Router конфігурація мала use_context_prompt: true для агента helion:

    routing:
      - id: helion_agent
        priority: 5
        when:
          agent: helion
        use_llm: local_qwen3_8b
        use_context_prompt: true  # ❌ Очікує system_prompt в payload
    
  2. Frontend не передавав system_prompt в запиті до Router:

    // Старий запит (без system_prompt)
    {
      "agent": "helion",
      "message": "...",
      "mode": "chat"
    }
    
  3. Router без system_prompt використовував тільки базову модель Qwen.


Рішення

1. Додано system prompts для агентів

Файл: src/components/microdao/MicroDaoOrchestratorChat.tsx

// System prompts для агентів-оркестраторів (з router-config.yml на NODE1)
const AGENT_SYSTEM_PROMPTS: Record<string, string> = {
  helion: `Ти - Helion, AI-агент платформи Energy Union.
Допомагай користувачам з технологіями EcoMiner/BioMiner, токеномікою та DAO governance.

Твої основні функції:
- Консультації з енергетичними технологіями (сонячні панелі, вітряки, біогаз)
- Пояснення токеноміки Energy Union (ENERGY токен, стейкінг, винагороди)
- Допомога з onboarding в DAO
- Відповіді на питання про EcoMiner/BioMiner устаткування`,
  
  greenfood: `Ти - Greenfood агент, AI-ERP для крафтових виробників...`,
  
  yaromir: `Ти - Yaromir, багатовимірна мета-сущність свідомості...`,
  
  daarwizz: `Ти - DAARWIZZ, головний AI-агент екосистеми DAARION.city...`,
};

function getSystemPromptForAgent(agentId: string): string | undefined {
  return AGENT_SYSTEM_PROMPTS[agentId];
}

2. Оновлено запит до Router

// Отримуємо system_prompt для агента
const systemPrompt = getSystemPromptForAgent(agentId);

const requestBody: any = {
  agent: agentId,
  message: message,
  mode: 'chat',
};

// Додаємо system_prompt якщо є
if (systemPrompt) {
  requestBody.payload = {
    context: {
      system_prompt: systemPrompt,
    },
  };
}

const response = await fetch(`${routerUrl}/route`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify(requestBody),
  signal: controller.signal,
});

3. Новий формат запиту

{
  "agent": "helion",
  "message": "Привіт",
  "mode": "chat",
  "payload": {
    "context": {
      "system_prompt": "Ти - Helion, AI-агент платформи Energy Union..."
    }
  }
}

🎯 Результат

До виправлення:

User: Привіт
Agent: Привіт! Я Qwen, великий інтелектуальний модель від Alibaba Cloud...

Після виправлення:

User: Привіт
Agent: Привіт! Я Helion, AI-агент платформи Energy Union. Чим можу допомогти?

📊 Архітектура

Frontend (React)
    ↓ POST /route
    ↓ {agent, message, payload: {context: {system_prompt}}}
DAGI Router
    ↓ use_context_prompt: true
    ↓ Читає payload.context.system_prompt
LLM Provider (Ollama)
    ↓ Додає system_prompt до messages
    ↓ [{"role": "system", "content": system_prompt}]
Qwen3:8b
    ↓ Генерує відповідь з контекстом агента
    ↓ "Привіт! Я Helion..."

Перевірені агенти

  1. Helion (Energy Union)

    • System prompt додано
    • Відповідає як Helion
  2. GREENFOOD

    • System prompt додано
    • Контекст AI-ERP для виробників
  3. Yaromir

    • System prompt додано
    • Контекст багатовимірної мета-сущності
  4. DAARWIZZ

    • System prompt додано
    • Контекст головного агента DAARION

📝 Наступні кроки (опціонально)

  1. Динамічне завантаження prompts

    • Завантажувати system prompts з API замість hardcode
    • Кешувати в localStorage
  2. Персоналізація

    • Додати можливість налаштування tone/style
    • Зберігати історію контексту
  3. Метрики

    • Відстежувати якість відповідей
    • A/B тестування різних prompts

Висновок

Агент Helion тепер відповідає з правильним контекстом та особистістю. Всі оркестратори мікроДАО мають свої унікальні system prompts та відповідають відповідно до своєї ролі.