# Character File

[Character Files](https://github.com/tars-sol/sona) (`src/types.ts`) define agent **personalities** and **capabilities** including biographical information, interaction styles, plugin configurations, and platform integrations.

The character file defines who your agent is - like a script for an actor. It includes:

* Biographical information and backstory
* Topics the agent can discuss
* Writing style and tone
* Which AI models to use
* Which plugins to load
* Which platforms to connect to

### Required Fields:

```
{
    "name": "character_name",           // Character's display name for identification and in conversations
    "modelProvider": "openai",          // AI model provider (e.g., anthropic, openai, groq, mistral, google)
    "targets": ["uniswap", "raydium", "li.fi"],   // Supported target types
    "plugins": [],                      // Array of plugins to use
    "settings": {                       // Configuration settings
        "ragKnowledge": false,          // Enable RAG for knowledge (default: false)
        "secrets": {},                  // API keys and sensitive data
        "voice": {},                    // Voice configuration
        "model": "string",              // Optional model override
        "modelConfig": {}               // Optional model configuration
    },
    "bio": [],                         // Character background as a string or array of statements
    "style": {                         // Interaction style guide
        "all": [],                     // General style rules
        "chat": [],                    // Chat-specific style
        "post": []                     // Post-specific style
    }
}
```

### Bio & Lore:

```
{
    "bio": [
        "Expert in blockchain trading",
        "Specializes in DeFi protocols"
    ],
    "lore": [
        "Made first $100K in the recent bear market",
        "Helped launch multiple DAOs"
    ]
}
```

### Style Guidelines:

```
{
    "style": {
        "all": [                     // Applied to all interactions
            "Keep responses clear",
            "Maintain professional tone"
        ],
        "chat": [                    // Chat-specific style
            "Engage with curiosity",
            "Provide explanations"
        ],
        "post": [                    // Social post style
            "Keep posts informative",
            "Focus on key points"
        ]
    }
}
```
