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

# Agents

> Connect your voice & chat agents to Coval to launch simulated conversations

Each agent configuration acts as a reusable connection profile that can be referenced across multiple [simulations](/concepts/simulations/overview), evaluations, and [conversations](/concepts/conversations/overview) without requiring reconfiguration.

## How to Configure Agents

### Adding an Agent

<img src="https://mintcdn.com/coval-2e18a559/mhRq7SHqiBNYKmou/images/agents/connect_agent.gif?s=2225bac9baca405abfa8cefc290917cb" alt="Connect Agent Demo" height="400" className="rounded-lg" noZoom data-path="images/agents/connect_agent.gif" />

1. Navigate to the [Agents section](https://app.coval.dev/agents) in your dashboard
2. Click "Add New Agent"
3. Configure the connection parameters. These are specific to each agent type — see [Connect Your Agent](#connect-your-agent) for the fields your connection requires.
4. Set operational parameters:
   * **Language Preferences**: Primary and fallback language configurations
   * **Agent Behavior Prompts**: System prompts or behavioral guidelines
   * **Simulator Types**: Compatible simulation environments

### Attributes

In your agents, you can set specific [attributes](/concepts/attributes/overview) associated with that agent.
For example, if you have multiple agents representing different restaurant reservation services, you could define the attributes such as "opening\_hours" and "menu\_items".

You can embed these agent attributes into [test case scenarios](/concepts/test-sets/evaluation#utilizing-agent-attributes) or [metric prompts](/concepts/metrics/configuring-metrics#template-variables) by inserting `{{agent.attribute_name}}`.
In the example above, you could create a metric that asks:

```markdown theme={null}
Did the agent give the correct opening hours?  
Opening hours are `{{agent.opening_hours}}`
```

or, if you could use it in a test case:

```markdown theme={null}
Order two items from this list: {{agent.menu_items}}
```

## Test Your Connection

Once your agent is configured and saved, use the **Test connection** button in the agent config page to verify connectivity before running simulations.

**What gets tested:**

* [**WebSocket agents**](/concepts/agents/connections/chat-websocket) — Coval performs the WebSocket handshake and reports whether the connection was established successfully.
* [**HTTP / OpenAI-compatible agents**](/concepts/agents/connections/chat#connecting-an-openai-compatible-api) — Coval sends the initialization request and reports the response.

**Reading the result:**

* **Success** — A green confirmation appears and auto-dismisses after 60 seconds.
* **Failure** — A red alert stays visible with the error details. Expand the result to see the raw JSON response for debugging.

The button is disabled when you have unsaved changes. Save first, then test.

## Version history

Every config-changing save of an agent is recorded in its version history, so you can see how its connection and behavior configuration changed over time and tell which version a run executed against. See [Versioning](/concepts/versioning/overview) for how copy-on-save works and how to pull the history through the [v1 API](/api-reference/v1/agents/agents/list-agent-versions).

## Connect Your Agent

<CardGroup cols={2}>
  <Card title="Inbound Voice" icon="phone-arrow-down-left" href="/concepts/agents/connections/inbound-voice">
    Receive incoming phone calls for customer service scenarios
  </Card>

  <Card title="Outbound Voice" icon="phone-arrow-up-right" href="/concepts/agents/connections/outbound-voice">
    Make calls to users for sales and scheduling
  </Card>

  <Card title="Chat agent" icon="message" href="/concepts/agents/connections/chat">
    Standard HTTP chat, including OpenAI-compatible APIs
  </Card>

  <Card title="Chat WebSocket" icon="plug" href="/concepts/agents/connections/chat-websocket">
    Text chat over persistent WebSocket connections
  </Card>

  <Card title="Chat A2A (JSON-RPC)" icon="code" href="/concepts/agents/connections/chat-a2a">
    Text chat over the A2A v2 JSON-RPC protocol
  </Card>

  <Card title="OpenAI Realtime" icon="waveform" href="/concepts/agents/connections/openai-realtime">
    Voice-to-voice agents on the OpenAI Realtime API
  </Card>

  <Card title="Gemini Live" icon="waveform" href="/concepts/agents/connections/gemini-live">
    Voice-to-voice agents on Google Gemini Live
  </Card>

  <Card title="Pipecat Cloud" icon="cloud" href="/concepts/agents/connections/pipecat">
    Integrate with Pipecat Cloud agents
  </Card>

  <Card title="LiveKit" icon="video" href="/concepts/agents/connections/livekit">
    Advanced real-time communication platform
  </Card>
</CardGroup>
