# Create & Configure

> Set up your Human Agent in the Ojin dashboard — pick a mode, configure appearance and behaviour, and go online.

## Prerequisites

1. An Ojin account with an active API key — [get your API key](/getting-started/authentication.md)

## Creating an Agent

Head to the [Ojin dashboard](https://ojin.ai/dashboard) and create a new agent. Give it a name and pick your mode:

* **Ojin Agent** — Ojin handles everything: the conversational pipeline and avatar rendering. You just configure the personality and appearance.
* **Third-Party Agent** — you bring your own speech-to-speech provider (Hume, ElevenLabs Agents, or Ultravox). Ojin adds the visual avatar.

### Starting from a Preset

If you choose Ojin Agent mode, you can start from a preset — a ready-made template that pre-fills the face, voice, system prompt, and behaviour for common use cases like Customer Support, Sales Assistant, or Receptionist. You can customize everything after creation.

Alternatively, start blank and configure each field yourself.

## Configuring an Ojin Agent

### System Prompt

Write a prompt that defines how the agent behaves — its personality, knowledge, tone, and any instructions for the conversation. This works the same as a system prompt for any LLM.

### Face

Pick a visual appearance for your agent. The face is powered by Ojin's avatar model [ojin/oris-portrait](/models/oris-portrait.md), which generates lifelike personas from a single reference image. Browse the available face configurations in the dashboard and select the one that best fits your agent's personality.

### Voice

Select a TTS voice for the agent's speech output. The voice determines how the agent sounds when it responds.

### Behaviour

Configure how the agent interacts:

* **Greeting** — the first thing the agent says when a session starts (e.g., "Hi, how can I help you today?")
* **Vocal burst** — a short sound the agent makes while listening (e.g., "mhm", "uh-huh") to signal active listening
* **Nudge** — a message the agent sends if the user stays silent for a while

### Advanced Settings

Fine-tune the agent's audio processing:

* **VAD stop seconds** — how long to wait after the user stops speaking before the agent responds (default: 0.5s)
* **Min volume** — minimum audio volume threshold to detect speech (default: 0.1)
* **Noise filter** — toggle background noise filtering (default: off)

### Session Limit

Set the maximum duration for a single session in seconds. Default is 600 seconds (10 minutes). When the limit is reached, the session ends automatically.

## Configuring a Third-Party Agent

### Face

Same as Ojin Agent — pick a visual appearance using Ojin's avatar model [ojin/oris-portrait](/models/oris-portrait.md). Regardless of which provider powers the conversation, Ojin renders the avatar.

### Provider

Select your speech-to-speech provider from the dropdown:

* **Hume** — enter your Hume API key. Config ID is optional (Hume can use a default config).
* **ElevenLabs Agents** — enter your ElevenLabs API key and your ElevenLabs agent ID (required).
* **Ultravox** — enter your Ultravox API key. Config ID is optional.

{% hint style="warning" %}
Your provider API key is encrypted at rest and never displayed after you save it. To rotate a key, enter the new one in the dashboard — it takes effect for new sessions immediately.
{% endhint %}

## Going Online

When your agent is configured, toggle its status to **online** in the [dashboard](https://ojin.ai/dashboard). The system validates that all required fields are filled before allowing the agent to go live:

* **Ojin Agent** requires: system prompt, voice, and face
* **Third-Party Agent** requires: provider, API key, and face (plus any provider-specific required fields)

If anything is missing, the dashboard tells you which fields need attention.

## Concurrency

The **max concurrency** setting controls how many simultaneous sessions your agent can handle. Default is 1 — meaning one user can talk to the agent at a time. Increase this if you expect multiple concurrent users.

When all slots are in use, new connection attempts receive a `concurrency_limit` error with a `retry_after_seconds` hint.

## Next Steps

* [**Widget Integration**](/apps/overview/widget-integration.md) — add the agent to your web page
* [**Session API Reference**](/apps/overview/api-reference.md) — for custom integrations


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ojin.ai/apps/overview/configure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
