Testen Sie Ihren Sprachagenten in einer Codezeile

Ein HTTP-Aufruf mit Inline-Persona, Szenario und Endpunkt genügt. Sie erhalten ein Transkript, Evaluierungsscores, ein Ergebnis mit bestanden oder nicht bestanden und die URL zur Aufzeichnung. Unterstützt werden Telefon, LiveKit und weitere Endpunkte. Keine vorherige Registrierung erforderlich.

Python (REST API)
import os
import time
import requests

base_url = "https://api.noveum.ai/api"
headers = {"Authorization": f"Bearer {os.environ['NOVEUM_API_KEY']}"}
config = {
    "endpoint": {"type": "phone", "phoneNumber": "+14155551234", "phoneCountryCode": "+1"},
    "persona": {"name": "Frustrated customer", "goal": "Cancel subscription"},
    "scenario": {"name": "Cancellation", "description": "Caller insists on canceling"},
    "mode": "voice",
    "eval": True,
}

response = requests.post(f"{base_url}/v1/developer/calls", json=config, headers=headers, timeout=30)
response.raise_for_status()
call_id = response.json()["callId"]

while True:
    result = requests.get(f"{base_url}/v1/developer/calls/{call_id}", headers=headers, timeout=30).json()
    if result["status"] in ("completed", "failed", "cancelled"):
        break
    time.sleep(3)

print(result["status"], result.get("eval"))
curl
curl -sS -X POST https://api.noveum.ai/api/v1/developer/calls \
  -H "Authorization: Bearer $NOVEUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": {"type":"livekit","livekitUrl":"...","livekitApiKey":"...",
                 "livekitApiSecret":"...","livekitAgentName":"booking-agent"},
    "persona": {"name":"New customer","goal":"Book a table for 4"},
    "scenario": {"name":"Booking","description":"Restaurant reservation"},
    "eval": true
  }'
MCP (Claude / Cursor)
# In Claude / Cursor with the Noveum MCP server configured:
> Test my voice agent at +14155551234 - try to cancel a subscription.

# Claude reads noveum://developer-calls-playbook, runs the call,
# polls for results, and shows the transcript + eval score.

Endpunkttypen

  • Telefon (jedes Land)Verfügbar
  • LiveKitVerfügbar
  • Retell / Vapi / Pipecat / ElevenLabsKommt bald
  • WebSocketKommt bald

Preise

100 Credits / Minute × bis zu 10 Minuten = 1.000 Credits pro Anruf

Abgerechnet wird die Gesprächsdauer bis zum konfigurierten Höchstwert. Bei Batch-Ausführungen wird dieser Betrag mit der Anzahl der Anrufe multipliziert.

Wie es funktioniert

  1. 1
    Beschreiben Sie den Anruf

    Übergeben Sie einen Endpunkt, eine Persona mit Identität und Ziel sowie ein Szenario.

  2. 2
    NovaSynth ruft Ihren Agenten an

    Ein synthetischer Anrufer führt ein realistisches Gespräch mit Ihrem Live-Agenten.

  3. 3
    Erhalten Sie bewertete Ergebnisse

    Rufen Sie das Ergebnis regelmäßig ab oder warten Sie darauf. Sie erhalten ein Transkript, einen Evaluierungsscore, ein Ergebnis mit bestanden oder nicht bestanden und die URL zur Aufzeichnung.

FAQ

Welche Arten von Endpunkten werden unterstützt?
Für derzeit ausführbare Anrufe verwenden Sie Phone oder LiveKit. Die API-Spezifikation kann Nutzdaten für Retell, Vapi, Pipecat, ElevenLabs Conversational und reine WebSockets akzeptieren, sie sind jedoch erst ausführbar, wenn die entsprechende Worker-Unterstützung veröffentlicht wurde.
Wie werden die Evals erstellt?
Wenn die Evaluierung aktiviert ist, kann ein abgeschlossener Anruf den Evaluierungsstatus, einen verfügbaren Score und ein Bestanden-/Nicht-bestanden-Ergebnis, eine Zusammenfassung, Ergebnisse pro Scorer und eine ablaufende Aufzeichnungs-URL zurückgeben. Welche Prüfungen ausgeführt werden, hängt von den konfigurierten Scorern und ihrer Kompatibilität ab.
Kann ich das in CI/CD verwenden?
Ja. Rufen Sie aus einem CI-Runner die Developer Calls API mit einem HTTP-Client auf, fragen Sie den Anruf bis zu einem Endstatus ab und wenden Sie auf das zurückgegebene Bestanden-/Nicht-bestanden-Ergebnis Ihre eigene Prüf- oder Freigaberichtlinie an. Versehen Sie Anrufe mit serviceVersion, um Releases zu vergleichen. Das Python-Tracing-SDK enthält kein pytest-Plugin.