> ## Documentation Index
> Fetch the complete documentation index at: https://anam.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Understanding Personas

> Learn how AI personas work and how to customize them

A persona is a complete AI agent: a face, a voice, an LLM, and a system prompt packaged together. You configure a persona, create a session token, and stream it to your users.

## The persona configuration

Every persona is defined by a single configuration object:

```javascript theme={"system"}
const personaConfig = {
  name: "Cara",
  avatarId: "30fa96d0-26c4-4e55-94a0-517025942e18",
  voiceId: "6bfbe25a-979d-40f3-a92b-5394170af54b",
  llmId: "a7cf662c-2ace-4de1-a21e-ef0fbf144bb7",
  systemPrompt:
    "You are Cara, a helpful customer service representative. You're friendly, knowledgeable, and always try to solve problems efficiently. Keep responses conversational and under 50 words unless explaining something complex.",
};
```

Each field maps to a component of the persona:

| Field          | What it controls                             | Learn more                                                                                       |
| -------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| `name`         | Internal label for logs and analytics        | Optional                                                                                         |
| `avatarId`     | The face and expressions users see           | [Avatar Gallery](/personas/avatars/gallery), [Custom Avatars](/concepts/creating-custom-avatars) |
| `voiceId`      | How the persona sounds                       | [Voice Gallery](/resources/voice-gallery), [Custom Voices](/concepts/custom-voices)              |
| `llmId`        | Which language model powers the conversation | [Available LLMs](/concepts/available-llms), [Custom LLMs](/personas/llms/custom-llms)            |
| `systemPrompt` | Personality, behavior, and instructions      | [Prompting Guide](/personas/llms/prompting-guide)                                                |

You can also extend a persona with a [Knowledge Base](/personas/knowledge/overview) for document-grounded answers, and [Tools](/personas/tools/overview) for taking actions during a conversation.

## Persona lifecycle

<Steps>
  <Step title="Configure">
    Define the persona's appearance, voice, and personality in a configuration object.
  </Step>

  <Step title="Create a session token">
    Your server exchanges the persona configuration and your API key for a short-lived session token.
  </Step>

  <Step title="Stream">
    The client uses the session token to start the avatar stream and begin the conversation.
  </Step>

  <Step title="Conversation">
    Real-time back-and-forth between the persona and the user.
  </Step>

  <Step title="Session end">
    The conversation ends and the session is cleaned up.
  </Step>
</Steps>

## Experimenting in the Lab

The easiest way to try different avatars, voices, and LLMs is the playground in [Anam Lab](https://lab.anam.ai). From the build page you can swap components, preview over 400 voices, and copy IDs into your own code when you're happy with the result.

## Next steps

<CardGroup cols={2}>
  <Card title="Prompting Guide" icon="pen" href="/personas/llms/prompting-guide">
    Write system prompts that produce natural, conversational personas.
  </Card>

  <Card title="Session Options" icon="gear" href="/personas/session/duration">
    Configure session duration, voice detection, and greeting behavior.
  </Card>
</CardGroup>
