Негізгі мазмұнға өту

Workflows

Workflow — бұл сіздің агентіңіз қадамдар бойынша не істеу керектігінің визуалды картасы — кім бірінші сөйлейді, не сұрайды, қашан тармақталады, қашан қоңырауды аударады және қашан оны басқа агентке береді. Сіз оны кенепке түйіндерді орналастырып, оларды қосу арқылы құрастырасыз.

Бір жалғыз prompt жетпегенде workflow қолданыңыз — қоңырауда нақты кезеңдер болғанда («алдымен біліктілікті анықтау, содан кейін мәліметтерді жинау, содан кейін брондау немесе аудару»), қоңырау шалушының жауаптары бойынша детерминирленген маршруттау керек болғанда («AI әдетте шеше алады» дегеннің орнына), немесе агент жұмыстың бір бөлігін маманға беруі керек болғанда.

Prompt vs Workflow

Prompt — бұл бір ұзын нұсқаулық. Агент оны бір рет оқып, бүкіл қоңырау бойы пайдаланады. Workflow — бұл түйін басына бір көптеген кіші нұсқаулықтар, олардың арасында айқын ауысулар бар. Граф қоңырауды басқарады — әр түйіннің агенті тек өзінің бөлігіне ие.

Егер сіздің агентіңіз бір промптпен жақсы жұмыс істеп жатса, сізге workflow қажет емес. Промптқа «егер X болса, онда Y» ережелерін жинай бастағанда және олар сенімді жұмыс істемегенде, workflow-ға өтіңіз.


Редактор

Workflow редакторы агент бетіндегі өзінің қойындысында өмір сүреді. Сіз әдепкі бойынша Start түйіні және End түйіні бар кенепті көресіз. Құралдар тақтасынан түйіндерді қосасыз, оларды кенепке сүйреп қойып, шеттермен қосасыз.

Оң панель сіз не таңдағаныңызға байланысты өзгереді:

  • Түйінге басу — оның параметрлер панелін ашады (prompt, өрістер, шығарып алу айнымалылары, т.б.).
  • Шетке басу — оның триггер параметрлерін ашады (AI decides / Condition / Always).
  • Variables панелі (құралдар тақтасындағы түйме) workflow-тың әр айнымалысын оны орнататын немесе оқитын түйінге бір рет басумен өтумен тізімдейді.

Редактордан тікелей Браузерде Test Call іске қосыңыз — жарықтанатын отбасы тірі позицияны қадағалайды, осылайша қай түйін кез келген сәтте белсенді екенін дәл көресіз.

Сақтау және күйлер

Workflows үш күйлі:

  • Draft — өңделмелі, әлі өндірісте емес. Тестілеу үшін Test Call қолданыңыз.
  • Active — нақты қоңыраулар үшін өндірісте. Агент бұл workflow-ты келесі қоңыраудан бастап пайдаланады.
  • Template — қайта пайдаланылатын үлгі, ешқашан агентке тікелей байланыстырылмаған. Сіз оны бірнеше агентте инстанциялай аласыз.

Түйіндер

Әр түйін әңгімедегі қадам. Әртүрлі түйін түрлері әртүрлі нәрселерді жасайды — біреулері сөйлейді, басқалары тыңдайды, басқалары маршруттайды, басқалары құралдарды орындайды.

Agent

Agent түйіні workflow кезеңінің жүрегі. Граф Agent түйініне жеткенде, сол агент сөзді алады және бір нәрсе ауысуды іске қосқанша әңгімені жүргізеді.

Сіз Agent түйінінің тұлғасы мен тапсырмасын тікелей кенепте конфигурациялайсыз (Prompt қойындысы түйінге басқанда ашылады) — бұл әңгіменің сол бөлігі үшін prompt, бүкіл қоңырау үшін емес. Сондай-ақ түйін бойынша білім қорлары мен құралдарды тіркей аласыз.

Greeting — ашу жолы. Егер бұл кіріс түйіні болса (Start-тан кейінгі бірінші аялдама), бұл қоңырау шалушы еститін бірінші нәрсе.

Персонаны граф иеленеді

Граф қоңырауды басқарғанда, агенттің негізгі промпты (Model қойындысындағы) белсенді түйіннің промптымен ауыстырылады. Бұл әдейі — граф тұлғаны және тапсырманы кезең бойынша иеленеді, онымен бәсекелесетін бір тұрақты prompt емес.

Subagent

Subagent — бұл инлайн жұмыс істейтін көмекші — нақты тапсырма үшін әңгімені алып, нәтижені оны шақырғанға қайтарады.

Subagent-тер жұмыстың бір бөлігі қайта пайдаланылатын немесе бөлек сезілгенде жақсы жұмыс істейді: «қоңырау шалушының жеке басын тексер», «жеткізу мекенжайын жинау», «SPIN әдісімен лидті біліктілендір». Ата-ана агент subagent-ті шақырады, ол өз ісін істейді, нәтижені хабарлайды, ата-ана тоқтаған жерден жалғастырады.

Subagent түйіндерінің Agent түйінімен бірдей қойындылары бар (Prompt, Knowledge, Tools, Actions) — редактор сіз үшін автоматты түрде жасырын backing-агентті жасайды. Бұл жасырын агентті негізгі тізіміңізде көрмейсіз және ол сіздің тарифіңіздегі агенттер шегіне есептелмейді.

Return variable — subagent нәтижесін сақтайтын өріс (мысалы, identity_verified, lead_score).

Message (Say)

Say түйіні тұрақты сөйлемді айтады — AI кезегі жоқ, импровизация жоқ. Оны ауысулар үшін («Бір секунд, мен сізді аударамын…»), міндетті құқықтық хабарландырулар немесе сөздер маңызды болатын алдын ала анықталған растаулар үшін қолданыңыз.

Text — не айту керек. Алынған мәндерді енгізу үшін {{variable}} токендерін қолдайды, мысалы, "Рахмет {{first_name}}, мен сізді {{appointment_time}} уақытына брондадым."

Say түйіні кезекті жұмсайды — агент үстіне ештеңе қоспайды.

Gather Input

Gather Input түйіні сұрақ қояды және қоңырау шалушының жауабын айнымалыға түсіреді.

Prompt — қойылатын сұрақ. {{tokens}} қолдайды. Variable — жауапты сақтайтын өрістің атауы.

Жалғастырмас бұрын нақты мән қажет болған сайын қолданыңыз — email, шот нөмірі, адамдар саны, мәселе санаты. Қоңырау шалушының келесі кезегі мәнге айналады; одан кейін бірден Condition шетімен оған тармақтай аласыз.

Update State

Update State түйіні сөйлемей және сұрамай workflow айнымалыларына бір немесе бірнеше мән жазады. Әдепкілерді алдын ала орнату, прогресс жалаушаларын белгілеу немесе алдыңғы қадамдардан мәндерді құрастыру үшін қолданыңыз.

Variable / Value — кілт-мән жұбы. More variables (optional) — қосымша кілт-мән жұптары.

Кілттер де, мәндер де {{tokens}} қолдайды, осылайша бар мәндерден жаңа мәндерді құрастыра аласыз.

Condition

Condition түйіні тек маршрутизация түйіні — сөйлемейді, сұрамайды, қоңырауды сәйкес шығыс тармағы бойымен жібереді.

Шарттың өзі түйінде емес, әр шығыс шетінде өмір сүреді — төменде Condition шеттері бөлімін қараңыз.

Сіз графтыңызда «fan-out» нақты нүктесін қалағанда Condition түйінін қолданыңыз: айнымалы мәніне тәуелді көптеген тармақтар. Agent түйіндерінің шеттеріне шарттарды қоюмен салыстырғанда, арнайы Condition түйіні маршрутизация логикасын визуалды түрде айқын етеді.

Tool

Tool түйіні агенттің қосылған құралдарының бірін граф қадамы ретінде орындайды — AI-дың оны шақыруда сөзі жоқ. Сіз әңгімені емес, факт қалаған кезде қолданыңыз: «бұл клиентті тап», «қойманы тексер», «ағымдағы ауа райын GET ет».

Сіз:

  • Агенттің бар құралдарының бірін таңдай аласыз (күнтізбеден іздеу, білім қорынан іздеу, интеграцияның нақты әрекеті), немесе
  • Түйінде тікелей инлайн HTTP шақыруын конфигурациялай аласыз (URL, әдіс, тақырыптар, параметрлер, body).

Құрал жауабы барлық төменгі ағынды түйіндерге қолжетімді болады. Жауап JSON нысаны болса, әр жоғарғы деңгейлі өріс өз айнымалысына айналады — {"is_known": true, "tier": "gold"} сияқты жауап is_known-ты да, tier-ді де жазады, оларда тармақтай алуыңыз үшін.

Tool-дағы токендер

Tool түйініндегі әр мәтін өрісі — URL, тақырып мәндері, body — {{tokens}} қолдайды. Кодты жазусыз URL жолына, тақырыпқа немесе body-ге айнымалыны енгізіңіз.

Құрал шақыруы сәтсіз болса (HTTP қатесі, тайм-аут, желі), түйін сәтсіздікті журналдайды және граф мәліметсіз жалғасады. Төменгі ағынды шарттарыңызды «мән жоқ» жағдайын өңдеу үшін жоспарлаңыз.

Integration

Integration түйіні — қосылған сыртқы қызметтер үшін Tool-дың шоғырланған нұсқасы — Google Calendar, Outlook, HubSpot. Сіз провайдерді және нақты әрекетті таңдайсыз (мысалы, check_availability, create_event), параметрлерді өткізесіз, ал түйін интеграцияны детерминирленген түрде шақырады.

Бұл агентте интеграция қосылмаған болса, түйін әрекетсіз өтеді — графтыңыз жалғасады. «Орындалмады» жағдайы үшін төменгі ағынды шарттарды тексеріңіз.

Phone Transfer

Phone Transfer түйіні қоңырауды (warm transfer) сыртқы телефон нөміріне аударады. Сәтті аудару кейін қоңырау сіздің workflow-ыңыздан кетті — сіздің агентіңіз енді желіде емес.

Number — алдына + қойылған халықаралық форматтағы тағайындалу орны (мысалы, +15551234567). {{tokens}} қолдайды, осылайша тағайындалу орны алдыңғы қадамнан келе алады (мысалы, «қай кеңсемен жалғаймыз?» сұрағына жауап).

Егер аудару өтпесе (жарамсыз нөмір, жауап жоқ, телефон байланысы орнатылмаған), граф кері шегінеді және ағымдағы агент желіде қалады. Әңгіме қалыпты жалғасады — агент кешірім сұрап, басқа жолды ұсына алады.

End Call

End Call түйіні жабады — агент конфигурацияланған жабуды айтып, сосын тұтқаны қояды. «Барлығы орындалды» тармақтары үшін немесе қиын Condition-нан «көмектесе алмаймыз, кешіріңіз» тармағы үшін таза терминус ретінде қолданыңыз.

Кіріс шеттен басқа конфигурацияны талап етпейді.

Workflow-ты қайта пайдалану (Sub-workflow)

Sub-workflow түйіні басқа workflow-ты ішкі граф ретінде енгізу үшін сақталған. Бұл түйін редакторда, бірақ әлі толық қосылмаған — граф одан ештеңе істемей өтеді. Өндірістік қоңыраулар үшін оған сенбеңіз. Біз қайта пайдаланылатын ішкі графтарды шығарған кезде оны қосамыз.


Шеттер (Қосылыстар)

Бір түйінді келесімен шет арқылы қосасыз. Шет триггері ауысу қашан іске қосылатынын шешеді.

Үш триггер бар:

ТриггерКім шешедіҚашан іске қосылады
AI decidesAIӘңгіме мұны табиғи келесі қадам жасағанда. AI-ға шақыра алатын «ауысу құралы» беріледі.
ConditionRuntimeАйнымалы сіз жазған ережемен сәйкес келгенде. AI жауап бермес бұрын бағаланады.
AlwaysRuntimeШарттсыз — бастапқы түйін аяқталысымен. Қоңырау шалушы кірісі жоқ, AI жоқ.

AI decides (ниет негізінде)

Тек AI қашан ауысу керектігін шеше алғанда AI decides қолданыңыз — «қоңырау шалушы бағаларды сұраса, сату агентіне аудар», «шағым тәрізді естілсе, кешірім subagent-ін іске қос».

Сіз шетке қысқа ниет сипаттамасын жазасыз (мысалы, «Қоңырау шалушы бағаларды сұрайды немесе жаңарту жасағысы келеді»). AI оны сол ниетпен таңбаланған құрал ретінде көреді және әңгімеге негізделген оны шақыру керек пе екенін шешеді. Бірнеше AI-decides шеттері болса, AI кезек басына ең көп бірін таңдайды.

Condition (детерминирленген тармақталу)

Графтың — AI емес — белгілі факт негізінде шешім қабылдауын қалаған кезде Condition қолданыңыз: «егер lead_score > 7 болса, closer-ге жіберу; әйтпесе сыпайы аяқтау».

Conditions AI жауап бермес бұрын бағаланады, осылайша олар сол кезекте AI-ды әрқашан жеңеді. AI сәйкес келетін шартты қайта жаза алмайды.

Сіз шартты осы операторлармен құра аласыз:

ОператорМағынасыМысал
equalsдәл сәйкестік (мәтін үшін регистрге сезімтал емес)intent equals "billing"
not equalsсәйкес келмейдіstatus not equals "active"
containsішкі жол сәйкестігі (регистрге сезімтал емес)feedback contains "broken"
greater thanсандық >lead_score greater than 7
less thanсандық <wait_minutes less than 5

Сіз сондай-ақ All (барлығы сәйкес келуі керек — AND) немесе Any (кем дегенде біреуі сәйкес келуі керек — OR) арқылы тармақтарды біріктіре аласыз және оларды ұя салуға болады. «Қоңырау шалушы белгілі және оның tier-і gold немесе premium» сияқты ереже былай айналады:

All:
- is_known equals true
- Any:
- tier equals gold
- tier equals premium
Жоқ айнымалылар ешқашан сәйкес келмейді

Әлі орнатылмаған айнымалыға сілтеме жасасаңыз (мысалы, AI оны ешқашан жинамаса), оған шарттар әрқашан сәтсіз болады — қате жоқ, жай сәйкес келмейді. Сондықтан loyalty_tier equals "gold" loyalty_tier ешқашан орнатылмаған болса, false қайтарады. Тармақтарды осыны өңдеу үшін жобалаңыз — әдетте else тармағы арқылы (төменде қараңыз).

Else тармағы — ешбір шарт сәйкес келмегенде

Түйіннен шығатын бірнеше Condition шеттеріңіз болса және ешқайсысы сәйкес келмесе, қоңырау ең төмен басымдықтағы Condition емес шетке түседі (Always немесе AI-decides шеті). Мүлдем fallback болмаса, AI бақылауды қайта алады және еркін жалғастыра алады.

Жалпы үлгі: белгілі жолдар үшін бірнеше Conditions және catch-all-ға баратын Always шеті (бір нәрсе айт, сосын End Call немесе аудар).

Always (auto-advance)

Келесі қадам шартсыз болғанда Always қолданыңыз — шешім жоқ, қоңырау шалушы кірісі жоқ. Екі табиғи қолданыс:

  • Қадамдарды тізбектеу: SAY → UPDATE_STATE → SAY → TOOL → Condition. Әр қадам бітеді және Always шеті бірден алдыға жылжытады.
  • Агент сөйлеуді тоқтатқаннан кейін авто-жылжыту: шығатын Always шеті бар Agent түйіні «AI сөйлеуді тоқтатқанда, алға жылжы» дегенді білдіреді — қоңырау шалушының жауап беруіне қажет жоқ. Бөлімді ұсынатын және келесі бөлімге өтетін презентациялық агент сияқты монолог тәріздес ағындар үшін пайдалы.
Триггерлер арасындағы басымдық

Condition және Always (детерминирленген) әрқашан AI decides-ты жеңеді. Condition сәйкес келсе, AI ауысу құралдары сол кезекте еленбейді. Бұл AI айналып өте алмайтын ережелерді жазуға мүмкіндік береді.


Айнымалылар

Айнымалылар — workflow-тың жады. Workflow-тағы көп нәрсе айнымалыны орнату немесе оны оқу.

Айнымалыларды жариялау

Variables панелі (құралдар тақтасындағы түйме) workflow-тың әр айнымалысын оны орнататын немесе оқитын қадамдармен көрсетеді. Айнымалыға басу — setter-ге өту; бұл бір нәрсенің қайда дұрыс емес кететінін табудың ең жылдам жолы.

Сіз панельде әдепкі мәнмен айнымалыны жариялай аласызescalated=false сияқты шарттарыңыздың «болмауы» себебінен үнсіз сәтсіз болмауы үшін басынан бар болуы керек жалаулар үшін пайдалы.

Айнымалылар қалай орнатылады

ДереккөзМысал
Әдепкі мәндер (Variables панелінде жарияланған)Қоңырау басталмас бұрын орнатылған escalated = false
Gather InputҚоңырау шалушының сөйлеу жауабы түйін айнымалысына түсіріледі
Update StateТікелей мән жазасыз (литерал немесе {{tokens}}-пен құрастырылған)
Tool / Integration нәтижесіТолық жауап түйін атымен сақталады; жауап JSON нысаны болса, әр жоғарғы деңгейлі өріс де өз айнымалысына айналады
Subagent returnSubagent аяқтаған нәрсе subagent түйінінің return айнымалысында сақталады

Айнымалыларды оқу — {{tokens}}

Түйінде мәтін жаза алатын кез келген жерде — Agent prompt, Say мәтіні, Gather prompt, Tool URL/body/тақырыптары, Phone Transfer нөмірі, Update State мәні, шарт мәндері — {{variable}} енгізе аласыз және ол runtime-да ауыстырылады.

Нүктелі жолдар да кірістірілген деректер үшін жұмыс істейді — мысалы, Tool жауабы {"customer": {"name": "Anna", "tier": "gold"}} болса, {{customer.name}} немесе {{customer.tier}} оқи аласыз.

Белгісіз токендер көрінетін күйде қалады

Токен жоқ айнымалыға сілтеме жасаса, литералды мәтін {{name}} сол күйінде қалдырылады (өшірілмейді). Бұл әдейі — бұзылған үлгілерді test call-да оңай байқауға мүмкіндік береді, оларды үнсіз жұтудың орнына.


Жалпы үлгілер

Білікті → Тармақтау → Маршрут

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

Іздеу → Дербестеу

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

Қайта пайдаланылатын көмекші (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}}

Workflow басқарылатын қоңырау кезінде не құлыпталған

Граф қоңырауды басқарғанда кейбір әдепкілер өзгереді:

  • Тіл workflow-тың бірінші агенті пайдаланатынына құлыпталған. AI қоңырау ортасында тілді ауыстыра алмайды. Бұл модельдің шулы кезекте дұрыс емес тілге сырғып кетуінен қорғайды.
  • Агенттің негізгі промпты белсенді түйіннің промптымен ауыстырылады. Бұл «граф персонаны иеленеді» ережесі — Agent астындағы warning қараңыз.
  • Бірінші хабарлама агенттің «Begin Message» өрісінен емес, кіріс түйінінің greeting-інен келеді.

Цикл қорғанысы — Step Budget

Әр workflow-тың қоңырау басына ауысулардың максималды саны бар (әдепкі 25). Граф жаңа түйінге ауысқан сайын, есептегіш бірге азаяды. Нөлге жеткенде, runtime бақылаудан тыс циклдарды болдырмау үшін ауысуларды тоқтатады.

Сіз бұл жағдай үшін fallback түйінін таңдай аласыз (әдетте Phone Transfer немесе End Call) — бюджет таусылған соң қоңырау сонда бұрылады.

Бұл туралы сирек ойлау керек — бұл кездейсоқ циклдан түскен графтар үшін қауіпсіздік торы. Қалыпты пайдалану кезінде бұған жетсеңіз, сізде бір жерде цикл бар шығар.


Тестілеу

Редактордың Test Call түймесі workflow-тың ағымдағы драфтымен браузер қоңырауын ашады. Ол іске қосылып тұрғанда, кенептегі түйіндер арасында жарықтанатын отбасы жылжиды, осылайша қоңырау қай жерде екенін дәл көресіз. Test call кезінде редактор өзгертулер тірі күйдің синхрондауын бұзбауы үшін құлыпталған.

Test Call-ды мынаны тексеру үшін қолданыңыз:

  • Шарттарыңыз сіз күткен мәндермен сәйкес келеді (отбасы іске қосылады деп ойлаған тармақты өткізіп кетеді ме қараңыз).
  • Токендеріңіз дұрыс ауыстырылады (мән орнатылмаған болса, ілінген {{name}} тыңдаңыз).
  • Құрал сәтсіздіктері сабырмен төмендейді (fallback маршрутыңыз шынында іске қосылады).

Білуге қажет сәтсіздіктер

ЖағдайНе болады
Tool / Integration шақыруы сәтсіз боладыГраф деректерсіз жалғасады. Сіздің төменгі ағынды шарттарыңыз жоқ айнымалыны өңдеуі тиіс.
Phone Transfer сәтсіз болады (жарамсыз нөмір, жауап жоқ, телефон байланысы орнатылмаған)Граф кері шегінеді, ағымдағы агент желіде қалады және әңгіме қалыпты жалғасады.
Subagent іске қосылмайдыТармақтама бас тартылады, ата-ана агент желіде қалады және қысқа сәтсіздік сөйлемі айтылады.
Мәтіндегі {{missing_variable}}Шығыста литералды қалдырылады — test call-да байқауға оңай.
Sub-workflow түйініҚазіргі уақытта одан ештеңе істемей өтеді. Әзірге оған сенбеңіз.
Step budget таусылдыОрнатылған болса fallback түйініне бұрылады, әйтпесе AI бақылауды қайта алады.

Қашан Workflow ҚОЛДАНБАУ керек

Workflow-лар қуатты, бірақ әр агент үшін дұрыс жауап емес. Мына кезде бір промптпен қалыңыз:

  • Әңгіме ашық («біздің өнімдер туралы қоңырау шалушының сұрақтарына жауап беру»).
  • Сізде анық тармақталу логикасы жоқ — шешімдердің көпшілігі AI жақсы өңдейтін пайымдаулар.
  • Сіз тек Agent түйінін және End Call жазасыз — бұл жай ғана қосымша қадамдары бар prompt.

Workflow-ға мына кезде өтіңіз:

  • Сіз қоңырауды үш немесе одан да көп нақты кезеңмен ағын диаграммасы ретінде сызып ала аласыз.
  • Сізге айнымалыда кем дегенде бір детерминирленген тармақталу қажет (Condition).
  • Бірнеше агент арасында әңгіме бөлігін қайта пайдаланғыңыз келеді (subagent).
  • Сіз промптқа «қоңырау шалушы X айтса, Y жасайды» ережелерін жинап жатырсыз және олар сенімсіз.