Ugrás a fő tartalomhoz

Workflow definíciós séma

A Create from Definition és az Update Agent számára átadott workflow_definition objektum határozza meg a teljes beszélgetési gráfot. Ugyanaz a struktúra, amelyet a Dashboard vizuális workflow-készítője olvas és ír – az ügynök felépítése a felhasználói felületen egy workflow_definition-t eredményez a motorháztető alatt, és bármi, amit vizuálisan konfigurálhat, ugyanúgy JSON-ként kifejezhető.

{
"nodes": [...],
"edges": [...]
}

Node-ok

Minden Node a beszélgetés egy-egy lépését képviseli.

{
"id": "uuid-string",
"type": "agentNode",
"position": { "x": 100, "y": 200 },
"data": { ... }
}
MezőTípusLeírás
idStringEgyedi Node ID (UUID ajánlott)
typeStringAz alábbi Node-típusok egyike
positiontárgyVizuális koordináták a workflow-készítőben
datatárgyNode konfigurációja — a mezők típusonként változnak

Node-típusok

TípusLeírás
startCallTelefonhívások belépési pontja
endCallMegszakítja a hívást
agentNodeLLM-alapú beszélgetés lépés
globalNodeGlobális konfiguráció alkalmazva az összes Agent Node-on
triggerBelépési pont API-ból indított, nem telefonos Workflow Runokhoz
webhookHTTP-kérést küld, amikor eléri
qaMinőségelemzést futtat a befejezett híváson

Node adatmezők

Közös mezők (minden Node-típus)

MezőTípusAlapértelmezettLeírás
nameStringszükségesA Node megjelenített neve
promptStringszükséges*LLM rendszerkérdés. *Nem szükséges a trigger, webhook, qa Node-okhoz
allow_interruptlogikaifalseEngedélyezze a hívónak, hogy megszakítsa az ügynököt a beszéd közben
wait_for_user_responselogikaifalseSzünet, és várja meg a hívó fél bevitelét, mielőtt folytatná
wait_for_user_response_timeoutszámnullMásodpercek, amíg várni kell a bevitelre az időkorlát előtt
detect_voicemaillogikaifalseHangposta észlelése és kezelése kimenő hívásoknál
delayed_startlogikaifalseA Node végrehajtásának késleltetése
delayed_start_durationszámnullKésleltetés másodpercben
add_global_promptlogikaitrueEgyesítse a globalNode promptot a Node

agentNode — adatkinyerés

MezőTípusAlapértelmezettLeírás
extraction_enabledlogikaifalseStrukturált adatok kinyerése a beszélgetésből
extraction_promptStringnullEgyéni prompt a kivonás irányításához
extraction_variablestömb[]Kivonandó változók (lásd alább)

Kivonási változó séma:

{
"name": "customer_intent",
"type": "string",
"prompt": "What did the customer want to achieve?"
}

A type a string, number vagy boolean egyike.

agentNode — Toolok

MezőTípusLeírás
tool_uuidsstring[]Az ehhez a Node-hoz csatolandó Toolok (HTTP API, hívásátvitel stb.) azonosítói
document_uuidsstring[]A Node számára elérhető tudásbázis-dokumentumok azonosítói

trigger Node

MezőTípusLeírás
trigger_pathStringEgyedi UUID, amely az API trigger endpoint elérési útja lesz

webhook Node

MezőTípusAlapértelmezettLeírás
enabledlogikaitrueElindul-e ez a webhook elérésekor
http_methodStringGET, POST, PUT, PATCH vagy DELETE
endpoint_urlStringCél URL
credential_uuidStringnullTárolt credential UUID-je
custom_headerstömb[]További kérésfejlécek [{"key": "...", "value": "..."}]
payload_templateObjectnullKérelem törzssablonja (támogatja a kontextusváltozókat)

qa Node

MezőTípusAlapértelmezettLeírás
qa_enabledlogikaitrueMinőségbiztosítási elemzés engedélyezése
qa_system_promptStringnullEgyedi értékelési prompt
qa_modelStringnullAz értékeléshez használható LLM-modell
qa_min_call_durationegész15Minimális hívás időtartama másodpercben a QA futtatásához
qa_voicemail_callslogikaifalseHangposta-hívások felvétele a minőségbiztosításba
qa_sample_rateegész100Az elemzésre irányuló hívások százalékos aránya (1–100)

Edge-ek

Mindegyik Edge két Node-ot köt össze, és meghatározza, hogy az átmenet mikor indul el.

{
"id": "edge-uuid",
"source": "node-uuid-a",
"target": "node-uuid-b",
"data": {
"label": "Customer confirms",
"condition": "The customer has confirmed their appointment",
"transition_speech": "Great, I've got that noted."
}
}
MezőTípusLeírás
idStringEgyedi élazonosító
sourceStringA kiinduló Node azonosítója
targetStringA Target Node azonosítója
data.labelStringA workflow-készítőben látható rövid címke
data.conditionStringA természetes nyelvi feltétel, amelyet az LLM kiértékel, hogy kiváltsa ezt az Edge-et
data.transition_speechStringOpcionális beszéd, amelyet az ügynök mond az átmenet előtt

Érvényesítési szabályok

  • Az élekben lévő összes source és target azonosítónak hivatkoznia kell a meglévő Node ID-kra
  • A trigger, webhook és qa kivételével minden Node-nak nem üresnek kell lennie a prompt-nek.
  • A Node ID-knak egyedinek kell lenniük a workflow-ban
  • Minden workflow-nak pontosan egy startCall vagy trigger Node-nak kell lennie belépési pontként

Minimális példa

{
"nodes": [
{
"id": "start-1",
"type": "startCall",
"position": { "x": 0, "y": 0 },
"data": {
"name": "Start",
"prompt": "You are a friendly assistant. Greet the caller and ask how you can help."
}
},
{
"id": "end-1",
"type": "endCall",
"position": { "x": 400, "y": 0 },
"data": {
"name": "End",
"prompt": "Thank the caller and say goodbye."
}
}
],
"edges": [
{
"id": "edge-1",
"source": "start-1",
"target": "end-1",
"data": {
"label": "Done",
"condition": "The caller's question has been answered and they want to end the call"
}
}
]
}