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

194 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Виправлення System Prompt для агента Helion
**Дата:** 2025-11-23
**Статус:** ✅ Виправлено
---
## 🐛 Проблема
Агент Helion не відповідав як Helion, натомість відповідала базова модель Qwen без контексту агента:
```
"Привіт! Я Qwen, великий інтелектуальний модель від Alibaba Cloud..."
```
### Причина
1. **Router конфігурація** мала `use_context_prompt: true` для агента `helion`:
```yaml
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:
```typescript
// Старий запит (без system_prompt)
{
"agent": "helion",
"message": "...",
"mode": "chat"
}
```
3. **Router** без `system_prompt` використовував тільки базову модель Qwen.
---
## ✅ Рішення
### 1. Додано system prompts для агентів
**Файл:** `src/components/microdao/MicroDaoOrchestratorChat.tsx`
```typescript
// 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
```typescript
// Отримуємо 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. Новий формат запиту
```json
{
"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 та відповідають відповідно до своєї ролі.