Open in
Ištestuokite agentą nuo pradžios iki pabaigos (API)
Vykdykite vienkartines simuliacijas, lygiagrečius scenarijų paketus ir leidimo patikros rinkinius per ThunderPhone API, kad agento regresijos būtų aptiktos prieš klientams jas išgirstant.
Tobulinant DI agentą, tobulinama jo užklausa, įrankiai ir kraštinių atvejų tvarkymas. Simuliacijų API vykdo tikrus skambučius agentui naudodama jūsų pateiktą scenarijaus užklausą. Nurodžius agentą sukuriamas roboto su robotu vykdymas; nurodžius telefono numerį sukuriamas SIP grįžtamojo ryšio vykdymas. Kiekvieno vykdymo metu sukuriamas tikras skambučių žurnalas su transkriptu, vertinimu ir sąskaitų informacija, todėl tiksliai matote, kaip agentas veikia ir kiek tai kainuoja.
Naudokite šią funkciją:
- Greitiesiems testams prieš diegimą po kiekvieno užklausos redagavimo
- Regresijos rinkiniams, prijungtiems prie CI (prijunkite
test-call.completedžiniatinklio kablį → nesėkmingai užbaikite komponavimą, jei balas sumažėja) - Lygiagretumo ribų apkrovos testavimui
Vienkartinis paleidimas: vienas vykdymas
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
}'Laukai:
| Laukas | Tipas | Privalomas | Aprašas |
|---|---|---|---|
target_type | eilutė | taip | agent arba phone_number |
target_id | sveikasis skaičius | taip | Agento ID (arba telefono numerio ID) |
direction | eilutė | ne | outbound (numatyta reikšmė; testinis skambintojas inicijuoja skambutį) arba inbound (testinis skambintojas atsiliepia) |
scenario_prompt | eilutė | ne | Nustato, ką sako testavimo robotas |
language / primary_language | eilutė | ne | Testinio skambintojo kalba; nepalaikomi kodai atmetami |
simulator_product | eilutė | ne | testing (numatyta reikšmė) arba spark, skirtas labiau žmogiškam imituotam skambintojui, pvz., šiltojo perdavimo konsultacijos testams |
consent_to_charge | loginė reikšmė | taip | Turi būti true. Sąmata apmokestina ir pasirinktą agentą, ir imituotą skambintoją, taip pat bet kurią telefonijos liniją |
target_number | eilutė | ne | E.164 nuotolinės pusės pakeitimas; kitu atveju naudojamas platformos testavimo numeris |
mode yra tik skaitomas ir nustatomas pagal target_type: agent sukuria
mode="bot", o phone_number sukuria mode="sip".
Atsakymas yra simuliacijos vykdymo objektas,
kurio status="queued". Tikrinkite, kol status taps completed arba
failed; kai nustatomas call_id, įkelkite transkriptą naudodami
GET /v1/calls/{call_id}/transcript.
Paketai: lygiagretūs scenarijai
Vienu metu vykdykite N scenarijų — tai naudinga regresijos rinkiniams, kurie lygiagrečiai apima visus žinomus kraštinius atvejus:
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
}'Atsakyme pateikiamas antrinių vykdymų ID sąrašas run_ids. Gaukite paketo
būseną:
curl https://api.thunderphone.com/v1/simulations/batches/{batch_id} \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"run_count ribojamas iki 20; stagger_seconds paskirsto paleidimus
laike, kad agentas nebūtų pernelyg apkrautas (0–60 s).
Integruokite į CI
Sukurkite leidimo vartų rinkinį puslapyje Simuliacijos
(/dashboard/simulations) — pasirinkite agentą, pridėkite scenarijus rankiniu būdu arba
spustelėkite Generuoti scenarijus naudojant DI, kad juos parengtumėte pagal agento
raginimą (pasirinktinai papildomai patikrinant kraštutinius atvejus), ir sugrupuokite juos į rinkinį.
Rinkinys fiksuoja savo scenarijus ir agentą, taip pat minimalų sėkmės rodiklį ir
pasirinktinę nulio kritinių nesėkmių taisyklę. Sėkmingi vykdymai tampa priimta
atskaitos būsena; vėlesni perėjimai iš sėkmės į nesėkmę grąžinami kaip regresijos.
CI sistemoje naudokite organizacijos API raktą.
Šis scenarijus paleidžia rinkinį, tikrina būseną, kol baigiamas vertinimas ir palyginimas,
ir baigia vykdymą su nenuliniu kodu, nebent sprendimas yra 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 grąžina 202 su
vykdymo ID. GET /v1/orgs/{org_id}/suites/{suite_id}/runs/{run_id} grąžina
status, verdict, pass_rate, critical_failure_count ir
atskaitos būsenos regressions sąrašą. Abu galiniai taškai susieja URL organizaciją
su API rakto organizacija.
Paleiskite rinkinį pagal tvarkaraštį
Atidarykite agento skirtuką Simuliuoti, pasirinkite Leidimo vartų rinkiniai ir sukurkite arba redaguokite rinkinį. Įjunkite Vykdyti pagal tvarkaraštį, pasirinkite Dažnumas ir Laiko juosta, tada nustatykite Minutė po valandos, Vietos laikas arba Diena, kaip parodyta. Pasirinkite Išsaugoti rinkinį. Išjungus Vykdyti pagal tvarkaraštį, pašalinamas valdymo skydelio tvarkaraštis.
Per API
Naudodami PATCH atnaujinkite rinkinį, kad pridėtumėte arba pakeistumėte jo tvarkaraštį. Žr. Rinkiniai (leidimo vartai), kur pateiktas visas rinkinio objektas ir galiniai taškai.
curl -X PATCH https://api.thunderphone.com/v1/suites/{suite_id} \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"schedule": {
"enabled": true,
"frequency": "daily",
"timezone": "America/Chicago",
"hour": 6,
"minute": 30
}
}'frequency gali būti hourly, daily arba weekly. Naudokite IANA laiko juostą.
Valandiniai tvarkaraščiai naudoja minute; dieniniai tvarkaraščiai naudoja hour ir
minute; savaitiniai tvarkaraščiai taip pat naudoja weekday, kur pirmadienis yra 0,
o sekmadienis yra 6. Rinkinio atsakyme pateikiami next_run_at ir last_run_at.
Laikai keičiasi pagal pasirinktos laiko juostos vasaros laiko pakeitimus. Suplanuoti vykdymai
rodomi rinkinio vykdymų istorijoje ir naudoja jo dabartinį agentą, scenarijus,
kriterijus ir priimtą atskaitos būseną. Kiekvienas sugeneruotas bandomasis skambutis siunčia
test-call.completed; rinkinio lygio užbaigimo žiniatinklio kabliuko nėra. Suplanuoti
skambučiai apmokestinami tokiu pačiu simuliacijos tarifu kaip rankiniai rinkinio vykdymai ir
rinkinio vykdyme įrašo trigger: "schedule".
Norėdami pristabdyti tvarkaraštį nekeisdami jo laiko nustatymų, naudodami PATCH atnaujinkite visą
esamą tvarkaraščio objektą su "enabled": false. frequency yra privalomas; praleisti
laiko juostos ir laiko laukai nustatomi į numatytąsias reikšmes, todėl įtraukite esamas
reikšmes. Siųskite "schedule": null, kad pašalintumėte tvarkaraštį.
Modeliai
Regresijos korpusas kiekvienai užklausai
Tvarkykite JSON failą su {name, scenario_prompt, expected_outcome}
kortelėmis. Po kiekvieno užklausos pakeitimo paleiskite visą rinkinį kaip paketą; palyginkite
transkriptus ir įvertinimus su ankstesnio paleidimo rezultatais.
Dūmų testas kiekvienam leidimui
Vienas paketas iš penkių sėkmingų scenarijų, kurį vykdote po kiekvieno
diegimo. Jautrus delsai, todėl palikite stagger_seconds: 0.
Delsos lyginamoji analizė
Paleiskite identiškus scenarijus skirtinguose produkto planuose (spark,
bolt, storm-base). Palyginkite call.graded balus ir
duration_seconds iš kiekvieno gauto skambučio žurnalo.
Tolesni veiksmai
Visi užklausos parametrai, būsenos kodai ir paketų struktūros.
Automatiškai įvertinkite kiekvieną testavimo paleidimą, kad laikui bėgant stebėtumėte kokybę.
Pažymėkite konkrečius testus, kad juos peržiūrėtų žmogus.
Perduokite rezultatus į savo CI / Slack / PagerDuty.