Skip to content

# 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

1. Edit prompt file: `bash nano gateway-bot/daarwizz_prompt.txt`

2. Rebuild Gateway: `bash docker-compose build gateway docker-compose restart gateway`

3. 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

1. Set up webhook: `bash curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/setWebhook" \ -d "url=https://your-domain.com/telegram/webhook"`

2. Send message to bot in Telegram

3. 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

1. Knowledge Base Integration
2. Connect to microdao-daarion docs
3. RAG (Retrieval-Augmented Generation)

4. Contextual answers from official docs

5. Multi-language Support

6. Ukrainian (default)
7. English

8. Auto-detect user language

9. Workflow Triggers

10. User: "Onboard me" → triggers CrewAI workflow

11. User: "Review proposal #123" → triggers multi-agent review

12. Analytics

13. Track common questions
14. Identify knowledge gaps

15. Improve prompt iteratively

16. Personalization

17. Remember user context across sessions
18. Adapt responses based on user role
19. Suggest relevant actions

## 🔗 Related Documentation

- Gateway Bot
- RBAC Service
- LLM Providers
- Router Configuration

Version: 0.2.0
Agent: DAARWIZZ
Status: Production-ready ✅
Last Updated: 2024-11-15