Bir test, bir aramayı metin olarak oynatır: simüle edilen arayan scenario senaryosunu canlandırır, ajan taslağından (talimatlar, ilk mesaj ve bilgi) yanıt verir ve bir değerlendirici konuşmayı success_criteria ölçütüne göre denetler. Önemli aramalar için testler yazın, her değişiklikten sonra çalıştırın ve geçtiklerinde yayımlayın.
curl https://evasay.com/api/v1/voice/agents/AGENT_ID/tests \
-X POST \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"name": "Move a booking",
"scenario": "A regular customer wants to move Friday 3 pm to Saturday morning.",
"success_criteria": "Offers Saturday times and confirms the new time and the customer'"'"'s name.",
"max_turns": 8
}'
POST /agents/{id}/test-runs, ajanın tüm testlerini veya test_ids içindekileri çalıştırır ve her test için bir çalıştırma döndürür (status: "running"). status değeri passed, failed veya error olana kadar GET /test-runs/{id} uç noktasını sorgulayın; o zaman çalıştırmada transcript ve değerlendiricinin reason alanı bulunur (İngilizce, veya reason_language: "zh" ile Çince). Her çalıştırma Credits tutar; tutar paneldeki testlerin yanında gösterilir. Çalıştırmalar bakiyenin karşılayamadığı ilk testte durur ve not_started kalanları listeler. Oynatılamayan bir çalıştırma iade edilir. Testler ajanın ne söylediğini denetler, sesini veya zamanlamasını değil, ve fonksiyonlarını çağırmaz: bunları önceden POST /tools/{id}/test ile deneyin. Bir ajanın en fazla 30 testi olur; PATCH ve DELETE /agents/{id}/tests/{test_id} bir testi değiştirir veya kaldırır.
Tam aramaların (type: "simulation", varsayılan) yanı sıra bir test tek bir yanıtı da kontrol edebilir. type: "next_reply", yanıttan önceki ve arayanla biten konuşmayı (chat_history; [{role, text}], role değeri caller veya agent) ve ajanın sonraki yanıtı için success_criteria alır. type: "tool_call", chat_history ve expected_tool {name, arguments, match} alır: ajan name fonksiyonunu (kendi fonksiyonlarından biri ya da end_call, transfer_call, handoff_to_agent) arguments ile çağırmalıdır; değerler tam olarak (kenar boşlukları kırpılır, büyük/küçük harf fark etmez) ya da match: "judge" ile anlamına göre karşılaştırılır; ayrıca geçirdiği argümanlar dikkate alınmaz. Bir çalıştırmanın transcript alanı, ajanın çağırdığı fonksiyonları tool_calls içinde gösterir.
POST /agents/{id}/tests/generate, ajanın taslağından (talimatlar, bilgi ve fonksiyonlar) test önerir. count (1–10, varsayılan 5), types, focus (neleri kapsamalı) ve language (adlar ve ölçütler için en veya zh) alır, bir çalıştırma kadar Credits tutar ve gözden geçirip POST /agents/{id}/tests uç noktasına göndereceğiniz taslakları döndürür; save: true ile bunları kaydeder.