Erstellen Sie einen Agent aus einer Vorlage und setzen Sie auf Wunsch im selben Request seine Felder. Ohne template beginnt er leer; GET /api/v1/voice/catalog listet die Vorlagen sowie die Sprachen und Stimmen, die ein Agent annimmt. Vorlagen gibt es auf Englisch und Chinesisch; senden Sie für eine andere Sprache system_prompt und first_message in dieser Sprache. Entweder wird der ganze Request gespeichert oder kein Agent angelegt, sodass ein abgelehnter Request nach der Korrektur erneut gesendet werden kann. dashboard_url in der Antwort ist die Seite des Agents im Dashboard, auf der Sie im Browser mit dem Entwurf sprechen können. Jeder Agent läuft mit EvaSay ASR, EvaSay LLM und EvaSay TTS, die EvaSay für Sprache und Last jedes Anrufs wählt und die im Anrufpreis enthalten sind; Konten anderer Anbieter müssen nicht eingerichtet werden.
curl https://evasay.com/api/v1/voice/agents \
-X POST \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"name": "Front desk",
"language": "en",
"first_message": "Hi, thanks for calling Sunrise Salon. How can I help?",
"system_prompt": "You are the front desk of Sunrise Salon..."
}'
Diese Felder ändern Sie mit PATCH /api/v1/voice/agents/{id}:
| Feld | Hinweise |
|---|---|
name, first_message, system_prompt | Text |
status | published veröffentlicht den Entwurf als neue Version; draft nimmt keine Anrufe mehr an |
language | Eine von 27 Sprachen, z. B. en, zh, es, de, oder multi, um dem Anrufer zu folgen |
temperature | 0-100 |
max_duration_sec, silence_timeout_sec | Anrufgrenzen |
interruptible, end_call_enabled | Boolesche Werte |
confirm_details | Boolean; Nummern und Namen wiederholen und bestätigen lassen |
ai_disclosure | Boolean, Standard true; vor seiner ersten Nachricht sagt der Agent in der Anrufsprache, dass der Anrufer mit einer KI spricht (entfällt, wenn die erste Nachricht das schon sagt) |
voicemail_detection | Boolean; ausgehende Anrufe hören zuerst zu und enden bei einer Mailbox |
voicemail_message | Wird auf der Mailbox hinterlassen, kann {{variables}} enthalten; leer, um aufzulegen |
transfer_number | Weiterleitungsnummer, internationales Format |
transfer_destinations | Bis zu 9 weitere Nummern, [{name, number, when}]; der Agent wählt anhand von when |
transfer_briefing | Boolean; wer abnimmt, hört zuerst die Zusammenfassung des Anrufs vom Agent |
pronunciations | Bis zu 100 [{word, say, case_sensitive}]; die Stimme sagt say für word |
idle_messages | Bis zu 3 Erinnerungen, die einem schweigenden Anrufer nacheinander gesagt werden, bevor der Anruf endet |
noise_reduction | Boolean; die Hintergrundgeräusche des Anrufers werden gefiltert, bevor er verstanden wird |
recording_enabled | Boolean; Anrufe werden zweikanalig aufgenommen (Anrufer links, Agent rechts) |
recording_consent | announce, ask (nur behalten, wenn der Anrufer zustimmt) oder none |
recording_notice | Der Hinweis oder die Frage, die zuerst gesagt wird; leer für den integrierten Text in der Anrufsprache |
handoffs | Bis zu 5 [{agent_id, when}]: andere Agents, an die dieser einen Anruf übergeben darf |
knowledge_base_id | Eine Ihrer Wissensdatenbanken |
vocabulary_id | Eines Ihrer Vokabulare; Anrufer, die dessen Begriffe sagen, werden zuverlässiger verstanden |
voice_id | Eine integrierte EvaSay-Stimmen-ID oder eine Ihrer geklonten Stimmen (clone:…) |
Integrierte Stimmen hängen von der Sprache ab: Chinesisch hat ming-designed-female-clear, ming-designed-female-warm (weiblich), ming-designed-male-clear und ming-designed-male-friendly (männlich), die anderen Sprachen F1–F5 (weiblich) und M1–M5 (männlich). Eine integrierte Stimme, die die Sprache des Agents nicht spricht, wird durch die Stimme desselben Geschlechts ersetzt, die sie spricht. Der ältere Feldname tts_voice_id wird weiterhin akzeptiert. Jeder andere Wert für voice_id und jede noch nicht fertige geklonte Stimme wird abgelehnt.
analysis_config legt fest, was nach jedem Anruf ausgewertet wird: summary (Standard true), summaryLanguage, successCriteria (was ein erfolgreicher Anruf erreicht), fields (bis zu 20 {name, type, description} zum Extrahieren, type ist string, number oder boolean) und scorecard (bis zu 10 {name, description, weight}, Gewicht 1–5). Die Ergebnisse stehen in analysis des Anrufs und im Webhook call.analyzed.
Wenn Sie die Felder eines Agents ändern, ändern Sie seinen Entwurf. Anrufe nutzen weiter die veröffentlichte Version, bis Sie den Entwurf mit POST /api/v1/voice/agents/{id}/publish (optional mit note) veröffentlichen oder status: "published" im selben PATCH setzen. Jede Veröffentlichung speichert eine nummerierte Version; published_version im Agent zeigt, welche Anrufe nutzen. Ein Anruf bleibt bei der Version, die bei seinem Beginn aktiv war, sodass eine Veröffentlichung während des Anrufs ihn nicht ändert. Testanrufe aus dem Dashboard nutzen den Entwurf.
GET /agents/{id}/versions listet die Versionen, und POST /agents/{id}/versions/{version}/restore setzt zurück: Neue Anrufe nutzen diese Version, und der Entwurf wird zu ihr. Name, Bereitstellung, Widget-Aussehen und Benachrichtigungen des Agents sind nicht versioniert und ändern sich sofort, ebenso die Dokumente seiner Wissensdatenbank.