Testaa agentti päästä päähän (API)
Suorita kertaluonteisia simulaatioita, rinnakkaisia skenaariosarjoja ja julkaisun hyväksyntäsarjoja ThunderPhone API:n kautta, jotta agentin regressiot havaitaan ennen kuin asiakkaat kuulevat ne.
Tekoälyagentin iterointi tarkoittaa sen kehotteen, työkalujen ja reunatapausten käsittelytavan iterointia. Simulaatioiden API suorittaa aitoja puheluita agenttia vastaan antamasi skenaariokehotteen avulla. Kohdistaminen agenttiin luo bottien välisen ajon; kohdistaminen puhelinnumeroon luo SIP-takaisinkytkentäajon. Jokainen ajo tuottaa aidon puhelulokin, jossa on litterointi, arviointi ja laskutus, joten näet tarkalleen, miten agentti toimii ja mitä se maksaa.
Käytä sitä seuraaviin:
- Julkaisua edeltäviin savutesteihin jokaisen kehoteasetuksen muokkauksen jälkeen
- CI:hin kytkettyihin regressiotestisarjoihin (liitä
test-call.completed-webhook → epäonnistuta koonti, jos pisteet laskevat) - Samanaikaisuusrajojen kuormitustestaukseen
Kertaluontoinen ajo: yksi suoritus
curl -X POST https://api.thunderphone.com/v1/simulations \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target_type": "agent",
"target_id": 12,
"direction": "outbound",
"scenario_prompt": "You are a polite caller asking about refund policy for order 12345.",
"consent_to_charge": true
}'Kentät:
| Kenttä | Tyyppi | Pakollinen | Kuvaus |
|---|---|---|---|
target_type | merkkijono | kyllä | agent tai phone_number |
target_id | kokonaisluku | kyllä | Agentin tunnus (tai puhelinnumeron tunnus) |
direction | merkkijono | ei | outbound (oletus; testisoittaja soittaa) tai inbound (testisoittaja vastaa) |
scenario_prompt | merkkijono | ei | Määrittää, mitä testibotti sanoo |
language / primary_language | merkkijono | ei | Testisoittajan kieli; tukemattomat koodit hylätään |
simulator_product | merkkijono | ei | testing (oletus) tai spark, kun haluat ihmismäisemmän simuloidun soittajan esimerkiksi lämpimän siirron konsultointitesteihin |
consent_to_charge | totuusarvo | kyllä | Arvon on oltava true. Arvioitu veloitus kattaa sekä valitun agentin että simuloidun soittajan sekä mahdollisen puheluyhteyden osuuden |
target_number | merkkijono | ei | Etäpuolen E.164-ohitus; muussa tapauksessa käytetään alustan testinumeroa |
mode on vain luku -kenttä, ja se johdetaan kentästä target_type: agent tuottaa
mode="bot", kun taas phone_number tuottaa mode="sip".
Vastaus on simulaatioajon objekti
tilassa status="queued". Kysy tilaa, kunnes status muuttuu arvoksi completed tai
failed; kun call_id on asetettu, lataa litterointi käyttämällä
GET /v1/calls/{call_id}/transcript.
Erät: rinnakkaiset skenaariot
Suorita N skenaariota samanaikaisesti — hyödyllistä regressiotestisarjoille, jotka osuvat jokaiseen tunnettuun reunatapaukseen rinnakkain:
curl -X POST https://api.thunderphone.com/v1/simulations/batches \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target_type": "agent",
"target_id": 12,
"direction": "outbound",
"run_count": 5,
"stagger_seconds": 2,
"scenario_prompts": [
"Ask about refund policy.",
"Ask for hours of operation.",
"Complain about a delayed shipment.",
"Ask to speak with a human.",
"Ask an unrelated trivia question."
],
"consent_to_charge": true
}'Vastaus sisältää run_ids-luettelon alisuoritusten tunnuksista. Hae erän
tila:
curl https://api.thunderphone.com/v1/simulations/batches/{batch_id} \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"run_count on rajattu arvoon 20; stagger_seconds porrastaa käynnistyksiä,
jotta agenttia ei kuormiteta liikaa (0–60 s).
Kytke se CI:hin
Luo julkaisuportin testisarja Simulaatiot-sivulla
(/dashboard/simulations) — valitse agentti, lisää skenaarioita käsin tai
luo ne agentin kehotteen pohjalta napsauttamalla Luo skenaarioita tekoälyllä
(valinnaisella reunatapaustarkistuksella) ja ryhmittele ne testisarjaksi.
Testisarja kiinnittää skenaarionsa ja agenttinsa sekä vähimmäisläpäisyasteen ja
valinnaisen nolla kriittistä epäonnistumista -säännön. Hyväksytyksi
vertailutasoksi tulevat läpäisseet ajot; myöhemmät läpäisystä epäonnistumiseen
siirtymät palautetaan regressioina.
Käytä CI:ssä organisaation API-avainta.
Tämä skripti käynnistää testisarjan, kysyy tilaa, kunnes arviointi ja vertailu
ovat valmiit, ja päättyy nollasta poikkeavalla paluuarvolla, ellei päätös ole
pass:
#!/usr/bin/env bash
set -euo pipefail
: "${THUNDERPHONE_API_KEY:?Set THUNDERPHONE_API_KEY}"
: "${THUNDERPHONE_ORG_ID:?Set THUNDERPHONE_ORG_ID}"
: "${THUNDERPHONE_SUITE_ID:?Set THUNDERPHONE_SUITE_ID}"
base="https://api.thunderphone.com/v1/orgs/${THUNDERPHONE_ORG_ID}/suites/${THUNDERPHONE_SUITE_ID}"
auth="Authorization: Bearer ${THUNDERPHONE_API_KEY}"
run_id="$(curl --fail --silent --show-error -X POST "${base}/run" \
-H "$auth" -H "Content-Type: application/json" -d '{}' | jq -r '.id')"
deadline=$((SECONDS + 1800))
while (( SECONDS < deadline )); do
result="$(curl --fail --silent --show-error \
"${base}/runs/${run_id}" -H "$auth")"
status="$(jq -r '.status' <<<"$result")"
if [[ "$status" == "completed" ]]; then
jq . <<<"$result"
[[ "$(jq -r '.verdict' <<<"$result")" == "pass" ]]
exit
fi
sleep 10
done
echo "ThunderPhone suite timed out" >&2
exit 1POST /v1/orgs/{org_id}/suites/{suite_id}/run palauttaa 202-vastauksen,
jossa on ajon tunnus. GET /v1/orgs/{org_id}/suites/{suite_id}/runs/{run_id}
palauttaa arvot status, verdict, pass_rate, critical_failure_count ja
vertailutason regressions-luettelon. Molemmat päätepisteet sitovat
URL-osoitteen organisaation API-avaimen organisaatioon.
Mallit
Kehotekohtainen regressioaineisto
Ylläpidä JSON-tiedostoa, joka sisältää {name, scenario_prompt, expected_outcome}
-monikoita. Suorita jokaisen kehotemuutoksen yhteydessä koko joukko eränä; vertaa
puhelutallenteita ja arvioita edelliseen ajoon.
Julkaisukohtainen savutesti
Yksi erä, jossa on viisi normaalitilanteen skenaariota ja jonka suoritat jokaisen
käyttöönoton jälkeen. Tämä on viiveherkkä, joten pidä stagger_seconds: 0.
Viiveen vertailuanalyysi
Suorita samat skenaariot eri tuotetasoilla (spark,
bolt, storm-base). Vertaa kunkin tuloksena syntyvän puhelulokin
call.graded-pisteitä ja duration_seconds-arvoa.
Seuraavat vaiheet
Kaikki kyselyparametrit, tilakoodit ja erien muodot.
Pisteytä jokainen testiajo automaattisesti laadun seuraamiseksi ajan mittaan.
Merkitse tietyt testit ihmisen tarkistettaviksi.
Suoratoista tulokset CI:hin / Slackiin / PagerDutyyn.