Prompt Chain

Test ElevenLabs Voice AI Agents

Promptfoo example testing ElevenLabs Conversational AI voice agents - multi-turn dialogue scored on weighted criteria, tool use, cost, and latency.

Works with elevenlabs

91
Spark score
out of 100
Updated 13 days ago
Source checked Sep 7, 2026
Version code-scan-action-0.2

Add to Favorites

Why it matters

Evaluate and refine ElevenLabs voice AI agents through multi-turn conversational testing. Ensure your voice agents perform as expected in dynamic, interactive scenarios.

Outcomes

What it gets done

01

Test multi-turn conversations with ElevenLabs agents.

02

Evaluate voice AI performance in simulated dialogues.

03

Identify and address issues in agent responsiveness and coherence.

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/pfoo-elevenlabs-agents | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

Elevenlabs Agents

This Promptfoo example tests ElevenLabs conversational AI agents across three variants - GPT-4o-backed, Claude-backed, and tool-enabled - using weighted evaluation criteria, a simulated user persona, and cost and latency assertions. Use it as a template when testing a voice or chat conversational agent's ability to greet, understand, resolve requests, and use tools, with cost and latency tracking.

What it does

This Promptfoo example tests ElevenLabs Conversational AI voice agents with multi-turn dialogue. It checks agent conversation quality, evaluation against named criteria, simulated-user behavior, tool-calling, and cost/latency metrics. An agent is configured under agentConfig - name, prompt, firstMessage, language, voiceId (example: 21m00Tcm4TlvDq8ikWAM), llmModel (example: gpt-4o), temperature, and maxTokens. Evaluation runs against a preset library of eight named criteria, each with a weight and a passing threshold: greeting (0.8/0.8), understanding (1.0/0.9), accuracy (1.0/0.9), helpfulness (0.9/0.8), professionalism (0.7/0.8), empathy (0.8/0.7), efficiency (0.7/0.7), and resolution (1.0/0.8). A simulatedUser block drives the other side of the conversation with its own prompt, temperature, and responseStyle (concise/verbose/casual/formal) - the example ships a "frustrated but polite" customer persona. Example tools available to an agent include get_weather, search_knowledge_base, create_ticket, send_email, get_order_status, schedule_callback, and transfer_agent.

Test prompts can be supplied in three formats: plain text (treated as the first user message), multi-line text with User:/Agent: role prefixes, or a structured JSON object with a turns array of {speaker, message} pairs.

When to use - and when NOT to

Use it as a template for testing a voice conversational agent's ability to greet, understand, and resolve user requests across multiple turns - including tool-calling and a simulated adversarial or difficult user - while tracking cost and latency. Do not use it if you're not building on ElevenLabs Conversational Agents, or if a simpler single assertion already covers your evaluation needs.

Inputs and outputs

Set up with npx promptfoo@latest init --example provider-elevenlabs/agents, then cd provider-elevenlabs/agents. Input: the YAML config - agentConfig (prompt, voice, LLM model, temperature), the criteria presets to evaluate against, optional tool definitions, and a simulatedUser persona - plus the multi-turn test prompts in one of the three supported formats. Output: an automated grading report on a 0-1 scale per criterion, tool-usage tracking, and per-conversation/per-turn cost tracking, run via npx promptfoo@latest eval -c ./promptfooconfig.yaml and viewable with npx promptfoo@latest view.

Integrations

Requires an ElevenLabs API key (ELEVENLABS_API_KEY). Runs through Promptfoo's eval/view CLI and links out to the ElevenLabs Conversational AI docs, the Agent Configuration guide, and ElevenLabs' own pricing page for cost reference.

What to look for when reviewing a run: conversation flow across turns, the automated evaluation scores per criterion, when and how the agent calls its tools, response quality, and per-conversation/per-turn cost.

Who it's for

Teams building voice-based conversational agents on ElevenLabs who need multi-criterion, cost- and latency-aware evaluation across multi-turn conversations, including tool-calling agents.

Source README

provider-elevenlabs/agents (ElevenLabs Conversational Agents)

You can run this example with:

npx promptfoo@latest init --example provider-elevenlabs/agents
cd provider-elevenlabs/agents

Test and evaluate ElevenLabs voice AI agents with multi-turn conversations.

What this tests

  • Agent conversation quality: Multi-turn dialogue handling
  • Evaluation criteria: Greeting, understanding, accuracy, helpfulness
  • Simulated user behavior: Automated conversation testing
  • Tool usage: Agent tool calls and responses
  • Cost and latency metrics

Setup

Set your ElevenLabs API key:

export ELEVENLABS_API_KEY=your_api_key_here

Run the example

npx promptfoo@latest eval -c ./promptfooconfig.yaml

Or view in the UI:

npx promptfoo@latest eval -c ./promptfooconfig.yaml
npx promptfoo@latest view

What to look for

  1. Conversation flow: How well the agent maintains context across turns
  2. Evaluation scores: Automated grading on multiple criteria (0-1 scale)
  3. Tool usage: When and how the agent calls available tools
  4. Response quality: Agent's ability to understand and respond accurately
  5. Cost tracking: Per-conversation and per-turn costs

Conversation formats

This example supports multiple input formats:

1. Plain text (treated as first user message)

prompts:
  - 'Hello, I need help with my order'

2. Multi-line with role prefixes

prompts:
  - |
    User: Hi, what's the weather like?
    Agent: I'd be happy to help! Where are you located?
    User: I'm in San Francisco

3. Structured JSON

prompts:
  - |
    {
      "turns": [
        {"speaker": "user", "message": "Hello"},
        {"speaker": "agent", "message": "Hi! How can I help?"},
        {"speaker": "user", "message": "I need support"}
      ]
    }

Agent configuration

Customize the agent behavior:

config:
  agentConfig:
    name: Customer Support Agent
    prompt: You are a helpful, empathetic customer support agent...
    firstMessage: Hi! I'm here to help. What can I do for you today?
    language: en
    voiceId: 21m00Tcm4TlvDq8ikWAM
    llmModel: gpt-4o
    temperature: 0.7
    maxTokens: 500

Evaluation criteria

Common criteria presets available:

  • greeting - Professional greeting (weight: 0.8, threshold: 0.8)
  • understanding - Accurate intent understanding (weight: 1.0, threshold: 0.9)
  • accuracy - Correct information (weight: 1.0, threshold: 0.9)
  • helpfulness - Helpful responses (weight: 0.9, threshold: 0.8)
  • professionalism - Professional tone (weight: 0.7, threshold: 0.8)
  • empathy - Empathetic responses (weight: 0.8, threshold: 0.7)
  • efficiency - Concise responses (weight: 0.7, threshold: 0.7)
  • resolution - Problem resolution (weight: 1.0, threshold: 0.8)

Simulated user

Configure the simulated user's behavior:

simulatedUser:
  prompt: Act as a customer who is frustrated but polite
  temperature: 0.8
  responseStyle: casual # concise | verbose | casual | formal

Available tools

Example tools for agents:

  • get_weather - Get current weather
  • search_knowledge_base - Search documentation
  • create_ticket - Create support ticket
  • send_email - Send email notification
  • get_order_status - Check order status
  • schedule_callback - Schedule callback
  • transfer_agent - Transfer to human agent

Learn more

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.