Негізгі навигация

Агенттік жүйені жобалау қағидалары

Практикалық қағидалар агент әрекеттерінің қайсысын тілдік модельге, ал қайсысын нақты бағдарламалық жасақтамаға жүктеу керегін анықтауға көмектеседі.

Қысқаша шолу

  • Агенттік жүйеде шешімдердің қалай және қай жерде қабылданатынын мұқият ойластырған жөн.

  • Көбірек шешімді LLM-ге (үлкен тілдік модельге) тапсыру жүйенің ауқымды міндеттерді жалпылап орындауына мүмкіндік береді, бірақ жылдамдық, сенімділік пен орнықтылық төмендеуі ықтимал.

  • Мүмкіндігінше шешім қабылдау процесінің басым бөлігін LLM-нен (үлкен тілдік модельден) шығарып, нақты бағдарламалық кодқа енгізуге тырысыңыз. Бұл әсіресе тәуекелі жоғары және/немесе өндірістік жұмыс процестеріне қатысты.

Кіріспе

LLM-ге (үлкен тілдік модельге) негізделген агенттік жүйені жобалаудағы ең маңызды таңдаудың бірі — шешім қабылдау процесінің қанша бөлігін LLM (үлкен тілдік модель) моделіне, ал қанша бөлігін нақты бағдарламалық жасақтамаға жүктеу.

Бұл таңдауды жақсырақ түсіну үшін оны мына тәсілдердің арасындағы ауқым ретінде қарастыруға болады:

  • Маршрутизаторға негізделген архитектуралар әрекеттердің реті мен логикасын кодта нақты белгілейді. Бұл аясы тар міндеттерде тестілеу мүмкіндігін, болжамдылық пен орнықтылықты қамтамасыз етеді (оларды «жұмыс процесінің агенттері» деп те атайды).

  • Оркестратор агенттер міндеттердің орындалу барысын табиғи тілдегі нұсқаулар арқылы динамикалық анықтау үшін үлкен тілдік модельдерге (LLM-дерге) сүйенеді. Олар алдын ала белгіленген логика жеткіліксіз немесе мүмкін емес ашық форматтағы өзара әрекеттесуге қолайлы.

Кіріспені бейнелейтін диаграмма.

Тәуекелі жоғары өндірістік жұмыс процестерінде әдетте маршрутизаторға негізделген мүмкіндіктерді көбірек қолданып, оркестраторларды икемді әрі әмбебап сұхбатты қажет ететін қолданбаларға қалдыруды ұсынамыз.

Маршрутизатор мен оркестратор: айырмашылығын түсіну

Маршрутизаторға негізделген архитектуралар

Маршрутизаторлық агенттік жүйелер:

  • Шешім қабылдау барысын кодта немесе бағдарламалық жасақтамада нақты белгілеп, бағдарламаның қай бағытты таңдайтынын анықтау үшін LLM-ді (үлкен тілдік модельді) пайдаланады.

  • Нақты әрі болжамды жолдары тұрақтырақ нәтиже беретіндіктен, дәстүрлі бағдарламалық жүйелерге жақын.

  • Қатаң түрде анықтауға болатын міндеттерге өте қолайлы.

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

Маршрутизатор мен оркестратордың айырмашылығын түсіндіретін диаграмма.

Оркестратор архитектуралары

Маршрутизаторлық жүйеден айырмашылығы, оркестраторлық агенттік жүйелер:

  • Логикалық процестерді бағдарламалық жасақтамамен емес, табиғи тілдегі нұсқаулармен анықтайды. Ескерту: бағдарламалау тілімен салыстырғанда табиғи тіл әуел бастан екіұшты әрі икемді (мұның оң және теріс қырларын кейінірек талқылаймыз). Біз мұны «нұсқаудан гөрі ниет» деп түсінеміз.

  • Бірнеше өңдеу нұсқасын ұсынып, орындалу реті мен әдісін LLM-ге (үлкен тілдік модельге) анықтата алады.

  • Бағдарламалық жасақтамада нақты сипаттау қиын жаңа логикалық бағыттарды динамикалық түрде жасай алады.

  • Мұндай екіұштылық нәтиженің бірізді болмауына әкелуі мүмкін, бірақ бәрі сәтті істегенде, бұл «сиқырдай» сезіледі.

Келесі мысалда әуе компаниясына қатысты сол қарапайым міндетке оркестратор тәсілі қолданылады. Қай жауаптың орынды екенін бағдарламалық жасақтамаға анықтатудың орнына, шешім қабылдау LLM (үлкен тілдік модель) деңгейіне тапсырылады. Мұнда «бас» оркестратор агент пайдаланушы сұрауын саралап, оны рейстерді өзгертуге арнайы жасалған агентке тапсыратын көп агентті жүйе бар. Соңында сол агент пайдаланушыға жауап береді.

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

Маршрутизатор мен оркестратордың айырмашылығын түсіндіретін диаграмма.

Маршрутизатор архитектураларының артықшылықтары мен қиындықтары

Мүмкіндігінше маршрутизаторға негізделген тәсілдерді қолдануды ұсынамыз, өйткені олардың мынадай артықшылықтары бар:

  • Жылдамдық пен тиімділік: Жергілікті есептеулер сыртқы API-ларға тәуелді оркестраторларға қарағанда әлдеқайда жылдам. Сондай-ақ «IF/ELSE» логикасын 400 миллиард параметрлі модель арқылы өңдету үшін LLM (үлкен тілдік модель) провайдеріне ақы төлегеннен гөрі, оны python тілінде өңдеу әлдеқайда арзан.

  • Тестілеу мүмкіндігі мен болжамдылық: Қалыптасқан бағдарламалық тәжірибелер арқылы жөндеу, тестілеу және сүйемелдеу айтарлықтай оңай.

  • Айқындық пен сенімділік: Әрекеттердің аз құбылуы ақауларды анықтауды жеңілдетеді. Сонымен бірге қолданба барысының басым бөлігі LLM-нің (үлкен тілдік модельдің) түсініксіз әрі түсіндіруге келмейтін салмақтарында емес, айқын және нұсқалары бақыланатын бағдарламалық жасақтамада көрсетіледі.

Маршрутизатор тәсілдерінің кемшілігі — олар қатаң әрі икемсіз болуы және ашық форматтағы мәселелерде қиналуы мүмкін. Үнемі дәл бірдей жауап қайтаратын чатбот пайдаланушыларға іш пыстырарлық әрі тоқырап қалғандай көрінуі мүмкін.

Оркестратор архитектураларының артықшылықтары мен қиындықтары

Оркестраторлық архитектуралардың қуатты мүмкіндіктері бар:

  1. Жоспарлау: Жауаптарды динамикалық түрде жоспарлай алады.

  2. Құрал таңдау/агентке тапсыру: Тиісті құралдарды таңдайды немесе міндеттерді агенттерге тапсырады.

  3. Нәтижелерді итерациялық біріктіру: Нәтижелерді қайталап өңдеп, шығармашылықпен қайта біріктіреді.

  4. Аяқталғанын анықтау: Жауапты түпкілікті дайындауға жеткілікті ақпараттың қашан жиналғанын анықтайды.

Pydantic-AI немесе OpenAI’s Agents SDK сияқты фреймворктер оркестрацияны оңай әрі жылдам іске асыруға мүмкіндік береді. Сондықтан бұл демонстрациялар мен тұжырымдаманы тексеруге өте қолайлы.

Бұл тәсілдің кемшіліктері:

  • LLM-нің (үлкен тілдік модельдің) жоспарлау қадамдары мен кейінгі әрекеттері дұрыс әрі орынды болатынына кепілдік жоқ. Маршрутизаторлық жүйеде де осы мәселе бар, бірақ шектеулері көбірек болғандықтан, оның әрекеті болжамдырақ.

  • Қарапайым әрі нақты анықталған міндеттерге көп агентті жүйенің толық мүмкіндігі қажет бола бермейді. Мысалы, әуе компаниясы агенті туралы мысалда қолдау жүйесіне жүгінген адамның орындағысы келетін сұрау түрлері санаулы ғана болуы ықтимал.

  • Логиканың көбірек бөлігі LLM-де (үлкен тілдік модельде) болғандықтан, қаскүнемдер оның қорғанысын айналып өтуге немесе осалдықтарын пайдалануға әлдеқайда оңай әрекет ете алады.

  • Бұл шешім қабылдауды LLM (үлкен тілдік модель) ішіне жасырып, жүйені түсінуді қиындатады (дегенмен Langfuse немесе Braintrust сияқты бақылау құралдары бұған ішінара көмектесуі мүмкін).

Агенттік жүйені жобалауға арналған қағидаларымыз

Оқырманға ескерту: модель мүмкіндіктері тез өзгеріп жатқанымен, төмендегі тұжырымдар жақын арада өзгере қоймайды.

Қолданбаңызда қандай шешімдер қажет екенін түсініңіз

Мәселеңіздің ауқымын анықтаңыз.

  • Қажетті шешім қабылдау логикасын диаграммада оңай көрсете аласыз ба?

  • Қолданбаңыздағы ақауға немесе күтпеген әрекетке жол беруге болмай ма?

Жоғарыдағы сұрақтардың кез келгеніне «иә» деп жауап берсеңіз, маршрутизатор мүмкіндіктері қолайлырақ болуы ықтимал.

Алдымен маршрутизатор, содан кейін гибридті тәсілдер

Мүмкіндігінше әрі мүмкіндік бергенше маршрутизатор тәсілдерін қолдануды ұсынамыз. Жалпы қағида бойынша, жүйеңіздің бір бөлігін кодпен көрсетуге болса, оны кодпен жазыңыз (яғни қажет болмаған кезде LLM-дерді шамадан тыс пайдаланбаңыз).

Бұл тәсілдер шегіне жеткенде, оркестратордың ашық форматтағы кейбір артықшылықтарын шектеулі түрде қайталауға болады. Мысалы:

  1. Құрал таңдау/агентке тапсыру: Шартты тармақтау немесе LLM (үлкен тілдік модель) жіктеуіштері арқылы оңай іске асырылады.

  2. Аяқталғанын анықтау: Қарапайым LLM (үлкен тілдік модель) жіктеуіштері жауапты пайдаланушыға жібермес бұрын оның толықтығын тексере алады.

Алайда қатаң маршрутизаторлық жүйеде «жоспарлау» мен «нәтижелерді итерациялық біріктіруді» іске асыру әлдеқайда қиын екені сөзсіз. Сондықтан міндетке осы мүмкіндіктер қажет болса (мұны LLM (үлкен тілдік модель) жіктеуіші немесе басқа логика анықтайды), жүйеде шектеуі азырақ оркестратор тармағын жасауды ұсынамыз.

Қорытынды және болашаққа болжам

Маршрутизатор мен оркестратор архитектураларының арасындағы таңдау қолданбаңыздың айқындығына, күрделілігіне және өзара әрекеттесу мәнеріне сай болуы керек. Қазіргі кезде маршрутизаторға негізделген тәсілдер нақты анықталған міндеттер үшін сенімділік, тиімділік және тестілеу жеңілдігін қамтамасыз етеді. Оркестраторлар ауқымды әрі сұхбат түріндегі өзара әрекеттесуге көбірек икемділік береді.

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

Автор

Andrew Liubinas