Skip to content

Agent Testing

Manage test cases and test folders for Conversational AI agent validation.

Overview

The Agent Testing service enables:

  • Test Organization: Create folders to organize test cases
  • Test Management: View, delete, and move tests between folders
  • Test Summaries: Get summaries for multiple tests at once
  • Bulk Operations: Move multiple tests in a single operation

Test Folder Management

Create Test Folder

// Create top-level folder
folder, err := client.AgentTesting().CreateFolder(ctx, &elevenlabs.CreateTestFolderRequest{
    Name: "Regression Tests",
})
if err != nil {
    log.Fatal(err)
}

fmt.Printf("Created folder: %s (ID: %s)\n", folder.Name, folder.ID)

Create Nested Folder

// Create folder inside another folder
subFolder, err := client.AgentTesting().CreateFolder(ctx, &elevenlabs.CreateTestFolderRequest{
    Name:           "Edge Cases",
    ParentFolderID: parentFolderID,
})

Get Folder Details

folder, err := client.AgentTesting().GetFolder(ctx, folderID)
if err != nil {
    log.Fatal(err)
}

fmt.Printf("Folder: %s\n", folder.Name)
fmt.Printf("Children: %d\n", folder.ChildrenCount)
fmt.Printf("Path: ")
for _, seg := range folder.Path {
    fmt.Printf("/%s", seg.Name)
}
fmt.Println()

Update Folder

folder, err := client.AgentTesting().UpdateFolder(ctx, folderID, &elevenlabs.UpdateTestFolderRequest{
    Name: "Regression Tests (Updated)",
})
if err != nil {
    log.Fatal(err)
}

fmt.Printf("Updated folder: %s\n", folder.Name)

Delete Folder

err := client.AgentTesting().DeleteFolder(ctx, folderID)
if err != nil {
    log.Fatal(err)
}

Listing Tests

List All Tests

resp, err := client.AgentTesting().ListTests(ctx, nil)
if err != nil {
    log.Fatal(err)
}

for _, test := range resp.Tests {
    fmt.Printf("Test: %s (%s)\n", test.Name, test.ID)
    fmt.Printf("  Type: %s\n", test.EntityType)
    fmt.Printf("  Folder: %s\n", test.FolderID)
}

if resp.HasMore {
    // Fetch next page
    nextPage, _ := client.AgentTesting().ListTests(ctx, &elevenlabs.ListTestsOptions{
        Cursor: resp.NextCursor,
    })
}

List Tests in Folder

resp, err := client.AgentTesting().ListTests(ctx, &elevenlabs.ListTestsOptions{
    ParentFolderID: folderID,
    PageSize:       20,
})

Search Tests

resp, err := client.AgentTesting().ListTests(ctx, &elevenlabs.ListTestsOptions{
    Search:   "refund",
    PageSize: 10,
})

Working with Tests

Get Response Test

test, err := client.AgentTesting().GetResponseTest(ctx, testID)
if err != nil {
    log.Fatal(err)
}

fmt.Printf("Test: %s\n", test.Name)
fmt.Printf("Type: %s\n", test.Type)
fmt.Printf("Folder: %s\n", test.FolderID)

Get Multiple Test Summaries

summaries, err := client.AgentTesting().GetResponseTestSummaries(ctx, []string{
    "test-id-1",
    "test-id-2",
    "test-id-3",
})
if err != nil {
    log.Fatal(err)
}

for id, summary := range summaries {
    fmt.Printf("%s: %s (Folder: %s)\n", id, summary.Name, summary.FolderID)
}

Delete Test

err := client.AgentTesting().DeleteTest(ctx, testID)
if err != nil {
    log.Fatal(err)
}

Bulk Operations

Move Tests to Folder

err := client.AgentTesting().BulkMoveTests(ctx, &elevenlabs.BulkMoveTestsRequest{
    TestIDs:        []string{"test-1", "test-2", "test-3"},
    TargetFolderID: targetFolderID,
})
if err != nil {
    log.Fatal(err)
}

fmt.Println("Tests moved successfully")

Move Tests to Root

// Leave TargetFolderID empty to move to root
err := client.AgentTesting().BulkMoveTests(ctx, &elevenlabs.BulkMoveTestsRequest{
    TestIDs: []string{"test-1", "test-2"},
    // TargetFolderID: "" - moves to root
})

Request Types

CreateTestFolderRequest

Field Type Description
Name string Folder name
ParentFolderID string Optional parent folder ID

UpdateTestFolderRequest

Field Type Description
Name string New folder name

ListTestsOptions

Field Type Description
PageSize int Maximum results
Cursor string Pagination cursor
ParentFolderID string Filter by folder
Search string Search query

BulkMoveTestsRequest

Field Type Description
TestIDs []string Test IDs to move
TargetFolderID string Destination folder (empty for root)

AgentTestFolder

Field Type Description
ID string Folder ID
Name string Folder name
ChildrenCount int Number of children
Path []AgentTestFolderSegment Path from root

TestSummary

Field Type Description
ID string Test ID
Name string Test name
FolderID string Parent folder ID
CreatedAtUnix int Creation timestamp
EntityType string Type of test entity
Path []AgentTestFolderSegment Full path

AgentResponseTest

Field Type Description
ID string Test ID
Name string Test name
Type string "llm", "tool", or "simulation"
FolderID string Parent folder ID

Example: Organize Tests by Category

package main

import (
    "context"
    "log"

    elevenlabs "github.com/plexusone/elevenlabs-go"
)

func main() {
    client, err := elevenlabs.NewClient()
    if err != nil {
        log.Fatal(err)
    }

    ctx := context.Background()

    // Create category folders
    categories := []string{"Unit Tests", "Integration Tests", "Regression Tests"}
    folderIDs := make(map[string]string)

    for _, category := range categories {
        folder, err := client.AgentTesting().CreateFolder(ctx, &elevenlabs.CreateTestFolderRequest{
            Name: category,
        })
        if err != nil {
            log.Printf("Warning: failed to create %s folder: %v", category, err)
            continue
        }
        folderIDs[category] = folder.ID
        log.Printf("Created folder: %s (ID: %s)", folder.Name, folder.ID)
    }

    // List all tests
    resp, err := client.AgentTesting().ListTests(ctx, &elevenlabs.ListTestsOptions{
        PageSize: 100,
    })
    if err != nil {
        log.Fatal(err)
    }

    // Categorize tests based on naming convention
    unitTests := []string{}
    integrationTests := []string{}

    for _, test := range resp.Tests {
        switch {
        case len(test.Name) > 5 && test.Name[:5] == "unit_":
            unitTests = append(unitTests, test.ID)
        case len(test.Name) > 5 && test.Name[:5] == "intg_":
            integrationTests = append(integrationTests, test.ID)
        }
    }

    // Move tests to appropriate folders
    if len(unitTests) > 0 {
        err := client.AgentTesting().BulkMoveTests(ctx, &elevenlabs.BulkMoveTestsRequest{
            TestIDs:        unitTests,
            TargetFolderID: folderIDs["Unit Tests"],
        })
        if err != nil {
            log.Printf("Warning: failed to move unit tests: %v", err)
        } else {
            log.Printf("Moved %d unit tests", len(unitTests))
        }
    }

    if len(integrationTests) > 0 {
        err := client.AgentTesting().BulkMoveTests(ctx, &elevenlabs.BulkMoveTestsRequest{
            TestIDs:        integrationTests,
            TargetFolderID: folderIDs["Integration Tests"],
        })
        if err != nil {
            log.Printf("Warning: failed to move integration tests: %v", err)
        } else {
            log.Printf("Moved %d integration tests", len(integrationTests))
        }
    }
}