Munkafolyamatok
A munkafolyamat egy vizuális térkép arról, mit tegyen az ügynököd lépésről lépésre — ki szólal meg először, mit kérdezzen, mikor ágazzon el, mikor továbbítsa a hívást, és mikor adja át a hívást egy másik ügynöknek. Egy vásznon építed fel csomópontok elhelyezésével és összekötésével.
Használj munkafolyamatot, ha egyetlen prompt nem elég — amikor a hívásnak világos szakaszai vannak („először minősíts, aztán gyűjtsd be az adatokat, majd vagy foglalj, vagy továbbíts"), amikor determinisztikus útválasztásra van szükséged a hívó válaszai alapján (nem „az AI általában a helyes dolgot teszi"), vagy amikor egy ügynöknek a munka egy szeletét egy szakértőnek kell átadnia.
Egy prompt egy hosszú utasítás. Az ügynök egyszer elolvassa, és a teljes híváshoz használja. Egy munkafolyamat sok apró utasítás, csomópontonként egy, közöttük explicit átmenetekkel. A gráf vezeti a hívást — az egyes csomópontokon lévő ügynök csak a saját szeletét birtokolja.
Ha az ügynököd már jól működik egyetlen prompttal, nincs szükséged munkafolyamatra. Nyúlj a munkafolyamatokhoz, ha egyre több „ha X akkor Y" szabályt adsz a prompthoz, és azok megbízhatatlanul kezdenek működni.
A szerkesztő
A munkafolyamat-szerkesztő az ügynök oldalán, saját lapon található. Alapértelmezés szerint egy vásznat látsz egy Start csomóponttal és egy End csomóponttal. Az eszköztárból adsz hozzá csomópontokat, a vászonra húzod őket, és élekkel kötöd össze.
A jobb oldali panel a kiválasztott elem szerint vált:
- Kattints egy csomópontra — megnyílik a beállítási panelje (prompt, mezők, kinyert változók stb.).
- Kattints egy élre — megnyílnak a kiváltó beállításai (AI decides / Condition / Always).
- A Variables panel (eszköztárgomb) felsorolja a munkafolyamat által deklarált vagy használt összes változót, egykattintásos ugrással ahhoz a csomóponthoz, amely mindegyiket beállítja vagy olvassa.
Futtass egy böngészős teszthívást közvetlenül a szerkesztőből — egy fénylő szentjánosbogár követi az élő pozíciót, így pontosan látod, melyik csomópont aktív minden pillanatban.
Visszavonás / Újra (v2.8) — a szerkesztő legfeljebb 20 lépéses előzményt tart, így visszaléphetsz egy rossz mozdulattól (vagy megismételheted) újraépítés nélkül. Egy csomópont törlése előbb megerősítést kér (v2.8), így nem veszítesz el egy lépést egy elkószált kattintás miatt.
Nem kell üres vászonról indulnod. A „build as workflow" belépési pont munkafolyamatot hoz létre az ügynökhöz, és egyenesen a szerkesztőbe visz — egyetlen művelet létrehozza a munkafolyamatot és megnyitja a szerkesztőt, készen a csomópontok hozzáadására.
A munkafolyamatoknak három státuszuk van:
- Draft — szerkeszthető, még nem éles. A Test Call funkcióval próbálhatod ki.
- Active — éles valós hívásokhoz. Az ügynök a következő hívástól kezdve ezt a munkafolyamatot használja.
- Template — újrafelhasználható tervrajz, sosem közvetlenül egy ügynökhöz kötve. Több ügynökre is példányosíthatod.
Csomópontok
Minden csomópont egy lépés a beszélgetésben. A különböző csomóponttípusok különböző dolgokat csinálnak — egyesek beszélnek, mások hallgatnak, mások útválasztanak, megint mások eszközöket futtatnak.
Agent
Az agent csomópont egy munkafolyamat-szakasz szíve. Amikor a gráf elér egy agent csomópontot, az az ügynök veszi át a szót, és vezeti a beszélgetést, amíg valami át nem indít egy átmenetet.
Az agent csomópont személyiségét és feladatát közvetlenül a vásznon konfigurálod (a Prompt lap megnyílik, amikor a csomópontra kattintasz) — ez a beszélgetés azon szeletének a promptja, nem a teljes hívásé. Csomópontonként tudásbázisokat és eszközöket is csatolhatsz.
Greeting — a nyitómondat. Ha ez a belépési csomópont (az első megálló a Start után), akkor ezt hallja a hívó először.
Amikor egy gráf irányítja a hívást, az aktív csomópont promptja az ügynök alap-promptjára (a Model lapon lévőre) rétegződik. A gráf birtokolja a személyiséget és a feladatot minden szakaszban, míg az ügynök alaputasításai alapként a helyükön maradnak.
Subagent
Az alügynök egy segéd, amely inline fut — átveszi a beszélgetést egy fókuszált feladatra, majd visszaadja az eredményt annak, aki meghívta.
Az alügynökök nagyszerűek, amikor egy munkadarab újrafelhasználható vagy különállónak érződik: „ellenőrizd a hívó személyazonosságát", „gyűjts be egy szállítási címet", „minősíts egy leadet a SPIN-módszerrel". A szülő ügynök meghívja az alügynököt, az alügynök elvégzi a dolgát és jelent egy eredményt, a szülő pedig ott folytatja, ahol abbahagyta.
Az alügynök csomópontoknak ugyanazok a lapjaik vannak, mint egy agent csomópontnak (Prompt, Knowledge, Tools, Actions) — a szerkesztő automatikusan létrehoz egy rejtett háttérügynököt neked. Ezt a rejtett ügynököt nem látod a fő ügynöklistádban, és nem számít bele a csomagod ügynök-korlátjába.
Return variable — a hely, ahová az alügynök eredményét tárolod (pl. identity_verified, lead_score).
Ki szólal meg először
Alapértelmezés szerint egy alügynök beszéddel nyitja a körét — üdvözöl vagy felteszi az első kérdését abban a pillanatban, amikor átveszi a szót. Két kapcsoló változtatja ezt meg:
- Wait for the caller (don't speak first) — az alügynök belépéskor csendben marad, és csak akkor válaszol, ha a hívó mond valamit. Kapcsold be, ha az alügynök a hívás első megállója, és azt szeretnéd, hogy a hívó kezdjen (egy valódi „Halló?"), ahelyett, hogy az ügynök nyitna — vagy hívás közben, amikor az előző lépés már mindent elmondott, és az alügynöknek csak a választ kell figyelnie.
- Silent step (don't speak) — az alügynök egyáltalán nem szólal meg. Elolvassa az eddigi beszélgetést, eldönt egy eredményt, és azonnal visszaadja az irányítást. Használd láthatatlan útválasztóként: „olvasd el, mit kérdezett a hívó, és döntsd el, melyik részleghez tartozik" — egyetlen szó sem hangzik el, csak egy döntés, amely mentén a gráf elágazik.
Engedélyezett eredményértékek
Egy alügynök normál esetben azzal az értékkel fejezi be, amelyet megfelelőnek ítél. Ha Condition élekkel akarsz elágazni ezen az eredményen, rögzítsd inkább egy zárt, engedélyezett értéklistához:
- Sorolj fel minden engedélyezett értéket az Allowed result values alatt (pl.
sales,support,billing). - Az alügynöknek pontosan eggyel kell befejeznie közülük — nem találhat ki újat.
- Párosítsd minden értéket egy Condition éllel (
result is "sales"→ …) a tiszta, kiszámítható útválasztásért.
Ez a megbízható módja annak, hogy egy alügynök döntsön és útválasszon: az eredmény garantáltan illeszkedik az egyik elágazásodhoz.
Egy alügynök egyetlen eredményt ad vissza, amikor kész. Azt, hogy mi történik ezután, Condition vagy Always élekkel kösd be azon az eredményen — egy alügynök kilépése nem használ „AI decides" éleket. Ezért az Allowed result values + Condition élek az ajánlott minta egy útválasztó alügynökhöz.
Message
A Message csomópont egy rögzített sort mond, nincs AI-kör, nincs improvizáció. Használd átmenetekhez („Egy pillanat, most átkapcsolom…"), jogilag kötelező nyilatkozatokhoz, vagy előre megírt megerősítésekhez, ahol a megfogalmazás számít.
Text — mit mondjon. Támogatja a {{variable}} tokeneket a begyűjtött értékek beszúrásához, pl. "Köszönöm {{first_name}}, lefoglaltam Önt erre: {{appointment_time}}."
Egy Message csomópont felhasználja a kört — az ügynök nem tesz hozzá semmi mást.
Gather input
A Gather input csomópont egyetlen kérdést tesz fel, és a hívó válaszát egy változóba rögzíti.
Prompt — a felteendő kérdés. Támogatja a {{tokens}} tokeneket.
Variable — annak a helynek a neve, ahová a választ tárolod.
Max silence (v2.8) — egy kérdésenkénti felső korlát arra, meddig várjon a hívó válaszára, mielőtt továbblép. Csomópontonként állítsd be a Gather-input csomóponton, így egy gyors igen/nem kérdés hamarabb időtúllépésbe futhat, mint egy olyan, amely egy hosszú számlaszám felolvasását kéri a hívótól.
Használd, valahányszor egy konkrét értékre van szükséged a folytatás előtt — e-mail, számlaszám, létszám, problémakategória. A hívó következő köre lesz az érték; közvetlenül utána egy Condition éllel elágazhatsz rajta.
Update state
Az Update state csomópont egy vagy több értéket ír a munkafolyamat változóiba beszéd vagy kérdezés nélkül. Használd alapértékek előbeállításához, előrehaladási jelzők megjelöléséhez, vagy korábbi lépésekből számított értékek előkészítéséhez.
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}} tokeneket, így új értékeket állíthatsz össze meglévőkből.
Condition
A Condition csomópont kizárólag útválasztó csomópont — nem beszél, nem kérdez, csak lefelé küldi a hívást azon a kimenő elágazáson, amelyik illeszkedik.
Maga a feltétel minden kimenő élen található, nem a csomóponton — lásd lentebb a Condition élek szakaszt.
Használj Condition csomópontot, amikor egy világos „szétágazási" pontot szeretnél a gráfodban: sok elágazás, amely egyetlen változó értékétől függ. Ahhoz képest, ha az agent-csomópont éleire tennéd a feltételeket, egy dedikált Condition csomópont vizuálisan nyilvánvalóvá teszi az útválasztási logikát.
Tool
A Tool csomópont az ügynök egyik csatlakoztatott eszközét futtatja gráflépésként — anélkül, hogy az AI-nak bármi beleszólása lenne abba, hogy meghívja-e. Használd, amikor tényt akarsz, nem beszélgetést: „keresd ki ezt az ügyfelet", „ellenőrizd a készletet", „GET-eld az aktuális időjárást".
Vagy:
- Válaszd az ügynök egyik meglévő eszközét (naptár-lekérdezés, tudásbázis-keresés, egy integráció konkrét művelete), vagy
- Konfigurálj egy inline HTTP-hívást közvetlenül a csomóponton (URL, metódus, fejlécek, paraméterek, body).
Az eszköz válasza minden alsóbb csomópont számára elérhetővé válik. Ha a válasz egy JSON-objektum, minden felső szintű mező saját változóvá válik — így egy {"is_known": true, "tier": "gold"} válasz is_known és tier értéket is beír, amelyeken elágazhatsz.
A Tool csomópont minden szövegmezője — URL, fejléc-értékek, body — támogatja a {{tokens}} tokeneket. Húzz be egy változót egy URL-útvonalba, egy fejlécbe vagy egy kérés-bodyba anélkül, hogy bármilyen kódot írnál.
Ha egy eszközhívás sikertelen (HTTP-hiba, időtúllépés, hálózat), a csomópont naplózza a hibát, és a gráf folytatódik — az adat nélkül. Tervezd meg úgy az alsóbb feltételeidet, hogy kezeljék a „nincs érték" esetet.
Knowledge (RAG)
A Knowledge (RAG) csomópont egy Tool-változat, amely a tudásbázis-lekérésre fókuszál. Válaszd ki az ügynök egyik tudásbázisát, írj egy keresési lekérdezést ({{tokens}} tokenekkel, ha szeretnél), és a csomópont gráflépésként futtatja a lekérdezést.
Használd, amikor azt szeretnéd, hogy a munkafolyamat még egy Agent csomópont megszólalása előtt keressen ki valamit — pl. hozza le az ügyfél legutóbbi rendelését, hogy a következő Agent csomópont megemlíthesse anélkül, hogy rá kellene kérdeznie. A lekért tartalom egy változóba kerül, amelyet promptokba és üzenetekbe húzhatsz be.
Integration
Az Integration csomópont a Tool egy fókuszált változata, csatlakoztatott külső szolgáltatásokhoz — Google Calendar, Outlook, HubSpot. Kiválasztod a szolgáltatót és a konkrét műveletet (pl. check_availability, create_event), beállítod a paramétereket, és a csomópont determinisztikusan hívja meg az integrációt.
Ha az integráció nincs csatlakoztatva ezen az ügynökön, a csomópont áthalad anélkül, hogy bármit tenne — a gráfod folytatódik. Ellenőrizd az alsóbb feltételeket a „nem futott le" esetre.
Phone transfer
A Phone transfer csomópont meleg átadással továbbítja a hívást egy külső telefonszámra. Egy sikeres átadás után a hívás elhagyta a munkafolyamatodat — az ügynököd többé nincs vonalban.
Number — a célszám nemzetközi formátumban, vezető + jellel (pl. +15551234567). Támogatja a {{tokens}} tokeneket, így a célszám egy korábbi lépésből származhat (pl. a „melyik irodához kapcsoljuk?" kérdésre adott válaszból).
Ha az átadás nem megy át (érvénytelen szám, nincs válasz, nincs beállítva telefonkapcsolat), a gráf visszagördül, és a jelenlegi ügynök 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 lezár — az ügynök elmondja a beállított búcsúmondatot, majd bontja a vonalat. Használd tiszta végpontként a „minden kész" elágazásokhoz, vagy a „nem tudunk segíteni, sajnáljuk" elágazáshoz egy nehezen kezelhető Conditionből.
A ráhúzott élen kívül nem igényel konfigurációt.
Munkafolyamat újrafelhasználása (Sub-workflow)
A Sub-workflow csomópont egy másik munkafolyamat algráfként való beágyazására van fenntartva. Ez a csomópont megvan a szerkesztőben, de még nincs teljesen bekötve — a gráf áthalad rajta anélkül, hogy bármit tenne. Ne támaszkodj rá éles hívásoknál. Bekapcsoljuk, amint kiszállítjuk az újrafelhasználható algráfokat.
Élek (kapcsolatok)
Egy csomópontot egy éllel kötsz a következőhöz. Az él kiváltója dönti el, mikor aktiválódik az átmenet.
Három kiváltó van:
| Kiváltó | Ki dönt | Mikor aktiválódik |
|---|---|---|
| AI decides | Az AI | Amikor a beszélgetés természetes következő lépéssé teszi. Az AI kap egy „átmenet-eszközt", amelyet meghívhat. |
| Condition | A futtatókörnyezet | Amikor egy változó illeszkedik egy általad írt szabályra. Az AI válasza előtt értékelődik ki. |
| Always | A futtatókörnyezet | Feltétel nélkül — abban a pillanatban, amikor a forráscsomópont befejezi. Nincs hívói bemenet, nincs AI. |
AI decides (szándékvezérelt)
Használd az AI decides kiváltót, amikor csak az AI tudja megmondani, mikor kell váltani — „ha a hívó az árakról kérdez, adj át az értékesítési ügynöknek", „ha panasznak hangzik, futtasd a bocsánatkérő alügynököt".
Írj egy rövid szándékleírást az élre (pl. „A hívó az árakról kérdez, vagy magasabb csomagra szeretne váltani"). Az AI ezt egy azzal a szándékkal címkézett eszközként látja, és a beszélgetés alapján eldönti, meghívja-e. Ha több AI-decides él létezik, az AI körönként legfeljebb egyet választ.
Condition (determinisztikus elágazás)
Használd a Condition kiváltót, amikor azt szeretnéd, hogy a gráf — ne az AI — döntsön egy ismert tény alapján: „ha lead_score is more than 7, küldd a lezáróhoz; egyébként fejezd be udvariasan a hívást".
A feltételek az AI válasza előtt értékelődnek ki, így azon a körön mindig felülírják az AI-t. Az AI nem tud felülbírálni egy illeszkedő feltételt.
Ezekből az operátorokból építhetsz feltételt:
| Operátor | Jelentés | Példa |
|---|---|---|
| is | pontos egyezés (szövegnél kis-nagybetűt nem érzékel) | intent is "billing" |
| is not | nem egyezik | status is not "active" |
| contains | részszöveg-egyezés (kis-nagybetűt nem érzékel) | feedback contains "broken" |
| is more than | numerikus > | lead_score is more than 7 |
| is less than | numerikus < | wait_minutes is less than 5 |
Kombinálhatod is a záradékokat az All (minden záradéknak illeszkednie kell — ÉS) vagy az Any (legalább egynek illeszkednie kell — VAGY) operátorral, és egymásba is ágyazhatod őket. Így egy olyan szabály, mint „a hívó ismert és a besorolása gold vagy premium", ez lesz:
All:
- is_known is true
- Any:
- tier is gold
- tier is premium
Ha olyan változóra hivatkozol, amely még nincs beállítva (pl. az AI sosem gyűjtötte be), a rá vonatkozó feltételek mindig sikertelenek — nem hibáznak, csak nem illeszkednek. Így a loyalty_tier is "gold" hamisat ad vissza, ha a loyalty_tier sosem lett beállítva. Tervezd meg úgy az elágazásaidat, hogy ezt kezeljék — általában egy else elágazással (lásd lentebb).
Else elágazás — amikor egyetlen feltétel sem illeszkedik
Ha több Condition él hagy el egy csomópontot, és egyik sem illeszkedik, a hívás a legalacsonyabb prioritású, nem-Condition élre esik át (Always, vagy egy AI-decides él). Ha egyáltalán nincs tartalék, az AI visszanyeri az irányítást, és szabadon folytathatja.
Gyakori minta: több Condition a jól ismert utakhoz, plusz egy Always él egy gyűjtő-elágazáshoz (Message valamit, majd End call, vagy átadás).
Always (automatikus továbblépés)
Használd az Always kiváltót, amikor a következő lépés feltétel nélküli — nincs döntés, nincs hívói bemenet. Két természetes felhasználás:
- Lépések láncolása: Message → Update state → Message → Tool → Condition. Minden lépés befejezi, és az Always él azonnal továbblép.
- Automatikus továbblépés, miután az ügynök befejezte a beszédet: egy agent csomópont Always kimenő éllel azt jelenti, hogy „amint az AI abbahagyja a beszédet, lépj tovább" — nincs szükség a hívó válaszára. Hasznos monológ-jellegű folyamatokhoz, mint egy bemutatóügynök, amely előad, majd átmegy a következő szakaszra.
A Condition és az Always (a determinisztikusak) mindig felülírják az AI decidest. Ha egy Condition illeszkedik, az AI átmenet-eszközeit figyelmen kívül hagyja azon a körön. Ez teszi lehetővé, hogy olyan szabályokat írj, amelyeket az AI nem tud megkerülni.
Elágazások sorrendje
Amikor több él hagyja el ugyanazt a csomópontot, a szerkesztő lehetővé teszi egy prioritás beállítását a sorok fel-le húzásával. Az alacsonyabb prioritású elágazások ellenőrződnek először. Ez csak akkor számít, ha két elágazás is aktiválódhatna ugyanazon a körön — jellemzően két Condition él átfedő szabályokkal. Az első illeszkedő elágazás győz.
Kontextus átvitele — mennyire emlékszik a következő ügynök
Minden élnek van egy Carry context beállítása, amely szabályozza, mennyit lát a következő csomópont a beszélgetés átiratából:
- Full transcript (alapértelmezett) — a következő ügynök mindent lát, amit eddig mondtak.
- Summary only — a platform összefoglalja az előző beszélgetést, és egy rövid összefoglalót ad át a következő ügynöknek.
- Nothing — a következő ügynök tiszta lappal indul, korábbi átirat nélkül.
Használd a Summary only opciót, amikor egy szakértő ügynöknek adsz át, akinek nincs szüksége minden szóra — tokent takarít meg, és fókuszáltan tartja az új ügynököt. Használd a Nothing opciót azoknál az elágazásoknál, ahol az új ügynök személyisége szándékosan különálló (pl. egy elégedettségi felmérés a hívás végén).
Változók
A változók a munkafolyamat memóriája. A munkafolyamatban a legtöbb dolog vagy egy változó beállításáról, vagy egy változó olvasásáról szól.
Változók deklarálása
A Variables panel (eszköztárgomb) megmutatja a munkafolyamat minden változóját azokkal a lépésekkel, amelyek mindegyiket beállítják vagy olvassák. Kattints egy változóra, hogy egy beállítóhoz ugorj; ez a leggyorsabb módja annak, hogy megtaláld, hol romlik el valami.
Deklarálhatsz egy változót alapértékkel a panelen — hasznos az olyan jelzőkhöz, mint az escalated=false, amelyeknek a kezdettől léteznie kell, hogy a feltételeid sose bukjanak el csendben a „hiányzik" miatt.
Beépített hívásváltozók
Néhány változó ki van töltve neked minden hívás legelején — nem deklarálod és nem állítod be őket, egyszerűen ott vannak, hogy olvasd:
| Változó | Mit tartalmaz |
|---|---|
{{call_from}} | A hívó telefonszáma |
{{call_to}} | A tárcsázott szám (a te számod) |
{{call_direction}} | inbound vagy outbound |
Mivel a legelső pillanattól léteznek, a legelső csomóponton is elágazhatsz rajtuk — például egy Condition a call_from értékén, hogy egy ismert VIP-t néven üdvözölj, országhívószám szerint útválassz, vagy az ismeretlen számokat egy ellenőrző útra küldd, mielőtt bármi más történne.
Hogyan állítódnak be a változók
| Forrás | Példa |
|---|---|
| Alapértékek (a Variables panelen deklarálva) | escalated = false beállítva a hívás kezdete előtt |
| Gather input | A hívó kimondott válasza a csomópont változójába rögzítődik |
| Update state | Közvetlenül írsz egy értéket (literál vagy {{tokens}} tokenekből összeállított) |
| Tool / Integration eredmény | A teljes válasz a csomópont neve alatt tárolódik; ha a válasz JSON-objektum, minden felső szintű mező saját változóvá is válik |
| Subagent return | Amivel az alügynök befejez, az alügynök csomópont return-változójában tárolódik |
Változók olvasása — {{tokens}}
Bárhol, ahol egy csomóponton szöveget gépelhetsz — agent-prompt, Message-szöveg, Gather-prompt, Tool URL / body / fejlécek, Phone transfer szám, Update state érték, feltételértékek —, beilleszthetsz egy {{variable}} tokent, és az futásidőben behelyettesítődik.
A pontozott útvonalak is működnek beágyazott adatoknál — pl. ha egy Tool-válasz {"customer": {"name": "Anna", "tier": "gold"}} volt, olvashatod a {{customer.name}} vagy {{customer.tier}} értéket.
Ha egy token egy nem létező változóra hivatkozik, a szó szerinti {{name}} szöveg a helyén marad (nem törlődik ki). Ez szándékos — így a hibás sablonok könnyen észrevehetők egy teszthívás során, ahelyett, hogy csendben elnyelné őket.
Gyakori minták
Minősítés → Elágazás → Útválasztás
Start
└─ Agent (greeting + qualify)
└─ Gather input (intent)
└─ Condition: intent == "sales" → Agent (sales)
└─ Condition: intent == "support" → Subagent (triage)
└─ Always (catch-all) → Message "Let me connect you" → Phone transfer
Lekérés → Személyre szabás
Start
└─ Tool (CRM lookup, writes is_known, name, tier)
└─ Condition: is_known == true → Agent (warm greeting with {{name}})
└─ Always (else) → Agent (cold greeting)
Újrafelhasználható segéd (Alügynök-kitérő)
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 munkafolyamat-hívás alatt
Néhány alapértelmezés megváltozik, amikor egy gráf irányítja a hívást:
- A nyelv zárolva van arra, amit a munkafolyamat első ügynöke használ. Az AI nem tud nyelvet váltani hívás közben. Ez megakadályozza, hogy a modell egy zajos körön rossz nyelvbe sodródjon.
- Az ügynök fő promptját felváltja az aktív csomópont promptja. Ez a „gráf birtokolja a személyiséget" szabály — lásd a figyelmeztetést az Agent alatt.
- Az első üzenet a belépési csomópont üdvözléséből származik, nem az ügynök fő „Begin Message" mezőjéből.
Hurokbiztonság — lépéskeret
Minden munkafolyamatnak van egy maximális átmenetszáma hívásonként (alapértelmezés 25). Minden alkalommal, amikor a gráf egy új csomópontra lép, a számláló eggyel csökken. Amikor eléri a nullát, a munkafolyamat abbahagyja a csomópontok közti ugrálást, hogy megelőzze az elszabadult hurkokat.
Kiválaszthatsz egy tartalék csomópontot erre az esetre (jellemzően egy Phone transfer vagy End call) — a hívás oda tér el, amint a keret elfogy. Egyébként az AI visszanyeri az irányítást, és a gráf gyakorlatilag lefagy a hívás hátralévő részére.
Nagyon ritkán kell erre gondolnod — ez egy védőháló a véletlenül hurkolódó gráfok számára. Ha normál használat során beleütközöl, valószínűleg van valahol egy ciklusod.
Tesztelés
A szerkesztőben lévő Test Call gomb egy böngészős hívást nyit az aktuális munkafolyamat-vázlattal. Amíg a hívás fut, egy fénylő szentjánosbogár mozog a csomópontok között a vásznon, így pontosan látod, hol tart a hívás. A szerkesztő zárolva van egy teszthívás alatt, hogy megakadályozza a szerkesztések és az élő állapot deszinkronizálódását.
Használd a Test Call funkciót ezek ellenőrzésére:
- A feltételeid illeszkednek a várt értékekhez (figyeld, ahogy a szentjánosbogár átugrik egy elágazást, amelyről azt hitted, aktiválódni fog).
- A tokenjeid helyesen helyettesítődnek be (fülelj elkószált
{{name}}tokenre, ha egy érték még nem lett beállítva). - Az eszközhibák elegánsan degradálódnak (a tartalék utad valóban aktiválódik).
Érdemes ismerni ezeket a hibamódokat
| Helyzet | Mi történik |
|---|---|
| Tool / Integration hívás sikertelen | A gráf folytatódik az adat nélkül. Az alsóbb feltételeidnek kezelniük kell a hiányzó változót. |
| Phone transfer sikertelen (érvénytelen szám, nincs válasz, hiányzó telefonkapcsolat) | A gráf visszagördül, a jelenlegi ügynök vonalban marad, és a beszélgetés normálisan folytatódik. |
| Az alügynök nem tud elindulni | A kitérő megszakad, a szülő ügynök marad vonalban, és egy rövid hibamondat hangzik el. |
{{missing_variable}} a szövegben | Szó szerint marad a kimenetben — teszthívások közben könnyen észrevehető. |
| Sub-workflow csomópont | Jelenleg áthalad rajta anélkül, hogy bármit tenne. Még ne támaszkodj rá. |
| A lépéskeret kimerült | A tartalék csomópontra tér el, ha be van állítva ilyen, egyébként az AI visszanyeri az irányítást. |
Mikor NE használj munkafolyamatot
A munkafolyamatok erősek, de nem minden ügynökhöz a helyes válasz. Maradj egyetlen promptnál, amikor:
- A beszélgetés nyílt végű („válaszolj a hívó kérdéseire a termékeinkről").
- Nincs egyértelmű elágazási logikád — a legtöbb döntés mérlegelés kérdése, amelyet az AI jól kezel.
- Egyetlen agent csomópontot és egyetlen End callt írnál — az csak egy prompt extra lépésekkel.
Nyúlj munkafolyamathoz, amikor:
- Fel tudod vázolni 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éged egy változón (egy Condition).
- Újra akarsz használni egy beszélgetés-szeletet több ügynök között (egy alügynök).
- Már „ha a hívó X-et mond, akkor tedd Y-t" szabályokat halmozol egy promptba, és azok nem megbízhatók.