Հիմնական նավիգացիա

Ագենտային համակարգերի նախագծման ուղենիշներ

Գործնական ուղենիշներն օգնում են թիմերին որոշել, թե ագենտի որ վարքագիծը վստահել լեզվային մոդելին, իսկ որը՝ բացահայտ ծրագրային ապահովմանը։

Համառոտ ամփոփում

  • Կարևոր է հանգամանորեն դիտարկել, թե ձեր ագենտային համակարգում ինչպես և որտեղ են որոշումներ կայացվում։

  • Ավելի շատ որոշումներ LLM-ին վերապահելը համակարգին հնարավորություն է տալիս ավելի լայն շրջանակի առաջադրանքներ ընդհանրացնելու, սակայն կարող է նվազեցնել արագությունը, հուսալիությունն ու կայունությունը։

  • Հնարավորության դեպքում աշխատեք որոշումների կայացման գործընթացի հնարավորինս մեծ մասը LLM-ից տեղափոխել բացահայտ ծրագրային կոդ։ Սա հատկապես կարևոր է բարձր ռիսկային և/կամ արտադրական աշխատանքային հոսքերի համար։

Ներածություն

LLM-ի վրա հիմնված ագենտային համակարգ նախագծելիս կարևորագույն որոշումներից մեկն այն է, թե որոշումների կայացման որ մասն է իրականացվելու LLM մոդելում, իսկ որը՝ բացահայտ ծրագրային ապահովման միջոցով։

Այս ընտրությունը հասկանալու համար այն կարող ենք դիտարկել որպես հետևյալ մոտեցումների միջև ընկած տիրույթ։

  • Երթուղիչի վրա հիմնված ճարտարապետությունները կոդում հստակ սահմանում են քայլերի հերթականությունն ու տրամաբանությունը՝ նեղ ոլորտի առաջադրանքների համար ապահովելով թեստավորելիություն, կանխատեսելիություն և կայունություն (դրանք կոչվում են նաև «աշխատանքային հոսքի ագենտներ»)։

  • Օրկեստրատոր ագենտները հիմնվում են մեծ լեզվային մոդելների (LLM-ների) վրա, որոնք բնական լեզվով հուշումների միջոցով դինամիկորեն որոշում են առաջադրանքների ընթացքը։ Դրանք իդեալական են բաց փոխազդեցությունների համար, երբ նախապես սահմանված տրամաբանությունն անբավարար է կամ անհնար։

Ներածությունը պատկերող գծապատկեր։

Բարձր ռիսկային արտադրական աշխատանքային հոսքերի համար սովորաբար խորհուրդ ենք տալիս ավելի շատ օգտագործել երթուղիչի վրա հիմնված գործառույթներ, իսկ օրկեստրատորները թողնել ճկուն, ընդհանուր նշանակության զրույց պահանջող կիրառությունների համար։

Երթուղիչն ընդդեմ օրկեստրատորի․ հասկանալ տարբերությունը

Երթուղիչի վրա հիմնված ճարտարապետություններ

Երթուղիչով ագենտային համակարգերը՝

  • Կոդի կամ ծրագրային ապահովման միջոցով հստակ սահմանում են որոշումների կայացման ընթացքը և LLM-ն օգտագործում են՝ որոշելու, թե ծրագրային ապահովումը որ երթուղով պետք է ընթանա։

  • Ավելի մոտ են ավանդական ծրագրային համակարգերին, քանի որ ունեն հստակ ու կանխատեսելի ուղիներ, որոնք ավելի հետևողական արդյունքներ են ապահովում։

  • Իդեալական են խիստ սահմանելի առաջադրանքների համար։

Ստորև բերված է «երթուղիչի մոտեցումն» օգտագործող՝ ավիատոմսերի ամրագրման չաթբոտ-ագենտի պարզ օրինակ։ LLM-ն օգնում է երեք հնարավոր տարբերակից դասակարգել հարցի նպատակը, սակայն հենց մեր ծրագրային ապահովումն է այդ նպատակը կապում պատասխան տեքստի ձևանմուշի հետ։ Քանի որ LLM-ը խիստ սահմանափակված է, օգտատերը կստանա ավելի հետևողական վարքագիծ։

Երթուղիչի և օրկեստրատորի տարբերությունը պատկերող գծապատկեր։

Օրկեստրատորային ճարտարապետություններ

Ի տարբերություն երթուղիչային համակարգի՝ օրկեստրատորային ագենտային համակարգերը՝

  • Տրամաբանական հոսքերը ծրագրային ապահովման փոխարեն սահմանում են բնական լեզվով հուշումների միջոցով։ Նշում․ ծրագրավորման լեզվի համեմատ բնական լեզուն ի սկզբանե երկիմաստ ու ճկուն է (սա և՛ դրական, և՛ բացասական հատկանիշ է, ինչպես կքննարկենք հետագայում)։ Մենք սա անվանում ենք «նպատակ՝ հրահանգի փոխարեն»։

  • Կարող են առաջարկել մշակման մի քանի տարբերակ, իսկ LLM-ը որոշում է կատարման հերթականությունն ու եղանակը։

  • Կարող են դինամիկորեն ստեղծել նոր տրամաբանական ուղիներ, որոնք դժվար է հստակ սահմանել ծրագրային ապահովման մեջ։

  • Այս երկիմաստությունը կարող է անհետևողական արդյունքների հանգեցնել, սակայն հաջող աշխատանքի դեպքում այն կարող է «կախարդական» թվալ։

Հաջորդ օրինակում օրկեստրատորային մոտեցումը կիրառվում է ավիաընկերության նույն պարզ խնդրի նկատմամբ։ Ծրագրային ապահովմանը համապատասխան պատասխանն ընտրել տալու փոխարեն որոշումների կայացումը վերապահվում է LLM-ի շերտին։ Այստեղ ունենք բազմաագենտ համակարգ, որտեղ «գլխավոր» օրկեստրատոր ագենտը նախնական գնահատման է ենթարկում օգտատիրոջ հարցումը և այն փոխանցում հատուկ չվերթների փոփոխման համար նախատեսված ագենտին, որն էլ վերջնական պատասխանն է տալիս օգտատիրոջը։

Այս օրինակում LLM-ի շերտը կատարում է դասակարգիչի, երթուղիչի և պատասխան կազմողի դերերը։ Երթուղիչի օրինակում այն կատարում էր միայն դասակարգիչի դերը (մնացածը կատարում էր ծրագրային ապահովումը)։

Երթուղիչի և օրկեստրատորի տարբերությունը պատկերող գծապատկեր։

Երթուղիչային ճարտարապետությունների ուժեղ կողմերն ու մարտահրավերները

Հնարավորության դեպքում խորհուրդ ենք տալիս օգտագործել երթուղիչի վրա հիմնված մոտեցումներ, քանի որ դրանք ունեն հետևյալ առավելությունները։

  • Արագություն և արդյունավետություն․ տեղային հաշվարկներն ավելի արագ են, քան արտաքին API-ներից կախված օրկեստրատորները։ Բացի այդ, շատ ավելի էժան է «IF/ELSE» տրամաբանությունը մշակել python-ում, քան վճարել LLM մատակարարին՝ այն 400 միլիարդ պարամետր ունեցող մոդելով անցկացնելու համար։

  • Թեստավորելիություն և կանխատեսելիություն․ ընդունված ծրագրային գործելակերպերի շնորհիվ կարգաբերումը, թեստավորումն ու սպասարկումը զգալիորեն ավելի հեշտ են։

  • Թափանցիկություն և հուսալիություն․ վարքագծի փոքր տատանումները հեշտացնում են խնդիրների ախտորոշումը։ Հավելվածի աշխատանքի ավելի մեծ մասն արտահայտվում է նաև թափանցիկ, տարբերակների կառավարմամբ ծրագրային ապահովման մեջ, այլ ոչ թե LLM-ի անթափանց ու դժվար մեկնաբանելի կշիռներում։

Երթուղիչային մոտեցումների թերությունն այն է, որ դրանք կարող են լինել կոշտ ու ոչ ճկուն և դժվարություններ ունենալ ավելի բաց խնդիրների դեպքում։ Օգտատերերը կարող են ձանձրալի կամ միապաղաղ համարել այն չաթբոտը, որը միշտ տալիս է ճիշտ նույն պատասխանները։

Օրկեստրատորային ճարտարապետությունների ուժեղ կողմերն ու մարտահրավերները

Օրկեստրատորային նախագծերն ունեն հզոր հնարավորություններ։

  1. Պլանավորում․ կարող են դինամիկորեն պլանավորել պատասխանները։

  2. Գործիքի ընտրություն/փոխանցում ագենտին․ ընտրում են համապատասխան գործիքներ կամ առաջադրանքները փոխանցում ագենտներին։

  3. Արդյունքների կրկնվող համադրում․ արդյունքները ստեղծագործաբար մշակում ու վերամիավորում են մի քանի փուլով։

  4. Ավարտվածության որոշում․ որոշում են, թե երբ է բավականաչափ տեղեկություն հավաքվել պատասխանը վերջնականացնելու համար։

Pydantic-AI-ի կամ OpenAI-ի Agents SDK-ի նման հենքերը թույլ են տալիս արագ ու հեշտ ներդնել օրկեստրացումը։ Ուստի այն հիանալի է ցուցադրական կամ հայեցակարգի կենսունակությունը հաստատող տարբերակների համար։

Այս մոտեցման թերություններն են՝

  • Չկա որևէ երաշխիք, որ LLM-ի պլանավորման քայլերն ու դրանց հաջորդող գործողությունները ճիշտ կամ տեղին կլինեն։ Երթուղիչային համակարգն ունի նույն խնդիրը, սակայն ավելի սահմանափակ լինելու շնորհիվ դրա վարքագիծն ավելի կանխատեսելի է։

  • Պարզ ու հստակ սահմանված առաջադրանքների համար բազմաագենտ համակարգի ամբողջ ներուժը, հավանաբար, անհրաժեշտ չէ։ Օրինակ՝ ավիաընկերության ագենտի մեր օրինակում, հավանաբար, հարցումների միայն սահմանափակ թվով տեսակներ կան, որոնցով իրականում հետաքրքրված են ավիաընկերության աջակցության համակարգից օգտվող մարդիկ։

  • Քանի որ տրամաբանության ավելի մեծ մասը LLM-ում է, չարամիտ անձինք շատ ավելի հեշտ կարող են հաքերային հարձակման գործընթացով շրջանցել կամ շահագործել այն։

  • Այս մոտեցումը որոշումների կայացումը վերացարկում ու տեղափոխում է LLM, ինչի հետևանքով համակարգը հասկանալն ավելի է դժվարանում (թեև Langfuse-ի կամ Braintrust-ի նման մշտադիտարկման գործիքները կարող են մասամբ օգնել)։

Ագենտային համակարգերի նախագծման մեր ուղենիշները

Նշում ընթերցողին․ թեև մոդելների հնարավորություններն արագ են փոխվում, ստորև նշվածը մոտ ապագայում, հավանաբար, չի փոխվի։

Հասկացեք, թե ինչ որոշումներ են անհրաժեշտ ձեր հավելվածում

Սահմանեք ձեր խնդրի շրջանակը։

  • Կարո՞ղ եք ցանկալի որոշումների տրամաբանությունը հեշտությամբ ներկայացնել գծապատկերով։

  • Արդյո՞ք ձեր հավելվածում անընդունելի են ձախողումը կամ անսպասելի վարքագիծը։

Վերոնշյալ հարցերից որևէ մեկին «այո» պատասխանելը հուշում է, որ երթուղիչային գործառույթներն ավելի հարմար կլինեն։

Նախ՝ երթուղիչ, ապա՝ հիբրիդային մոտեցումներ

Խորհուրդ ենք տալիս հնարավորության սահմաններում կիրառել երթուղիչային մոտեցումներ։ Որպես ընդհանուր սկզբունք՝ եթե համակարգի մի մասը հնարավոր է արտահայտել կոդով, արտահայտեք այն կոդով (այսինքն՝ անհարկի մի՛ չարաշահեք LLM-ները)։

Երբ հասնում եք այս մոտեցումների սահմաններին, օրկեստրատորի որոշ առավելություններ կարելի է սահմանափակ ձևով վերարտադրել։ Օրինակ՝

  1. Գործիքի ընտրություն/փոխանցում ագենտին․ հեշտությամբ իրականացվում է պայմանական ճյուղավորման կամ LLM դասակարգիչների միջոցով։

  2. Ավարտվածության որոշում․ պարզ LLM դասակարգիչները կարող են նախքան պատասխանը օգտատիրոջը վերադարձնելը ստուգել դրա ամբողջականությունը։

Սակայն «պլանավորումը» և «արդյունքների կրկնվող համադրումը», անկասկած, շատ ավելի դժվար է իրականացնել կոշտ երթուղիչային համակարգում։ Ուստի, երբ առաջադրանքը պահանջում է այս հնարավորությունները (ինչը որոշվում է LLM դասակարգիչով կամ այլ տրամաբանությամբ), առաջարկում ենք համակարգում ստեղծել ավելի քիչ սահմանափակված օրկեստրատորային ճյուղ։

Եզրակացություն և ապագայի հեռանկարներ

Երթուղիչային և օրկեստրատորային ճարտարապետությունների միջև ընտրությունը պետք է համապատասխանի ձեր հավելվածի հստակությանը, բարդությանն ու փոխազդեցության ոճին։ Ներկայում երթուղիչի վրա հիմնված մոտեցումները հստակ սահմանված առաջադրանքների համար ապահովում են հուսալիություն, արդյունավետություն և թեստավորման դյուրինություն։ Օրկեստրատորներն ավելի ճկուն են լայն շրջանակի զրույցային փոխազդեցությունների համար։

LLM-ների շարունակական զարգացմանը զուգընթաց այս մոտեցումների հավասարակշռությունը կարող է փոխվել։ Արտադրական ծանրաբեռնվածությունների համար նախընտրում ենք երթուղիչի վրա հիմնված կամ հիբրիդային ճարտարապետություններ, իսկ օրկեստրատորները պահում ենք բաց խնդիրների համար, որոնք պահանջում են դինամիկ, մարդկայինին նման փոխազդեցություն։

Հեղինակ

Andrew Liubinas