Testi käy läpi yhden puhelun tekstinä: simuloitu soittaja esittää scenario-kuvauksen, agentti vastaa luonnoksestaan (ohjeet, ensimmäinen viesti ja tietämys), ja arvioija tarkistaa keskustelun success_criteria-ehtoja vasten. Kirjoita testit tärkeille puheluille, aja ne jokaisen muutoksen jälkeen ja julkaise, kun ne menevät läpi.
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 ajaa kaikki agentin testit, tai test_ids-listan testit, ja vastaa yhdellä ajolla testiä kohden (status: "running"). Kysy GET /test-runs/{id}, kunnes status on passed, failed tai error; silloin ajossa on transcript ja arvioijan reason (englanniksi, tai kiinaksi asetuksella reason_language: "zh"). Jokainen ajo maksaa Credits-krediittejä, jotka näkyvät testien kohdalla hallintapaneelissa; ajot pysähtyvät ensimmäiseen, jota saldo ei riitä maksamaan, ja not_started luettelee loput. Ajo, joka ei onnistu, hyvitetään. Testit tarkistavat, mitä agentti sanoo, eivät ääntä tai ajoitusta, eivätkä ne kutsu sen funktioita: esikatsele ne POST /tools/{id}/test-kutsulla. Agentilla voi olla enintään 30 testiä; PATCH ja DELETE /agents/{id}/tests/{test_id} muuttavat tai poistavat testin.
Koko puhelujen (type: "simulation", oletus) lisäksi testi voi tarkistaa yhden vastauksen. type: "next_reply" ottaa chat_history-keskustelun, joka edeltää vastausta ja päättyy soittajaan ([{role, text}], jossa role on caller tai agent), sekä success_criteria-ehdot agentin seuraavalle vastaukselle. type: "tool_call" ottaa chat_history ja expected_tool {name, arguments, match}: agentin pitää kutsua name-funktiota (omaansa tai end_call, transfer_call, handoff_to_agent) arvoilla arguments, joita verrataan täsmälleen (tekstistä poistetaan reunojen välilyönnit, kirjainkoolla ei väliä) tai asetuksella match: "judge" merkityksen mukaan; muita argumentteja ei tarkisteta. Ajon transcript näyttää kutsutut funktiot kentässä tool_calls.
POST /agents/{id}/tests/generate ehdottaa testejä agentin luonnoksen perusteella: ohjeiden, tietämyksen ja funktioiden. Se ottaa count (1–10, oletus 5), types, focus (mitä katetaan) ja language (en tai zh, nimille ja ehdoille), maksaa Credits-krediittejä kuin yksi ajo ja palauttaa luonnoksia, jotka tarkistat ja lähetät kutsulla POST /agents/{id}/tests; asetuksella save: true ne tallennetaan.