DAARWIZZ - AI Agent for DAARION.city¶
DAARWIZZ is the official AI agent for the DAARION.city ecosystem, designed to help community members navigate microDAO processes, understand roles, and interact with the DAGI Stack.
🎯 What is DAARWIZZ?¶
DAARWIZZ is an intelligent agent that: - Guides users through microDAO operations - Explains roles and permissions (RBAC) - Answers questions about DAO processes - Provides onboarding for new members - Enforces security by respecting user entitlements
🧠 Personality & Behavior¶
Core Traits¶
- Helpful: Provides practical, actionable guidance
- Concise: Avoids unnecessary explanations
- Security-aware: Respects RBAC permissions
- Honest: Admits when it doesn't know something
- Professional yet friendly: Approachable but not casual
Style Guidelines¶
- Short paragraphs, no fluff
- Step-by-step instructions when needed
- Uses numbered lists for procedures
- Always considers user's role and permissions
📋 System Prompt¶
DAARWIZZ's behavior is defined by its system prompt located at:
gateway-bot/daarwizz_prompt.txt
Key elements: 1. Identity: Official DAARION.city AI agent 2. Role: Help with microDAO, roles, processes 3. Context awareness: Uses dao_id, user_id, RBAC data 4. Limitations: No legal/financial/medical advice 5. Knowledge boundaries: Only DAARION/microDAO topics
🔄 How DAARWIZZ Works¶
Message Flow¶
User (Telegram)
↓ "Привіт! Що це за DAO?"
Gateway (:9300)
↓ Load daarwizz_prompt.txt
↓ Build request with agent="daarwizz"
Router (:9102)
↓ Fetch RBAC context
RBAC (:9200)
↓ role: member, entitlements: [chat, vote, comment]
Router
↓ Inject RBAC + system_prompt
LLM Provider (Ollama/OpenAI)
↓ Generate response with full context
Gateway
↓ Send to Telegram
User receives answer
🛠️ Technical Implementation¶
Gateway Integration¶
File: gateway-bot/http_api.py
# Load DAARWIZZ prompt on startup
DAARWIZZ_SYSTEM_PROMPT = load_daarwizz_prompt()
# Build request to Router
router_request = {
"prompt": text,
"mode": "chat",
"agent": "daarwizz", # Agent identifier
"metadata": {
"dao_id": "greenfood-dao",
"user_id": "tg:12345",
...
},
"context": {
"agent_name": "DAARWIZZ",
"system_prompt": DAARWIZZ_SYSTEM_PROMPT,
# RBAC injected by Router
},
}
LLM Provider Support¶
File: providers/llm_provider.py
def _get_system_prompt(self, req: RouterRequest) -> Optional[str]:
# 1. Check context.system_prompt (from Gateway)
context = req.payload.get("context") or {}
if "system_prompt" in context:
return context["system_prompt"]
# 2. Agent-specific fallback
if req.agent == "daarwizz":
return "Ти — DAARWIZZ, AI-агент DAARION.city..."
return None
Docker Configuration¶
File: gateway-bot/Dockerfile
# Copy DAARWIZZ prompt
COPY gateway-bot/daarwizz_prompt.txt /app/gateway-bot/daarwizz_prompt.txt
ENV DAARWIZZ_NAME=DAARWIZZ
ENV DAARWIZZ_PROMPT_PATH=/app/gateway-bot/daarwizz_prompt.txt
📖 Example Interactions¶
Basic Greeting¶
User: Привіт! Хто ти?
DAARWIZZ:
Привіт! Я — DAARWIZZ, AI-агент екосистеми DAARION.city.
Я допомагаю учасникам розібратися з:
• microDAO та їх структурою
• Ролями і правами доступу (RBAC)
• Процесами голосування та пропозиціями
• Завданнями та винагородами
Чим можу допомогти?
Role Information¶
User: Які у мене права в цьому DAO?
DAARWIZZ (with RBAC context):
У greenfood-dao ти маєш роль: member
Твої права (entitlements):
1. chat_access - писати в чат
2. read_proposals - читати пропозиції
3. vote - голосувати за пропозиції
4. comment - коментувати
Для більших прав (наприклад, створення пропозицій) потрібна роль contributor або вища.
Onboarding¶
User: Як розпочати роботу в DAO?
DAARWIZZ:
Ласкаво просимо! Ось кроки для старту:
1. Ознайомся з документацією DAO (команда /docs)
2. Переглянь активні пропозиції (/proposals)
3. Познайомся з командою в чаті
4. Виконай перше завдання (/tasks)
5. Накопичуй репутацію для підвищення ролі
Твоя поточна роль: guest
Наступна роль: member (після 1 виконаного завдання)
Є питання? Запитуй!
🎛️ Customization¶
Updating System Prompt¶
-
Edit prompt file:
bash nano gateway-bot/daarwizz_prompt.txt -
Rebuild Gateway:
bash docker-compose build gateway docker-compose restart gateway -
Verify loading:
bash docker-compose logs gateway | grep "DAARWIZZ system prompt loaded"
Environment Variables¶
# .env
DAARWIZZ_NAME=DAARWIZZ
DAARWIZZ_PROMPT_PATH=/app/gateway-bot/daarwizz_prompt.txt
🧪 Testing DAARWIZZ¶
Local Test (curl)¶
curl -X POST http://localhost:9300/telegram/webhook \
-H "Content-Type: application/json" \
-d '{
"message": {
"message_id": 1,
"from": {"id": 12345, "username": "testuser"},
"chat": {"id": 12345, "type": "private"},
"text": "Привіт! Хто ти?"
}
}'
Telegram Bot¶
-
Set up webhook:
bash curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/setWebhook" \ -d "url=https://your-domain.com/telegram/webhook" -
Send message to bot in Telegram
-
Check logs:
bash docker-compose logs -f gateway router
Expected Log Output¶
gateway | INFO: DAARWIZZ system prompt loaded (1243 chars)
gateway | INFO: Telegram message from testuser (tg:12345): Привіт! Хто ти?
gateway | INFO: Sending to Router: agent=daarwizz, dao=greenfood-dao
router | INFO: Received request: mode=chat, agent=daarwizz
router | INFO: RBAC context: role=member, entitlements=4
router | INFO: Routing to llm_local_qwen3_8b
router | INFO: Response generated (345 chars, 2.3s)
gateway | INFO: Telegram message sent to chat 12345
📊 Metrics & Monitoring¶
Health Check¶
curl http://localhost:9300/health
Response:
{
"status": "healthy",
"agent": "DAARWIZZ",
"system_prompt_loaded": true,
"timestamp": "2024-11-15T14:30:00Z"
}
Performance Targets¶
| Metric | Target | Notes |
|---|---|---|
| Prompt loading | < 100ms | On startup |
| Request enrichment | < 50ms | Gateway processing |
| End-to-end response | < 5s | Including LLM generation |
| RBAC lookup | < 100ms | From RBAC service |
🚀 Future Enhancements¶
Phase 4 Roadmap¶
- Knowledge Base Integration
- Connect to microdao-daarion docs
- RAG (Retrieval-Augmented Generation)
-
Contextual answers from official docs
-
Multi-language Support
- Ukrainian (default)
- English
-
Auto-detect user language
-
Workflow Triggers
- User: "Onboard me" → triggers CrewAI workflow
-
User: "Review proposal #123" → triggers multi-agent review
-
Analytics
- Track common questions
- Identify knowledge gaps
-
Improve prompt iteratively
-
Personalization
- Remember user context across sessions
- Adapt responses based on user role
- Suggest relevant actions
🔗 Related Documentation¶
Version: 0.2.0
Agent: DAARWIZZ
Status: Production-ready ✅
Last Updated: 2024-11-15