Spring AI · Agent əsaslı iş axınları və Embabel · Dərs 3

Embabel ilə məqsədə yönəlmiş planlaşdırma

Spring AI ilə geniş istifadə olunan agent iş axını nümunələrini qur. Spring AI üzərində qurulmuş Embabel ilə məqsədə çatmaq üçün avtomatik planlaşdırmanı araşdır.

Embabel ilə məqsədə yönəlmiş planlaşdırma

1. Dizaynı uyğunlaşdırmazdan əvvəl versiyanı yoxlayın

Embabel agent davranışını məqsədlər, əməliyyatlar və mövcud domen obyektləri ilə təsvir edir. Standart planlaşdırma yanaşması Goal Oriented Action Planning (GOAP)-dır. Planlaşdırıcı dəyişdirilə bilər və sənədləşdirilmiş platforma Utility AI-ni də dəstəkləyir. Planlaşdırıcı tətbiq kodunda yazılmış bir sabit ardıcıllıq əvəzinə məqsədə çatmaq üçün mövcud əməliyyatların ardıcıllığını seçə bilər.

Bu dərs üçün 7 oktyabr 2026 tarixində yoxlanmış cari buraxılış Embabel Agent 1.5.3-dür. Həm GitHub buraxılışı, həm Maven Central metadatası bu versiyanı göstərir. Nəşr edilmiş API POM-u Spring Boot 4.1.1 və Spring AI 2.0.1 asılılıqlarını bildirir. Kursun işlək laboratoriyası Boot 3.5.9 və Spring AI 1.1.8 istifadə edir. Bunlar fərqli asılılıq bazalarıdır.

Buna görə dərs versiyaya bağlı konseptual/API uyğunlaşdırması verir. 1.5.3 asılılığını mövcud laboratoriyaya əlavə edib onun tranzitiv asılılıqlarını zorla kurs versiyalarına endirməyin. Birgə işlək inteqrasiya və avtomatik Embabel planlaşdırıcısının nəticəsi yoxlanılmayıb. İndeksdəki köhnə 0.3.x nümunələri cari icra təlimatı kimi istifadə olunmur.

2. Study Coach domenini fakt və məqsədlərə uyğunlaşdırın

Eyni məqsədi saxlayın: plan yalnız cari səlahiyyətli tələbə dəqiq təklifi təsdiqlədikdən sonra saxlanır. Aralıq obyektləri elə modelləşdirin ki, planlaşdırıcı nəyin mövcud olduğunu və hər əməliyyatın nə yarada bildiyini görə bilsin.

Domen faktıMənasıEtibarlı mənbə
StudyRequestQəbul edilmiş mövzu/müddət sorğusuAutentifikasiya olunmuş tətbiq giriş nöqtəsi
CandidateDraftTəklif edilmiş plan mətniHələ etibar edilməyən model çıxışı
ValidatedDraftMəhdud struktur yoxlamasını keçən variantTətbiq validator-u
ApprovalRecordİnsan bu dəqiq dəyişməz təklifi təsdiqləyibQorunan yoxlama endpoint-i və əsas saxlayıcı
SavedPlanQəbzi olan saxlanmış nəticəSəlahiyyət yoxlayan idempotent yazma servisi

Bu adlar Embabel-in verdiyi siniflər deyil, konseptual domen tipləridir. Tipin mövcudluğu vəziyyəti təsvir edir, mənşəyi və ya icazəni sübut etmir. Xüsusən ApprovalRecord-u model çıxışından deserializasiya edib insan qərarı saymayın.

3. Yoxlanmış annotasiya anlayışlarından istifadə edin

1.5.3 mənbə kodunda aşağıdakı API anlayışları var:

APIUyğunlaşdırmada rolu
com.embabel.agent.api.annotation.AgentSpring agent komponentini və onun təsvirini müəyyən edir
com.embabel.agent.api.annotation.ActionƏməliyyatı bildirir; metodun giriş/çıxış tipləri domen axınında iştirak edir
Action.pre və Action.postLazım olduqda açıq ilkin və son şərtlər
Action.canRerunƏməliyyatın yenidən işləyə biləcəyini göstərir; baxılan standart qiymət false-dur
com.embabel.agent.api.annotation.AchievesGoalTamamlanması məqsədə çatdıran əməliyyatı işarələyir; description məcburidir

Study Coach dizaynı CreateDraft, ValidateDraft və SaveApprovedPlan əməliyyatlarını təqdim edə bilər. SaveApprovedPlan yoxlanmış variantı və əsas saxlayıcıdan gələn təsdiq qeydini alır, mövcud qorunan saxlama servisini çağırır və SavedPlan qaytarır. Məqsədə çatdıran əməliyyat həmin son əməliyyat olar.

Bu, işlək annotasiya nümunəsi deyil, API dizayn uyğunlaşdırmasıdır. Ayrı inteqrasiya qurarkən əməliyyat parametrlərini, framework-ün verdiyi konteksti və planlaşdırıcı konfiqurasiyasını seçilmiş buraxılışa görə yoxlamaq lazımdır. Adların təsdiqlənməsi təklif edilən əməliyyat qrafının düzgün qeydiyyatdan keçdiyini və ya işlədiyini sübut etmir.

4. İnsan təsdiqini planlaşdırıcının əməliyyat dəstindən kənarda saxlayın

Bu konseptual asılılıq yoluna baxın:

Struktur
StudyRequest -> CreateDraft -> CandidateDraft
CandidateDraft -> ValidateDraft -> ValidatedDraft
Human review endpoint -> ApprovalRecord
ValidatedDraft + ApprovalRecord -> SaveApprovedPlan -> SavedPlan

İnsan-yoxlama endpoint-i ApprovalRecord-u xarici hadisə kimi verir. Təsdiq yaradan model aləti yoxdur. Təsdiq yoxdursa və ya vaxtı bitibsə, tətbiq gözləməli və ya girişi bağlı saxlamalıdır. Modeldən rahat əvəzedici fakt yaratmasını istəməməlidir.

Lazım olan bütün faktlar mövcud olsa belə saxlama əməliyyatı yazma sərhədində cari principal-ı, tenant-ı, icazəni, təklif kimliyini və vaxtını yenidən yoxlayır. Planlaşdırıcının ilkin şərtləri və Java tipləri həmin yoxlamanı əvəz etmir. Düzgün plan planlaşdırma ilə icra arasında icazəsini itirə bilər.

Əməliyyat təkrarlansa, proses davam etsə və ya qəbz itsə də eyni idempotentlik müqaviləsi qüvvədədir. canRerun=false davamlı exactly-once zəmanəti deyil. Planlaşdırıcının əməliyyat xərc metadatası da provayder hesablaşması üçün limit deyil. Müstəqil icra və xərc büdcələri tətbiq edin.

5. Planlaşdırıcı nəticəsi iddia etməzdən əvvəl testləri daşıyın

İcra sübutu ilk iki dərsin Java laboratoriyası olaraq qalır. Onu yenidən işlədin:

Terminal
mvn -o -B test

Onun 20 testi iş axını və adapter davranışını, o cümlədən olmayan təsdiqi, ləğv edilmiş icazəni, vaxtın bitməsini, iki cəhd həddini və naməlum saxlamanı yoxlayır. Embabel-in AgentPlatform-unu yükləmir, annotasiyalı əməliyyatları aşkar etmir və GOAP işlətmir.

Ayrı Embabel inteqrasiyasında əvvəl uyğun platformanı sabitləyib asılılıqların həllini yoxlayın. Sonra əməliyyat metodlarını saxta model cavabları ilə, əməliyyat/məqsəd qeydiyyatını, həqiqi planlaşdırılmış yolu, çatışmayan ilkin şərtləri, büdcənin bitməsini və davametməni yoxlayın. Hər hansı yazma servisi çağırılmadan əvvəl həqiqi təsdiq qeydi tələb edən inteqrasiya testi əlavə edin. Şəxsi domen obyektlərini loglamadan icra ardıcıllığını trace-lərdə yoxlayın.

Embabel-in versiyaya bağlı test bələdçisi saxta əməliyyat kontekstlərini və platforma səviyyəsində testləri sənədləşdirir. Saxta unit testin platformanın eyni yolu planlaşdırdığını və ya icazə verdiyini sübut etdiyini düşünmək əvəzinə sabitlənmiş buraxılışın API-lərini seçin.

6. Planlaşdırmanı tapşırığa fayda verdiyi yerdə seçin

Study Coach həmişə variant yaratma, yoxlama, təsdiq və saxlama ardıcıllığını izləyirsə, açıq orkestrasiya rahat nəzərdən keçirilir. Lazım olan domen faktlarını bir neçə icazəli yol yarada bilirsə, məqsədə yönəlmiş planlaşdırma faydalı ola bilər. Məsələn, əvvəlcədən təsdiqlənmiş materialdan istifadə etmək və ya yeni variant yaratmaq. Planlaşdırıcı yenə tətbiqin verdiyi əməliyyatlar və siyasətlər daxilində işləyir.

Dinamik yolları aktivləşdirməzdən əvvəl icazəli başlanğıc faktlarını, etibarlı fakt mənbələrini, məqsədin tamamlanma sübutunu, əməliyyat hədlərini və son vəziyyətləri müəyyən edin. Xarici təsdiqi və şəxsi məlumat girişini əsas səlahiyyət servislərinin nəzarətində saxlayın. Plan tapılmayanda, ilkin şərt dəyişəndə və ya təsirin nəticəsi naməlum qalanda nə olacağını yazın.

Framework əməliyyatların seçilmə üsulunu dəyişir. İcazə, idempotentlik, mənşə, məhdud icra və insan yoxlaması ehtiyacını aradan qaldırmır. Bu modul yoxlanmış Spring AI yolu və sərhədləri açıq göstərilən Embabel müqayisəsi ilə kursun iş axını mövzusunu tamamlayır, yoxlanılmamış versiyalararası inteqrasiya iddia etmir.

Mənbələr: