Ugrás a fő tartalomhoz

Workflows

A workflow egy vizuális térképe annak, hogy az ügynöke mit kell hogy csináljon lépésről lépésre — ki beszél először, mit kérdezzen, mikor ágazzon el, mikor irányítsa át a hívást és mikor adja át egy másik ügynöknek. Ezt egy vásznon építi fel, csomópontokat helyez el és összeköti őket.

Használjon workflow-t, ha egyetlen prompt nem elég — ha a hívásnak világos szakaszai vannak («először minősíteni, aztán részleteket gyűjteni, aztán foglalni vagy átirányítani»), ha determinisztikus útválasztásra van szüksége a hívó válaszai alapján (nem «az AI általában megoldja»), vagy ha egy ügynöknek át kell adnia egy darab munkát egy specialistának.

Prompt vs Workflow

A prompt egy hosszú utasítás. Az ügynök egyszer elolvassa és a hívás egész ideje alatt használja. A workflow sok kis utasítás, csomópontonként egy, közöttük explicit átmenetekkel. A gráf vezeti a hívást — minden csomópont ügynöke csak a saját szeletét birtokolja.

Ha az ügynöke már jól működik egyetlen prompttal, nincs szüksége workflow-ra. Akkor forduljon workflowshoz, amikor a promptba elkezd «ha X akkor Y» szabályokat halmozni, és azok megbízhatatlanná válnak.


A szerkesztő

A workflow szerkesztő saját fülön él az ügynök oldalán. Egy vásznat lát alapértelmezetten Start és End csomóponttal. Csomópontokat ad hozzá az eszköztárból, a vászonra húzza őket és élekkel köti össze.

A jobb oldali panel attól függően változik, mit választ ki:

  • Kattintás egy csomópontra — megnyitja a beállítások paneljét (prompt, mezők, extrakciós változók stb.).
  • Kattintás egy élre — megnyitja a triggerének beállításait (AI decides / Condition / Always).
  • A Variables panel (gomb az eszköztárban) felsorolja a workflow minden változóját egy kattintással a csomóponthoz, ami beállítja vagy olvassa.

Futtasson Test Call-t a böngészőben közvetlenül a szerkesztőből — egy fénylő szentjánosbogár élőben követi a pozíciót, hogy lássa, pontosan melyik csomópont aktív bármelyik pillanatban.

Mentés és állapotok

A workflowsok három állapotúak:

  • Draft — szerkeszthető, még nincs élesben. Használja Test Call-t a teszteléshez.
  • Active — éles valós hívásokhoz. Az ügynök ezt a workflow-t használja a következő hívástól.
  • Template — újrahasznosítható sablon, soha nem közvetlenül ügynökhöz kötve. Több ügynökön példányosíthatja.

Csomópontok

Minden csomópont egy lépés a beszélgetésben. Különböző csomóponttípusok különböző dolgokat csinálnak — egyesek beszélnek, mások hallgatnak, mások útválasztanak, mások eszközöket futtatnak.

Agent

Az Agent csomópont egy workflow-szakasz szíve. Amikor a gráf elér egy Agent csomóponthoz, az az ügynök átveszi a szót és vezeti a beszélgetést, amíg valami el nem indít egy átmenetet.

Az Agent csomópont személyiségét és feladatát közvetlenül a vásznon konfigurálja (a Prompt fül megnyílik a csomópontra kattintva) — ez a prompt annak a résznek szól a beszélgetésből, nem az egész hívásnak. Tudásbázisokat és eszközöket is csatolhat csomópontonként.

Greeting — a nyitó sor. Ha ez a belépő csomópont (az első megálló a Start után), ez az első dolog, amit a hívó hall.

A persona a gráf tulajdona

Amikor egy gráf irányít egy hívást, az ügynök fő promptja (a Model fülön lévő) lecserélődik az aktív csomópont promptjára. Ez szándékos — a gráf birtokolja a személyiséget és a feladatot szakaszonként, nem egy fix prompt versenyez vele.

Subagent

A subagent egy segítő, amely inline fut — átveszi a beszélgetést egy adott feladatra, aztán visszaadja az eredményt annak, aki meghívta.

A subagentek jól működnek, ha egy munkadarab újrahasznosítható vagy különállónak érződik: «ellenőrizd a hívó azonosságát», «gyűjts szállítási címet», «minősíts egy leadet SPIN módszerrel». A szülő ügynök meghívja a subagentet, az megteszi a dolgát, jelent egy eredményt, a szülő folytatja onnan, ahol abbahagyta.

A Subagent csomópontoknak ugyanazok a fülei vannak, mint egy Agent csomópontnak (Prompt, Knowledge, Tools, Actions) — a szerkesztő automatikusan létrehoz egy rejtett backing-ügynököt önnek. Ezt a rejtett ügynököt nem látja a fő listájában és nem számít bele a tervének ügynök-limitjébe.

Return variable — a mező, ahol a subagent eredményét tárolja (pl. identity_verified, lead_score).

Message (Say)

A Say csomópont egy fix sort mond — nincs AI-kör, nincs improvizáció. Használja átmenetekhez («Egy pillanat, átkapcsolom…»), kötelező jogi nyilatkozatokhoz vagy előre meghatározott megerősítésekhez, ahol a szavak számítanak.

Text — mit mondani. Támogatja a {{variable}} tokeneket a befogott értékek beillesztéséhez, pl. "Köszönöm {{first_name}}, lefoglaltam Önnek {{appointment_time}} időpontra."

Egy Say csomópont elhasználja a kört — az ügynök nem ad hozzá semmit a tetejére.

Gather Input

Egy Gather Input csomópont kérdést tesz fel és változóba fogja a hívó válaszát.

Prompt — a felteendő kérdés. Támogatja a {{tokens}}-eket. Variable — a mező neve, ahol a választ tárolja.

Használja minden alkalommal, amikor egy konkrét értékre van szüksége a folytatás előtt — email, számlaszám, személyek száma, probléma kategóriája. A következő hívó-kör lesz az érték; közvetlenül utána Condition éllel elágazhat rajta.

Update State

Egy Update State csomópont egy vagy több értéket ír a workflow változókba beszéd vagy kérdezés nélkül. Használja alapértékek előbeállítására, haladási flagek megjelölésére vagy értékek komponálására korábbi lépésekből.

Variable / Value — egy kulcs-érték pár. More variables (optional) — további kulcs-érték párok.

Mind a kulcsok, mind az értékek támogatják a {{tokens}}-eket, tehát új értékeket komponálhat meglévőkből.

Condition

A Condition csomópont egy tisztán útválasztó csomópont — nem beszél, nem kérdez, egyszerűen elküldi a hívást azon a kimenő ágon, amelyik illeszkedik.

Maga a feltétel minden kimenő élen él, nem a csomóponton — lásd Condition élek alább.

Használjon Condition csomópontot, ha tiszta «fan-out» pontot szeretne a gráfjában: sok ág, amely egy változó értékétől függ. Az Agent csomópontok éleire helyezett feltételekhez képest egy dedikált Condition csomópont az útválasztási logikát vizuálisan nyilvánvalóvá teszi.

Tool

A Tool csomópont lefuttatja az ügynök csatlakoztatott eszközei közül az egyiket gráflépésként — anélkül, hogy az AI-nak szava lenne a hívásban. Használja, ha tényt szeretne, nem beszélgetést: «keresd meg ezt az ügyfelet», «ellenőrizd a készletet», «GET az aktuális időjárást».

Választhat:

  • Az ügynök meglévő eszközeinek egyikét (naptár lekérdezés, tudásbázis-keresés, integráció specifikus művelete), vagy
  • Beállíthat egy inline HTTP hívást közvetlenül a csomópontban (URL, módszer, fejlécek, paraméterek, body).

Az eszköz válasza elérhetővé válik minden lefelé lévő csomópont számára. Ha a válasz egy JSON objektum, minden felső szintű mező saját változóvá válik — egy olyan válasz, mint a {"is_known": true, "tier": "gold"} mind az is_known-t, mind a tier-t megírja, hogy elágazhasson rajtuk.

Tokenek a Tool-ban

Minden szövegmező a Tool csomópontban — URL, fejléc értékek, body — támogatja a {{tokens}}-eket. Beleilleszthet egy változót egy URL útvonalba, fejlécbe vagy bodyba kódírás nélkül.

Ha egy eszközhívás meghiúsul (HTTP hiba, timeout, hálózat), a csomópont naplózza a hibát és a gráf folytatódik — adatok nélkül. Tervezze meg a lefelé lévő feltételeit a «nincs érték» eset kezelésére.

Integration

Az Integration csomópont a Tool fókuszált változata csatlakoztatott külső szolgáltatásokhoz — Google Calendar, Outlook, HubSpot. Kiválasztja a szolgáltatót és a konkrét műveletet (pl. check_availability, create_event), megadja a paramétereket, és a csomópont determinisztikusan hívja az integrációt.

Ha az integráció nincs csatlakoztatva ezen az ügynökön, a csomópont művelet nélkül átmegy — a gráfja folytatódik. Ellenőrizze a lefelé lévő feltételeket a «nem futott» esetre.

Phone Transfer

A Phone Transfer csomópont átirányítja a hívást (warm transfer) egy külső telefonszámra. Sikeres átirányítás után a hívás elhagyta a workflow-ját — az ügynöke már nincs a vonalban.

Number — célállomás nemzetközi formátumban, + előtaggal (pl. +15551234567). Támogatja a {{tokens}}-eket, így a célállomás származhat egy korábbi lépésből (pl. a «melyik irodával kapcsoljam?» kérdésre adott válasz).

Ha az átirányítás nem megy át (érvénytelen szám, nincs válasz, nincs beállítva telefonkapcsolat), a gráf visszalép és az aktuális ügynök a vonalban marad. A beszélgetés normálisan folytatódik — az ügynök elnézést kérhet és megpróbálhat egy másik utat.

End Call

Az End Call csomópont zárja le — az ügynök elmondja a konfigurált zárást és aztán leteszi. Használja tiszta terminusként a «minden kész» ágakhoz vagy a «nem tudunk segíteni, sajnáljuk» ághoz egy nehéz Conditionből.

Nem igényel konfigurációt egy bemenő élen kívül.

Workflow újrahasznosítása (Sub-workflow)

A Sub-workflow csomópont arra van fenntartva, hogy egy másik workflow-t algráfként ágyazzon be. Ez a csomópont a szerkesztőben van, de még nincs teljesen bekötve — a gráf úgy megy át rajta, hogy nem csinál semmit. Ne támaszkodjon rá éles hívásokhoz. Aktiváljuk, amikor kiadjuk az újrahasznosítható algráfokat.


Élek (Kapcsolatok)

Egy csomópontot a következővel egy éllel köt össze. Az él triggere dönti el, mikor indul el az átmenet.

Három trigger van:

TriggerKi döntMikor indul
AI decidesAz AIAmikor a beszélgetés ezt teszi a természetes következő lépéssé. Az AI kap egy «átmenet eszközt», amelyet hívhat.
ConditionA runtimeAmikor egy változó illeszkedik egy szabályhoz, amelyet írt. Az AI válasza előtt értékelődik.
AlwaysA runtimeFeltétel nélkül — amint a forrás csomópont befejeződik. Nincs hívó-bemenet, nincs AI.

AI decides (intent-alapú)

Használja az AI decides-t, amikor csak az AI tud dönteni, mikor váltani — «ha a hívó árakról kérdez, irányítsd át az értékesítési ügynökhöz», «ha panasznak hangzik, futtasd a bocsánatkérő subagentet».

Egy rövid intent leírást ír az élre (pl. «A hívó árakról kérdez vagy upgrade-elni akar»). Az AI ezt egy eszközként látja az intenttel címkézve, és a beszélgetés alapján dönt, hogy meghívja-e. Ha több AI-decides él van jelen, az AI legfeljebb egyet választ körönként.

Condition (determinisztikus elágazás)

Használja a Condition-t, ha azt akarja, hogy a gráf — nem az AI — döntsön egy ismert tény alapján: «ha lead_score > 7, küldd a closerhez; egyébként udvariasan zárj».

A Conditions az AI válasza előtt értékelődik, így mindig nyer az AI ellen abban a körben. Az AI nem tud felülírni egy feltételt, amely illeszkedik.

Egy feltételt ezekkel az operátorokkal építhet:

OperátorJelentésPélda
equalspontos egyezés (case-insensitive szövegnél)intent equals "billing"
not equalsnem egyezikstatus not equals "active"
containsrészsztring egyezés (case-insensitive)feedback contains "broken"
greater thannumerikus >lead_score greater than 7
less thannumerikus <wait_minutes less than 5

Klauzulákat is kombinálhat All (mindegyiknek illeszkednie kell — AND) vagy Any (legalább egynek illeszkednie kell — OR) segítségével, és egymásba ágyazhatja őket. Egy olyan szabály, mint «a hívó ismert és a tier-je gold vagy premium» a következő lesz:

All:
- is_known equals true
- Any:
- tier equals gold
- tier equals premium
A hiányzó változók sosem illeszkednek

Ha egy olyan változóra hivatkozik, amely még nincs beállítva (pl. az AI sosem gyűjtötte), az arra vonatkozó feltételek mindig kudarcot vallanak — nincs hiba, egyszerűen nem illeszkednek. Tehát loyalty_tier equals "gold" hamisat ad vissza, ha loyalty_tier sosem volt beállítva. Tervezze meg az ágait ennek kezelésére — általában egy else ággal (lásd alább).

Else ág — ha egyik feltétel sem illeszkedik

Ha több Condition éle van egy csomópontból kimenően és egyik sem illeszkedik, a hívás a legalacsonyabb prioritású nem-Condition élre esik (Always vagy egy AI-decides él). Ha egyáltalán nincs fallback, az AI visszanyeri az irányítást és szabadon folytathat.

Gyakori minta: több Conditions az ismert utakhoz plusz egy Always él egy catch-all-ra (mondj valamit, aztán End Call vagy átirányítás).

Always (auto-advance)

Használja az Always-t, ha a következő lépés feltétel nélküli — nincs döntés, nincs hívó-bemenet. Két természetes felhasználás:

  • Lépések láncolása: SAY → UPDATE_STATE → SAY → TOOL → Condition. Minden lépés befejeződik és az Always él azonnal továbblép.
  • Auto-előrelépés azután, hogy az ügynök befejezte a beszédet: egy kimenő Always éllel rendelkező Agent csomópont azt jelenti, hogy «amint az AI abbahagyja a beszédet, lépj tovább» — anélkül, hogy a hívónak válaszolnia kellene. Hasznos monológ-szerű folyamatokhoz, mint egy bemutató ügynök, aki elmondja és átmegy a következő szekcióra.
Prioritás triggerek között

A Condition és az Always (a determinisztikusak) mindig nyernek az AI decides ellen. Ha egy Condition illeszkedik, az AI átmenet eszközei figyelmen kívül maradnak abban a körben. Ez lehetővé teszi, hogy olyan szabályokat írjon, amelyeket az AI nem tud megkerülni.


Változók

A változók a workflow memóriája. A workflow-ban a legtöbb dolog vagy egy változót állít be, vagy olvas egyet.

Változók deklarálása

A Variables panel (gomb az eszköztárban) megmutatja a workflow minden változóját azokkal a lépésekkel, amelyek beállítják vagy olvassák. Kattintson egy változóra, hogy egy setterhez ugorjon; ez a leggyorsabb módja annak, hogy megtalálja, hol megy valami félre.

Változót alapértékkel deklarálhat a panelben — hasznos olyan flagekhez, mint az escalated=false, amelyeknek a kezdetektől létezniük kell, hogy a feltételei ne bukjanak el csendben «hiány» miatt.

Hogyan állítódnak be a változók

ForrásPélda
Alapértékek (a Variables panelben deklarálva)escalated = false beállítva a hívás kezdete előtt
Gather InputA hívó beszélt válasza a csomópont változójába kerül
Update StateEgy értéket ír (literál vagy {{tokens}}-ekkel komponált) közvetlenül
Tool / Integration eredményA teljes válasz a csomópont neve alatt tárolódik; ha a válasz JSON objektum, minden felső szintű mező szintén saját változóvá válik
Subagent returnAmit a subagent véglegesít, a subagent csomópont return változójában tárolódik

Változók olvasása — {{tokens}}

Bárhol, ahol szöveget írhat egy csomópontban — Agent prompt, Say szöveg, Gather prompt, Tool URL/body/fejlécek, Phone Transfer szám, Update State érték, feltétel értékek — beilleszthet egy {{variable}}-t, és runtime-ban behelyettesítődik.

A pontos útvonalak is működnek beágyazott adatokhoz — pl. ha egy Tool válasz {"customer": {"name": "Anna", "tier": "gold"}} volt, olvashatja a {{customer.name}}-t vagy {{customer.tier}}-t.

Az ismeretlen tokenek láthatók maradnak

Ha egy token egy nem létező változóra hivatkozik, a szó szerinti szöveg {{name}} úgy marad, ahogy van (nincs kifehérítve). Ez szándékos — megkönnyíti a hibás template-ek észrevételét egy test call során, ahelyett, hogy csendben lenyelné őket.


Gyakori minták

Minősítsd → Ágazz el → Útválaszt

Start
└─ Agent (greeting + qualify)
└─ Gather Input (intent)
└─ Condition: intent == "sales" → Agent (sales)
└─ Condition: intent == "support" → Subagent (triage)
└─ Always (catch-all) → Say "Let me connect you" → Phone Transfer

Keress → Személyre szab

Start
└─ Tool (CRM lookup, writes is_known, name, tier)
└─ Condition: is_known == true → Agent (warm greeting with {{name}})
└─ Always (else) → Agent (cold greeting)

Újrahasznosítható helper (Subagent side-trip)

Agent (main conversation)
└─ AI decides: "Caller mentions an address" → Subagent (address collector)
└─ on finish: result = full_address
└─ Agent continues with {{full_address}}

Mi van zárolva egy workflow-vezérelt hívás során

Néhány alapérték változik, amikor egy gráf irányítja a hívást:

  • A nyelv zárolva van arra, amelyet a workflow első ügynöke használ. Az AI nem válthat nyelvet hívás közben. Ez megakadályozza, hogy a modell rossz nyelvre csússzon át egy zajos körön.
  • Az ügynök fő promptja le van cserélve az aktív csomópont promptjára. Ez a «a gráf birtokolja a personát» szabály — lásd warning Agent alatt.
  • Az első üzenet a belépő csomópont greetingjéből származik, nem az ügynök «Begin Message» mezőjéből.

Loop-védelem — Step Budget

Minden workflow-nak van egy maximális átmenetszáma hívásonként (alapértelmezetten 25). Minden alkalommal, amikor a gráf új csomóponthoz vált, a számláló eggyel csökken. Amikor eléri a nullát, a runtime leáll az átmenetekkel, hogy megakadályozza az elszabadult ciklusokat.

Választhat egy fallback csomópontot erre az esetre (általában egy Phone Transfer vagy End Call) — a hívás oda terelődik, amint a budget elfogy.

Ritkán kell erre gondolnia — biztonsági háló véletlen ciklusba zárt gráfokhoz. Ha normál használat közben eléri, valószínűleg van egy ciklus valahol.


Tesztelés

A szerkesztő Test Call gombja böngészőhívást nyit a workflow aktuális draftjával. Amíg fut, egy fénylő szentjánosbogár mozog a csomópontok között a vásznon, hogy lássa, pontosan hol van a hívás. A szerkesztő zárolva van egy test call alatt, hogy a módosítások ne deszinkronizálják az élő állapotot.

Használja a Test Call-t a következők ellenőrzésére:

  • A feltételei a várt értékekhez illeszkednek (nézze meg, hogy a szentjánosbogár átugrik-e egy olyan ágat, amelyről azt hitte, hogy aktiválódik).
  • A tokenjei helyesen behelyettesítődnek (figyeljen egy lógó {{name}}-re, ha egy érték nem volt beállítva).
  • Az eszközhibák szépen degradálódnak (a fallback útvonala valóban aktiválódik).

Hibák, amelyeket ismerni kell

HelyzetMi történik
Tool / Integration hívás meghiúsulA gráf folytatódik az adatok nélkül. A lefelé lévő feltételeinek kezelniük kell a hiányzó változót.
Phone Transfer meghiúsul (érvénytelen szám, nincs válasz, nincs beállítva telefonkapcsolat)A gráf visszalép, az aktuális ügynök a vonalban marad, és a beszélgetés normálisan folytatódik.
A subagent nem indul elA side-trip megszakad, a szülő ügynök a vonalban marad, és egy rövid hiba-sor hangzik el.
{{missing_variable}} szövegbenSzó szerint marad a kimenetben — könnyű észrevenni test call során.
Sub-workflow csomópontJelenleg úgy megy át rajta, hogy nem csinál semmit. Egyelőre ne támaszkodjon rá.
Step budget kimerültA fallback csomópontra terel, ha be van állítva, egyébként az AI visszanyeri az irányítást.

Mikor NE használjon Workflow-t

A workflows hatékonyak, de nem minden ügynökhöz a megfelelő válasz. Maradjon egyetlen promptnál, amikor:

  • A beszélgetés nyílt («válaszolni a hívó kérdéseire a termékeinkről»).
  • Nincs világos elágazási logikája — a legtöbb döntés ítélet, amelyeket az AI jól kezel.
  • Csak egy Agent csomópontot és egy End Call-t írna — ez csak egy prompt extra lépésekkel.

Forduljon workflow-hoz, amikor:

  • Felvázolhatja a hívást folyamatábraként három vagy több különálló szakasszal.
  • Legalább egy determinisztikus elágazásra van szüksége egy változón (egy Condition).
  • Egy beszélgetésdarabot újra akar hasznosítani több ügynök között (egy subagent).
  • Már «ha a hívó X-et mond, akkor Y-t csinál» szabályokat halmoz egy promptban és nem megbízhatóak.