Putanja učenja za AI Agent — najvrednija za sačuvati u 2026. (preporuka za čuvanje 🔥)
Prvo, koje sposobnosti zaista zahteva pozicija programera AI aplikacija
Mnogi ljudi čim čuju za AI pomisle da moraju da uče duboko učenje, da moraju da treniraju modele i da moraju da razumeju matematičke izvode. To je najveće pogrešno shvatanje AI pozicija. Pozicije u oblasti AI dele se u tri kategorije i morate razjasniti kojoj kategoriji težite.
Prva kategorija obuhvata treniranje modela i istraživanje algoritama. Zahteva master ili doktorsku diplomu, čvrsto znanje dubokog učenja i iskustvo u objavljivanju radova. Ovaj pravac ima najviši plafon, ali i najviši prag — bez radova na vodećim konferencijama i iskustva u algoritamskim timovima velikih kompanija, nećete proći ni na nivou pregleda biografije.
Druga kategorija je AI infrastruktura (indeksiranje i postavljanje, raspodela resursa, optimizacija modela). Zahteva iskustvo u C++ ili CUDA programiranju i duboko razumevanje GPU arhitekture i izvođenja modela. Srž veština ovog pravca je sistemsko programiranje — radi se na tome da modeli rade brže i sa manje resursa.
Treća kategorija je razvoj AI aplikacija — integracija sposobnosti velikih modela u stvarne poslovne sisteme, izrada RAG baza znanja, Agent inteligentnih agenata i orkestracija AI radnih tokova. Ovaj pravac zahteva inženjerske sposobnosti pozadine (backend) plus sposobnost integracije velikih modela. Ne morate znati da trenirate modele, ali morate znati da dobro iskoristite njihove sposobnosti. Ovo je pravac kojim većina članova zajednice treba da krene.
Zašto preporučujem treću kategoriju? Zato što pozicije za razvoj AI aplikacija imaju najveći broj otvorenih radnih mesta, najbrži rast i najprijatniji prag za ljude sa inženjerskim iskustvom. Već znate da pišete Spring Boot, da koristite MySQL i Redis i da razumete arhitekturu mikroservisa — sve te sposobnosti su upotrebljive u razvoju AI aplikacija. Ne treba vam da učite novu oblast od nule, već da na postojeće inženjerske sposobnosti „izrastete" sloj za AI.
Model sposobnosti za poziciju programera AI aplikacija može se raščlaniti u četiri sloja.
Prvi sloj: osnovne inženjerske sposobnosti
Backend razvoj u Java/Spring Boot, korišćenje i štelovanje middleware komponenti poput MySQL/Redis/Kafka/ES, dizajn i praksa arhitekture mikroservisa, kontejnersko postavljanje pomoću Docker/K8s. Ovaj sloj većina članova već poseduje i samo ga treba produbiti u pojedinim segmentima (npr. u internals komponenti mikroservisa).
Uzmimo za primer projekte iz zajednice: PmHub je sistem mikroservisa izgrađen punim skupom Spring Cloud alata (Nacos, Gateway, Sentinel, OpenFeign, Seata); PaiCongming koristi Spring Boot 3.4 uz MySQL, Redis, Kafka i Elasticsearch; PaiFlow koristi virtuelne niti JDK 21 uz Docker Compose orkestraciju. Rad na ovim projektima upravo je proces učvršćivanja i produbljivanja osnovnih inženjerskih sposobnosti.
Drugi sloj: razumevanje osnovnih AI koncepata
Osnovni principi velikih modela (ne morate da izvodite formule, ali morate razumeti šta rade), mehanizam Tokena i prozora konteksta, principi Embeddinga i vektorskog pretraživanja, ključne tehnike Prompt inženjeringa, uzroci halucinacija i načini ublažavanja. Ovaj sloj mnogi članovi moraju da izgrade od nule, ali osobe sa inženjerskim iskustvom razumeju ove koncepte znatno brže od onih bez prethodnog znanja.
Na primer, modul za upravljanje budžetom Tokena u PaiCLI izračunava raspoložive Tokene na osnovu veličine prozora konteksta različitih modela (GLM-5.1 ima 200k, DeepSeek V4 ima 1M, Agnes 2.0 ima 1M) i automatski pokreće kompresiju konteksta kada se pređe prag. Kada razumete mehanizam Tokena i prozora konteksta, pregled tog koda otkriva da rešava inženjerski problem „kako održati dugačak razgovor a da ne raspline kontekst".
Treći sloj: ključne tehnologije razvoja AI aplikacija
Ovaj sloj je srž konkurentnosti za poziciju razvoja AI aplikacija i obuhvata pet tehničkih pravaca.
Kompletan RAG Pipeline. Raščlanjivanje dokumenata (Apache Tika obrađuje PDF/Word/Excel), sečenje teksta (površ od 512 znakova sa 100 znakova preklapanja radi očuvanja semantičke koherentnosti), vektorizacija (Embedding API Qwen-a generiše 2048-dimenzionalne vektore), hibridno pretraživanje (KNN vektorsko pretraživanje plus BM25 ključno pretraživanje, RRF fuziono sortiranje), generisanje velikim modelom (DeepSeek V4 odgovara na osnovu rezultata pretraživanja). Izvorni kod PaiCongminga sadrži implementaciju za svaku od ovih faza.
Osnovni obrasci Agent-a. ReAct rezonovanje (ciklus: razmišljanje → izvršavanje → posmatranje), Plan-and-Execute (prvo se planira DAG zadataka, pa se korak po korak izvršava), orkestracija više agenata (Orchestrator raspoređuje zadatke Worker-ima i Reviewer-u). PaiCLI pokriva sva tri obrasca — podrazumevani ReAct ciklus, DAG razlaganje zadataka aktivirano komandom /plan i višeagentna saradnja aktivirana komandom /team.
Orkestracija radnih tokova. DSL za definisanje radnih tokova, dekopling izvršilaca čvorova (patern strategije uz fabriku), prosledjivanje promenljivih među čvorovima (template engine renderuje {{node-id.output}}), uslovno rutiranje i paralelno izvršavanje. Java engine PaiFlow-a implementira 30 tipova čvorova, podržava DAG topološko sortiranje i Kahn algoritam za detekciju kružnih zavisnosti.
Tokovni (streaming) izlaz. SSE (Server-Sent Events) u realnom vremenu gura Tokene koje veliki model generiše znak po znak. PaiCongming koristi reaktivan tok Spring WebFlux-a za obradu SSE izlaza LLM-a, dok PaiFlow koristi SseEmitter za token-po-token slanje ka frontend-u.
Upravljanje višekružnim razgovorom. Kompresija konteksta (automatsko sažimanje ranijih poruka kada potrošnja Tokena priđe gornjoj granici prozora), Memory u slojevima (kratkoročno pamćenje razgovora plus dugoročno pamćenje činjenica plus pamćenje instrukcija na nivou projekta). Memory sistem PaiCLI-ja podeljen je u tri sloja: kratkoročno pamćenje razgovora, dugoročno pamćenje činjenica koje perzistira između sesija (u JSON datotekama) i instrukcije na nivou projekta iz PAI.md fajla.
Četvrti sloj: AI inženjerske sposobnosti
Opservabilnost AI aplikacija (praćenje lanca poziva Agent-a, nadzor izvršavanja alata) — PaiFlow integriše OpenTelemetry za distribuirano praćenje, a PaiCLI ima strukturisane revizijske logove (JSONL format zabeleži parametre, rezultat i trajanje svakog poziva alata).
Osiguranje kvaliteta AI aplikacija (detekcija halucinacija, validacija izlaza, evaluacija efekta) — ReAct Agent ciklus u PaiCongmingu ograničen je na najviše 4 kruga i 8 poziva alata, čime se sprečava beskonačno ciklusanje LLM-a; Agent budžet modul PaiCLI-ja detektuje 3 uzastopna istovetna poziva i automatski prekida.
Optimizacija performansi AI aplikacija (strategije indeksiranja za vektorsko pretraživanje, keširanje i obrada u grupama za pozive velikih modelova, optimizacija latencije tokovnog izlaza) — Embedding u PaiCongmingu radi u grupama (10 tekstova po grupi), potrošnja Tokena ide po modelu „rezervacija—obračun" i sprečava prekoračenje; PaiCLI paralelno izvršava pozive alata (najviše 4 istovremeno po grupi).
Ovaj sloj vas vodi od „umeća korišćenja" do „veštog korišćenja" i stiče se kroz praktične projekte i duboko promišljanje.
Drugo, strategija učenja: ne krećite od teorije, polazite od projekata
Prva reakcija mnogih koji prelaze u AI jeste da prvo pogledaju kurseve Andrew Ng-a, prouče rad o Transformer-u i shvate matematički izvod mehanizma pažnje.
Taj put je za većinu članova najmanje efikasan — potrošite dva meseca na teoriju i otkrijete da i dalje ne umete da napišete RAG sistem.
Trebalo bi obrnuto — prvo radite na projektu, pa onaj koncept na koji naiđete u projektu taj i naučite. Ovakav pristup vođen projektom, uz učenje po potrebi, za ljude sa inženjerskim iskustvom jeste najefikasniji.
Konkretna strategija izgleda ovako.
Korak prvi: izgradnja minimalnog znanja (jedna do dve nedelje)
Ne treba vam sistematsko učenje, samo da razjasnite tri stvari.
Šta veliki modeli mogu, a šta ne mogu — mogu da razumeju prirodni jezik, generišu tekst i kod, izvode rezonovanje i klasifikaciju, ali ne mogu da pristupaju podacima u realnom vremenu, ne mogu da garantuju faktičku tačnost i imaju ograničenje dužine konteksta.
Šta je RAG i koji problem rešava — Retrieval-Augmented Generation, pruža velikom modelu tačne informacije iz spoljne baze znanja i rešava problem zastarelih znanja i halucinacija kod velikih modelova.
Šta je Agent i koji problem rešava — daje velikom modelu „ruke i noge" kako bi mogao da poziva alate i izvršava radnje, rešavajući problem da veliki model može samo da generiše tekst, ali ne može da deluje na spoljne sisteme.
Svaki od ovih koncepta dovoljno je da pustite Claude da vam objasni za pola sata. Ne čitajte knjige, ne upisujte kurseve, pitajte AI direktno.
Korak drugi: uradite prvi projekat i steknite osećaj (tri do četiri nedelje)
Radite na PaiCongming RAG bazi znanja. Tehnološki stek PaiCongminga čine Spring Boot 3.4.2, MySQL, Redis, Kafka, Elasticsearch 8.10 i Spring WebFlux — za ljude sa iskustvom u Java backend-u, početak je brz.
Tokom rada redom ćete naići na sledeće tehničke probleme i rešavati ih jedan po jedan.
Kako raščlaniti dokument — Apache Tika 2.9.1 podržava PDF, Word, Excel, Markdown i druge formate; PaiCongming dodatno integriše LiteParse za OCR i podržava prepoznavanje kineskog i engleskog teksta na skeniranim PDF-ovima.
Kako dizajnirati strategiju sečenja — površ od 512 znakova, preklapanje od 100 znakova, minimalna površ 100 znakova. Zašto preklapanje? Zato što jedna potpuna rečenica može da se proteže kroz dve površi, a preklapanje osigurava da se semantika ne prekine.
Koji model koristiti za vektorizaciju — text-embedding-v4 od Qwen-a, 2048 dimenzija, kosinusna (cosine) mera rastojanja. Način poziva je grupni (10 tekstova po grupi), a vraćeni vektori se pohranjuju u dense_vector polje Elasticsearch-a.
Kako odabrati strategiju pretraživanja — čisto vektorsko pretraživanje propušta slučajeve potpunog podudaranja ključnih reči (npr. pretraga „Spring Boot 3.4.2" putem vektorskog pretraživanja može vratiti sadržaj o „seriji Spring Boot 3.x" i propustiti pasus sa tačnim brojem verzije). Zato PaiCongming koristi hibridno pretraživanje: prvo KNN vektorsko pretraživanje (povlači topK×30 kandidata), zatim BM25 za preuređivanje u drugoj fazi, uz fuziju skorova sa težinama 0.2 (KNN) i 1.0 (BM25).
Kako kontrolisati dozvole — izolacija dokumenata u višestrukim zakupcima (multi-tenant). PaiCongming u Elasticsearch upit dodaje filtere po korisničkom ID-u i oznaci organizacije, tako da svako pretraživanje vraća samo dokumente kojima trenutni korisnik ima pravo pristupa.
Svaki rešen problem donosi vam po jedno ključno AI znanje. Kada završite PaiCongming, vaše razumevanje RAG-a više neće biti na nivou koncepta, već na nivou prakse.
Korak treći: uradite drugi projekat i produbite razumevanje (tri do četiri nedelje)
Ovaj korak nudi dve opcije, u zavisnosti od vašeg ciljnog radnog mesta.
Ako vam je cilj pozicija razvoja AI aplikacija, radite na PaiFlow. PaiFlow je platforma za orkestraciju radnih tokova izgrađena na JDK 21, Spring Boot 3.5 i Spring AI 1.1; naučićete DAG topološko sortiranje, patern strategije za izvršioce čvorova, SSE tokovno slanje i konkurentni model virtuelnih niti JDK 21. Po završetku ćete moći da objasnite intervjueru „kako se projektuje engine za AI radne tokove".
Ako vam je cilj pravac mikroservisa (pretežno za iskusnije kandidate), radite na PmHub. PmHub je sistem za upravljanje projektima zasnovan na mikroservisima, na Spring Cloud 2021 i Spring Cloud Alibaba; obuhvata Nacos, Gateway, Sentinel, OpenFeign, Seata, RocketMQ i Flowable engine radnih tokova. Po završetku, kada vas intervjuer pita o dizajnu arhitekture mikroservisa, moći ćete da objasnite sve od principa centra za registraciju do implementacije distribuiranih transakcija.
| Dimenzija | PmHub | PaiFlow |
|---|---|---|
| Položaj | Mikroservisna platforma | Orkestracija AI radnih tokova |
| Tehnologija | Spring Cloud, Nacos, Sentinel | JDK 21, Spring Boot 3.5, Spring AI 1.1 |
| Fokus | Registracija/konfiguracija, ograničavanje saobraćaja | Vizuelni dizajn toka, AI čvorovi |
| Vodič | Dubina mikroservisa | Praktična AI orkestracija |
Korak četvrti: sistematski uredite svoj sistem znanja (jedna do dve nedelje)
Kada završite projekte, vratite se i sumirajte — koje ste AI koncepte naučili, kako je svaki od njih primenjen u projektu i kako ih intervjuer može ispitivati.
Tada se vratite teorijskim materijalima (npr. popularnim člancima o Transformer-u ili preglednim radovima o RAG-u) i otkrićete da ono što ranije niste razumeli sada shvatate na prvi pogled, jer imate oslonac u praktičnom iskustvu sa projekta. Na primer, ako ste u PaiCongmingu radili KNN vektorsko pretraživanje, pregled rada o principu HNSW indeksa savršeno će se poklopiti — ispostavlja se da HNSW u vektorskom prostoru gradi hijerarhijsku strukturu preskakivanja (skip list), gde svaki sloj radi približnu pretragu najbližih suseda i postepeno se spušta sve do konačnog rezultata.
Suština ove strategije u četiri koraka jeste: prvo radite, pa onda učite; učite dok radite; kada završite, popunite preostalo.
Ne morate prvo da postanete AI stručnjak da biste radili na AI projektima — dovoljno je da priđete projektu sa pitanjima i kroz rešavanje problema ćete prirodno postati praktičar razvoja AI aplikacija.
Treće, spisak teorijskih znanja koja treba da dopunite
Ne morate da učite duboko učenje i treniranje modela, ali sledeće osnove AI morate da razjasnite — intervjuer će ih ispitivati.
Osnovni mehanizmi velikih modelova (morate moći da ih objasnite svojim rečima)
- Mehanizam samop(pažnje) u Transformer-u — ne morate da izvodite formule, ali morate moći da objasnite šta radi (svaka reč računa korelaciju sa svim ostalim rečima i onda vrši ponderisani zbir, čime model razume kontekstne odnose). Visokofrekventno pitanje na intervjuu jeste „zašto je računska složenost samopažnje O(n²)" — zato što svaki Token mora da izračuna skor pažnje sa svim ostalim Tokenima u nizu, pa je to kvadrat dužine.
- KV Cache — zašto je prvi Token sporiji pri izvođenju velikog modelova, a kasniji brži (kešira prethodne rezultate izračunavanja i izbegava ponavljanje). To je i razlog zašto prozor konteksta velikih modelova ima gornju granicu — KV Cache zauzima memoriju grafikke kartice, pa što je prozor duži to je potrošnja memorije veća. U kodu PaiCLI-ja vidi se da se prozori konteksta razlikuju među modelima: GLM-5.1 ima 200k, DeepSeek V4 ima 1M.
- Token i Tokenizer — kako tekst postaje broj koje model može da obradi i zašto jedan kineski znak može odgovarati više Tokena. Ovaj koncept direktno utiče na obračun troškova pri izradi AI aplikacije — API se naplaćuje po Tokenu, a broj Tokena u kineskom tekstu obično je 1,5 do 2 puta veći od broja znakova.
- Prozor konteksta — zašto veliki modelovi imaju ograničenje dužine (kvadratni rast memorije i količine računanja), šta raditi kada se prekorači (odsecanje, kompresija, RAG kao spoljna baza znanja). PaiCLI ovaj problem rešava trodelno: kratak kontekst režim (do 50k), balansirani režim (50k do 100k) i dugački kontekst režim (preko 100k); u različitim režimima topK za RAG pretraživanje i strategija automatske kompresije su različiti.
- Temperature i strategija uzorkovanja — kako ovi parametri utiču na determinisanost i kreativnost izlaza modela. Pri Temperature 0 izlaz modela je najdeterminisaniji (pogodno za generisanje koda, strukturirani izlaz), a kada se Temperature poveća izlaz postaje slučajniji i kreativniji (pogodno za brainstorming, pisanje tekstova).
Proces treniranja modela (dovoljno je poznavati, ne treba duboko)
Pred-treniranje (učenje opštih jezičkih sposobnosti na ogromnoj količini teksta kroz „predviđanje sledeće reči"), SFT nadgledano fino podešavanje (učenje da odgovara na pitanja po uputstvu, pomoću ručno obeleženih parova uputstvo—odgovor), RLHF reinforsment učenje uz povratnu informaciju ljudi (učenje kakav odgovor ljudi preferiraju, vođeno modelom nagrade).
LoRA adaptacija niskog ranga — lagani metod finog podešavanja za prilagođavanje velikog modela određenoj oblasti pomoću malog broja parametara. Ne morate umeti da radite fino podešavanje, ali morate znati šta je to i kada je potrebno fino podešavanje umesto RAG-a.
Jednostavan kriterijum za procenu je sledeći: ako je vaš cilj da model odgovara na pitanja na osnovu specifičnih podataka (npr. pitanja o internoj bazi znanja preduzeća), koristite RAG; ako želite da model usvoji novi „način govora" ili „obrazac ponašanja" (npr. da model nauči da odgovara na pitanja korisničke podrške određenim tonom), tek tada treba fino podešavanje.
Embedding i vektorsko pretraživanje (morate duboko razumeti)
- Šta je Embedding — kako tekst postaje vektor fiksne dimenzionalnosti i zašto su vektori semantički sličnih tekstova blizu. PaiCongming koristi model text-embedding-v4 od Qwen-a koji daje 2048-dimenzionalne vektore. Cosine rastojanje između vektora za „Java backend razvoj" i „Spring Boot razvoj" u 2048-dimenzionalnom prostoru biće vrlo malo, dok će rastojanje između „Java backend razvoj" i „Python pajk (crawler)" biti znatno veće.
- Princip vektorskog pretraživanja — ANN algoritam približnih najbližih suseda, osnovna ideja HNSW indeksa (hijerarhijska struktura grafa za ubrzanje pretraživanja). Grubo prelaženje svih vektora radi tačnog nalaženja najbližih suseda pri velikoj količini podataka je presporo; HNSW u vektorskom prostoru gradi hijerarhijsku strukturu grafa koja radi približno pretraživanje, žrtvujući malo tačnosti za ubrzanje od nekoliko redova veličine.
- Zašto je potreban hibridni pretraživanje — čisto vektorsko pretraživanje propušta slučajeve potpunog podudaranja ključnih reči, pa se dodaje BM25 ključno pretraživanje kao komplement. Implementacija u PaiCongmingu prvo povlači veliki broj kandidata KNN-om (30 puta topK), zatim ih BM25 preuređuje, i konačno vrši RRF fuziju. Kada intervjuer pita „zašto ne samo vektorsko pretraživanje", možete odgovoriti sa konkretnim primerom iz PaiCongminga.
- RRF fuziono sortiranje — kako se rezultati više puteva pretraživanja spajaju u jedinstveni poredak. RRF formula je jednostavna: konačni skor svakog dokumenta jednak je zbiru recipročnih vrednosti njegovih rangova u svakom pojedinačnom nizu. Što je rang bolji i što se pojavljuje u više nizova, to je konačni skor veći.
Prompt inženjering (morate savladati do nivoa praktične primene)
- Razlika i tehnike dizajniranja System Prompt-a i User Prompt-a. Prompt arhitektura PaiCLI-ja složena je u slojevima — base.md (osnovne instrukcije) plus ličnost (calm.md) plus režim (agent.md/plan.md/team-*.md) plus strategija odobravanja plus kontekst izvršavanja plus memorija projekta plus opisi Skill-ova, ukupno sedam slojeva nadogradnje. Ovakav slojeviti dizajn, iznet na intervjuu, deluje vrlo ubedljivo.
- Few-shot — davanje primera u Prompt-u kako bi model razumeo u kom formatu želite izlaz. Na primer, ako želite da veliki model izlazi strukturirane podatke u JSON formatu, najpre mu date dva-tri primera i tačnost izlaza će se znatno povećati.
- Chain of Thought — vođenje modela kroz postepeno rezonovanje radi poboljšanja kvaliteta odgovora na složena pitanja. ReAct obrazac za Agent-a suštinski je vrsta Chain of Thought-a — model prvo razmišlja (Reasoning), pa deluje (Acting).
- Odbrana od Prompt injekcije — kako se zaštititi kada korisnik u unos može ugraditi zlonamerne instrukcije. PaiCLI koristi višeslojnu zaštitu: path guard (ograničava rad sa datotekama na direktorijum projekta), blacklist komandi (zabranjuje opasne komande poput sudo/rm -rf), HITL ljudsko odobravanje (visokorizične operacije zahtevaju potvrdu korisnika).
Halucinacije (morate moći da objasnite uzroke i ublažavanje)
- Zašto veliki modeli izmišljaju informacije — suština modela jeste probabilističko predviđanje, a ne pretraživanje činjenica; on generiše statistički najverovatniji sledeći token, a ne nužno najtačniji.
- Načini ublažavanja — RAG pruža činjeničnu osnovu (pristup u PaiCongmingu), Prompt ograničenje („odgovaraj samo na osnovu datih informacija, ako ne znaš reci da ne znaš"), postprocesna validacija (provera da li entiteti i podaci u izlazu imaju izvor), snižavanje Temperature radi smanjenja slučajnosti.
- Inženjerska sredstva — ReAct Agent ciklus u PaiCongmingu ograničen je na 4 kruga i 8 poziva alata, čime se sprečava da model stalno iterira na sopstvenoj halucinaciji; Agent budžet modul PaiCLI-ja detektuje 3 uzastopna istovetna poziva alata i automatski zaustavlja, izbegavajući „halucinaciju u beskonačnoj petlji".
Ova znanja ne morate da učite iz knjiga ili plaćenih kurseva. Pitajte Claude direktno da vam objasni jedno po jedno; za svaki koncept dovoljno je petnaestak do dvadeset minuta da ga razumete i umete svojim rečima da prenesete.
Četvrto, alati koje treba da pripremite
Alati za AI programiranje
Claude Code jeste vaš glavni alat za razvoj.
Claude Code u terminalu direktno iz opisa potrebe prirodnim jezikom može da vam generiše kod, menja datoteke i pokreće testove. Claude Code je naročito jak na nivou projekta u generisanju i razumevanju koda — može da pročita kontekst celog projekta, razume zavisnosti između modula i generiše kod koji radi iz prve. Dok radite na projektima, ako vas Claude Code stalno podržava, efikasnost će vam se povećati višestruko.
Codex jeste vaš pomoćni alat. Možete ga koristiti kada je potrebno brzo proveriti prototip ili napisati samostalnu skriptu. Claude Code i Codex su trenutno najjači alati za AI programiranje; kada pređete na njih, osetićete vidno poboljšanje efikasnosti.
PaiCLI sam po sebi jeste uzor za učenje. Napisan je u Java 17, Agent CLI proizvod koji se ravna sa Claude Code-om, sa 210 izvornih Java datoteka i 42 modula — od ReAct ciklusa, preko MCP protokola i Skill sistema, do automatizacije pregledača, sve obuhvaćeno. Dok koristite Claude Code za pisanje koda, istovremeno možete učiti iz izvornog koda PaiCLI-ja „kako se Agent CLI gradi od nule".
API velikih modelova / Token plan / Coding plan
Naplata embedding poziva se meri po ulaznim tokenima, a cene se menjaju — pre izbora modela uporedi aktuelne cene na zvaničnim stranicama (DeepSeek, Qwen).
Otvorite API nalog kod DeepSeek-a — DeepSeek API je najjeftiniji, a odlično radi sa kineskim jezikom. Dok radite na PaiCongmingu i drugim AI projektima trebaće vam pozivi API-ju velikih modelova, a DeepSeek ima najbolji odnos cene i kvaliteta.
Embedding API Qwen-a služi za vektorizaciju dokumenata; model text-embedding-v4 daje 2048-dimenzionalne vektore, sa dobrim efektima i niskom cenom. U izvornom kodu PaiCongminga podrazumevano se koristi upravo Embedding Qwen-a.
Ako želite da pokrenete Embedding lokalno i besplatno, možete instalirati Ollama i koristiti model nomic-embed-text. RAG modul PaiCLI-ja podrazumevano podržava lokalni Ollama Embedding.
Lokalno razvojno okruženje
Različiti projekti zahtevaju različite verzije JDK-a, konkretno: PaiCongming koristi JDK 17, PmHub koristi JDK 8, PaiCLI koristi JDK 17, PaiFlow koristi JDK 21, PaiAgent koristi JDK 21, JobClaw koristi JDK 21. Preporučujem da instalirate JDK 21, koji je unazad kompatibilan sa svim projektima osim PmHub-a.
Middleware komponente se podižu jednom komandom pomoću Docker Compose: MySQL 8.0, Redis 7.0, Elasticsearch 8.10 (PaiCongming zahteva instalaciju IK plugin-a za kinesku segmentaciju), Kafka (potreban za asinhronu obradu fajlova u PaiCongmingu), MinIO (skladište fajlova za PaiCongming i PaiFlow). U repozitorijumu PaiCongminga postready je infra.sh skripta za jednokratno pokretanje sve infrastrukture.
IDEA kao IDE već vam je dobro poznat. Frontend projekti (PaiAgent koristi React 18 i TypeScript, PaiFlow koristi React 18 i ReactFlow, JobClaw koristi Next.js 15) zahtevaju Node.js 18 ili noviji.
Vektorska baza podataka
| Baza | Jakost | Kada je izabrati |
|---|---|---|
| Elasticsearch | Full-text + vektorska hibridna pretraga, zrelo ekosistem | Kada je već u steku i treba full-text |
| Milvus | Specijalizovana vektorska baza, veliki obim | Kada je pretraga glavno opterećenje |
| Qdrant | Laka, efikasna vektorska baza | Manji projekti, jednostavna implementacija |
| pgvector | Ekstenzija PostgreSQL-a | Kada su podaci već u PostgreSQL-u |
PaiCongming koristi Elasticsearch 8.10 za vektorsko skladištenje i pretraživanje. ES 8.x izvorno podržava tip polja dense_vector i KNN pretraživanje, pa ne morate dodatno instalirati posebnu vektorsku bazu.
PaiCLI koristi SQLite za lokalno vektorsko skladištenje — za CLI alat SQLite je najlakši, bez spoljnih zavisnosti; indeksiranje koda i izračunavanje kosinusne sličnosti obavljaju se lokalno.
Ali treba da znate za postojanje drugih vektorskih baza na tržištu — Milvus (open-source distribuirana vektorska baza, podržava milijarde vektora), ChromaDB (najčešće korišćen u Python ekosistemu), Pinecone (SaaS usluga bez održavanja), Weaviate (podržava hibridno pretraživanje). Intervjuer vas možda pita zašto ste izabrali ES umesto posebne vektorske baze — prednost ES-a jeste što istovremeno podržava ključno i vektorsko pretraživanje, pa za hibridno pretraživanje ne trebaju dva sistema; posebne vektorske baze imaju bolje performanse u scenarijima isključivo vektorskog pretraživanja.
Peto, kako se pripremiti za pitanja iz AI oblasti na intervjuu
Nakon što završite projekte, treba da sistematski uredite pripremu pitanja iz AI oblasti za intervju. Tradicionalna backend pitanja (osnove Java-e, MySQL, Redis, Spring Boot, mikroservisi) postoje u seriji priprema za intervju i njih samo treba da ponovite i učvrstite.
Pitanja iz AI oblasti su nova i njih treba dodati; sva se nalaze u pripremnom materijalu za intervju uz projekte iz zajednice.
Prvi rang: morate tečno i jasno objasniti
Prvi rang — pet obaveznih tema:
- RAG — pipeline od izvora do odgovora
- Agent paradigma — ReAct ciklus, planiranje
- Tool calling — pozivi funkcija/alata
- MCP — protokol integracije alata
- Spring AI — Java okvir za velike modele
- Kompletan RAG tok — od raščlanjivanja dokumenata, preko sečenja, vektorizacije i pretraživanja do generisanja; tehnički izbor i strategija optimizacije u svakoj fazi. Visokofrekventna potpitanja: kako odabrati veličinu površi (prevelika — semantika se meša i pretraživanje je neprecizno; premala — gubi se kontekst), zašto hibridno pretraživanje (čisto vektorsko propušta ključne reči, čisto ključno propušta semantiku), šta raditi kada rezultati pretraživanja nisu relevantni za pitanje (Reranking drugo sortiranje, Query Rewriting preformulisanje upita). Izvorni kod PaiCongminga jeste vaš primarni materijal za odgovore.
- Osnovni obrasci Agent-a — šta je ReAct (naizmenično rezonovanje i delovanje, podrazumevani režim PaiCLI-ja), šta je Plan-and-Execute (Planner prvo generiše DAG zadataka, pa Worker izvršava korak po korak; komanda
/planu PaiCLI-ju), scenariji primene za oba (ReAct za jednostavne i direktne zadatke, Plan-and-Execute za složene zadatke koji zahtevaju višekorakovnu koordinaciju). - Mehanizam Tool Calling — kako veliki model zna koji alati postoje (Schema alata ubrizgava se u System Prompt u JSON formatu), kako odlučuje koji alat da pozove (model uparuje korisnikovu nameru sa opisom alata), kako se definiše Schema alata (naziv, opis, tipovi parametara i ograničenja). PaiCLI ugrađuje 11 alata (read_file, write_file, grep_code, execute_command itd.), a definicija Schema-e svakog alata nalazi se u ToolRegistry-ju.
- MCP protokol — šta je (Model Context Protocol, standardizovani protokol za priključivanje AI alata koji je predložio Anthropic), čime se razlikuje od direktnog Function Calling-a (MCP omogućava da kreator alata nezavisno razvija i postavlja alat; Agent putem standardnog protokola otkriva i poziva alate, bez hardcodovanja logike alata). PaiCLI podržava Stdio i Streamable HTTP kao dva načina MCP transporta; konfiguraciona datoteka se definiše u mcp.json. JobClaw takođe integriše MCP klijent i server — može i da poziva spoljne MCP alate i da izloži svoje podatke o radnim mestima putem MCP protokola.
- Spring AI — framework iz Java ekosistema za integraciju velikih modelova i kako se koristi za pozive modela i upravljanje Prompt-om. PaiAgent koristi Spring AI 1.0.0-M5 za apstrakciju objedinjenog LLM interfejsa, PaiFlow koristi Spring AI 1.1.2, JobClaw koristi Spring AI 2.0.0-M4. Osnovna vrednost Spring AI-a jeste objedinjeni interfejs nezavisan od proizvođača modela — prelazak sa DeepSeek-a na Qwen samo menja konfiguraciju, bez izmene koda.
Drugi rang: treba poznavati i moći objasniti pristup
Drugi rang — napredne teme:
Višeagentna saradnja — uloge, komunikacija, razrešavanje sukoba
Koreferentnost — praćenje konteksta i entiteta kroz dijalog
Orkestracija tokova — stanja, uslovne grane, povrati
Indeksna strategija — sekcije, pretraga, ponovno rangiranje
Saradnja više agenata — kako se više agenata deli rad, kako komuniciraju i u kojim scenarijima su potrebni. Režim
/teamu PaiCLI-ju ima tri uloge: Planner (razlaže zadatke), Worker (izvršava zadatke, podrazumevano 2 paralelna), Reviewer (proverava kvalitet rezultata). JobClaw koristi drugačiji obrazac: klasifikator namere prvo prepoznaje korisnikovu nameru, a zatim Router usmerava poruku na odgovarajućeg poslovnog Agent-a (Agent za prikupljanje identiteta, Agent za prikupljanje radnih mesta, Agent za preporuku radnih mesta).Razrešavanje koreferenci (Query Rewriting) — kako se u višekružnom razgovoru raščlanjuju korisnikove reference (npr. kada korisnik kaže „šta to znači" mora se razumeti u kontekstu prethodnih poruka).
Orkestracija radnih tokova — kako DSL definiše radni tok, kako se izvršioci čvorova dekopluju i kako se promenljive prosledjuju među čvorovima. Implementacija PaiFlow-a najvrednije je proučiti: 30 tipova čvorova definisano je NodeTypeEnum enumeracijom, svaki čvor ima odgovarajuću NodeExecutor implementaciju (patern strategije), a prosledjivanje promenljivih među čvorovima obavlja se kroz VariablePool i template engine (
{{node-id.output}}sintaksa). PaiAgent koristi LangGraph4J za orkestraciju grafa stanja i podržava uslovno rutiranje granama.Strategije indeksiranja za vektorsko pretraživanje — osnovni principi i scenariji primene HNSW-a i IVF-a. HNSW je pogodan za online scenarije osetljive na latenciju upita (izgradnja sporija ali upiti brži), IVF je pogodan za offline scenarije sa izuzetno velikom količinom podataka (izgradnja brža ali upit mora proći kroz više bucket-a).
Optimizacija izvođenja velikih modelova — osnovni pojmovi KV Cache-a, kvantizacije i obrade u grupama.
Treći rang: bonus poeni
Treći rang — dva pravca za dodatne poene:
AI vidljivost — transparentnost sistema i lociranje problema: lanac poziva, potrošnja tokena, latencija
Vibe Coding — saradnja prirodnim jezikom: jasni zahtevi, kontrola konteksta, kvalitet generisanog koda
Pitanja o Vibe Coding-u — kako povećati efikasnost uz AI, kako upravljati kontekstom, kako osigurati kvalitet koda koji generiše AI i kako tim uspostavlja pravila za AI saradnju. PaiCLI sam po sebi jeste uzorna implementacija Vibe Coding-a: razvoj uz podršku Claude Code-a, PAI.md definiše instrukcije na nivou projekta, Side-Git snapshot omogućava vraćanje na stariju verziju, HITL odobravanje osigurava bezbednost.
Opservabilnost AI aplikacija — kako pratiti lanac poziva Agent-a i koje metrice nadzirati za izvršavanje alata. Revizijski log sistem PaiCLI-ja (JSONL format) beleži za svaki poziv alata vremensku oznaku, naziv alata, parametre, rezultat, trajanje i način odobravanja, čime se puna putanja odlučivanja Agent-a može rekonstruisati. PaiFlow integriše OpenTelemetry za distribuirano praćenje.
Uz projekte PaiFlow, PaiCongming RAG, PaiCLI, JobClaw i PaiAgent dostupno je preko 1000 pitanja za AI intervju, koja pokrivaju sve gore navedene pravce; nakon završetka projekata koristite ih direktno za ponavljanje uz visoku efikasnost.
Šesto, poredak devet projekata i vaša najbolja kombinacija
Na osnovu gore navedenog modela sposobnosti i strategije učenja, pomoći ću vam da složite projekte po prioritetu.
Prvi rang: obavezni, upišite ih direktno u biografiju
PaiCLI terminalni Agent (prvo mesto)
PaiCLI je Agent CLI proizvod u Java-i koji se ravna sa Claude Code-om; od ReAct ciklusa sa jednim agentom u prvoj epizodi, postepeno se razvijao do TUI produktizacije u dvadeset trećoj epizodi — 210 izvornih Java datoteka, 42 modula, pokriva kompletan tehnički stek Agent razvoja.
Rad na PaiCLI-ju doneće vam sledeće ključne tehnologije.
Tri obrasca izvršavanja Agent-a. ReAct ciklus (razmišljanje → poziv alata → posmatranje rezultata → nastavak razmišljanja, sve dok se model sam ne zaustavi), Plan-and-Execute (Planner generiše DAG zadataka, topološkim sortiranjem određuje redosled izvršavanja, podržava paralelno izvršavanje zadataka istog nivoa bez međusobnih zavisnosti), orkestracija više agenata (Orchestrator raspoređuje zadatke Worker-ima i Reviewer-u, Worker paralelno izvršava, Reviewer radi proveru kvaliteta).
11 ugrađenih alata i kompletan Tool Calling lanac. Čitanje i pisanje datoteka (read_file/write_file), trostepena strategija pretraživanja koda (glob_files determinističko podudaranje → grep_code pretraga po regularnom izrazu → search_code vektorsko semantičko pretraživanje), izvršavanje komandi (execute_command, 60 sekundi timeout, 8KB ograničenje izlaza), Web pretraga i prikupljanje, čuvanje u memoriju, učitavanje Skill-ova. Najviše 4 alata paralelno po grupi.
Kompletna implementacija MCP protokola. Stdio transport (komunikacija preko standardnog ulaza i izlaza potprocesa) i Streamable HTTP transport. Strategija spajanja konfiguracionih datoteka — korisnički nivo ~/.paicli/mcp.json plus nivo projekta .paicli/mcp.json, pri čemu nivo projekta ima prednost i prepisuje. MCP servis ima 8 sekundi timeout za pokretanje; onaj koji nije spreman nastavlja da se učitava u pozadini i ne blokira glavni tok. Podržava zamenu promenljivih okruženja (${PROJECT_DIR}, ${HOME}) i otkrivanje resursa (automatski registruje list_resources/read_resource virtuelne alate).
Skill sistem (troslojno učitavanje). Ugrađeni Skill (unutar jar paketa), korisnički Skill (~/.paicli/skills/), Skill projekta (.paicli/skills/); onaj koji se učita kasnije ima prednost. Skill se definiše pomoću YAML Frontmatter-a i Markdown-a; u sistemski Prompt Agent-a ubacuje se indeks Skill-ova (najviše 20, ukupno 4KB), a nakon što model pozove alat load_skill, sadržaj Skill-a se ubacuje u sledeći krug razgovora.
Memory troslojno upravljanje. Kratkoročno pamćenje razgovora (tekuća sesija), dugoročno pamćenje činjenica (perzistira između sesija, u JSON datotekama, sa semantičkim dedupliciranjem), pamćenje instrukcija na nivou projekta (PAI.md, ubrizgava se u sistemski Prompt pri pokretanju). Kada potrošnja Tokena priđe gornjoj granici prozora, automatski se pokreće kompresija konteksta — rane razgovore sažima, a zadržava poslednja 3 kruga korisničkog unosa i granice poziva alata.
HITL ljudsko odobravanje. Alati se klasifikuju po nivou rizika: visok rizik (execute_command zahteva odobravanje), srednji rizik (write_file zahteva odobravanje), MCP alati (podrazumevano zahtevaju odobravanje plus reviziju). Korisnik može odobriti jednom, odobriti sve (po alatu ili opsegu servisa), odbiti, preskočiti ili izmeniti parametre pre izvršavanja. Revizijski log u JSONL formatu beleži svaki poziv alata.
Sistem bezbednosne zaštite. Path guard (ograničava rad sa datotekama na koreni direktorijum projekta, sprečava .. obilazak i proboj simboličkih veza), blacklist komandi (zabranjuje opasne komande poput sudo, rm -rf, mkfs, fork bomb, curl|sh), strukturirani revizijski log (dnevno rotiran, dozvola 600).
Side-Git snapshot. Pomoću JGit-a (čista Java, bez zavisnosti od sistemskog git-a) kreira snapshot pre i posle svakog Agent izvršavanja, skladišten pod ~/.paicli/snapshots/. Podržava /snapshot za pregled istorije i /restore za povratak na određenu verziju. Najviše 50 snapshot-a po projektu.
JobClaw višeagentna praksa (drugo mesto)
JobClaw je višeagentna aplikacija za traženje posla zasnovana na OpenClaw arhitekturi — nije običan crawler, većmultougaoni Agent runtime koji može da se proširi; poruke iz različitih IM kanala (WeChat/DingTalk/Feishu/WebSocket) prolaze kroz objedinjeni Agent kernel i rutiraju se na specijalizovane poslovne agente.
Tehnološki stek čine Java 21, Spring Boot 4.0, Spring Modulith 2.0, Spring AI 2.0 i LangGraph4J 1.6. Ovaj stek je noviji od PaiCLI-jevog i koristi najsavremenije verzije Spring-a.
Rad na JobClaw-u doneće vam sledeće ključne tehnologije.
Događajno vođena magistrala poruka. Svi IM kanali (WeChat/DingTalk/Feishu/WebSocket) priključuju se preko objedinjenog Channel interfejsa, poruke se objavljuju kroz Spring ApplicationEvent, a MsgRouter osluškuje događaje i obrađuje poruke. Kanal i Agent potpuno su dekoplovani — dodavanje novog kanala samo zahteva implementaciju Channel interfejsa, bez izmene bilo kog Agent koda.
Klasifikacija namere i rutiranje Agent-a. IntentClassifier mešovitom strategijom ključnih reči i LLM-a prepoznaje korisnikovu nameru, AgentRouter mapira rezultat na odgovarajućeg poslovnog Agent-a, a SessionAgentBinder održava vezu između korisnika i Agent-a po sesiji i podržava promenu konteksta.
LangGraph4J graf stanja radnog toka. Linija za prikupljanje radnih mesta sastoji se od četiri čvora Agent-a: TaskClassifyAgent (klasifikacija zadataka) → TaskGatherAgent (prikupljanje podataka) → DraftWasherAgent (čišćenje podataka) → DraftPublishAgent (objavljivanje i unos), uz kontrolu toka pomoću uslovnih grana. Stanje se među čvorovima prosledjuje kroz OcAgentState.
Spring Modulith modularnost. Anotacija @Modulith nameće granice modula; core, channels, providers, agents i plugins su nezavisni, a pozivi između modula idu preko apstrakcije interfejsa. Dodavanje novog Agent-a samo zahteva @Component implements BizAgent, a AgentRegistry ga automatski otkriva i registruje.
Apstrakcija višemodelnog Provider-a. Podržava četiri LLM provajdera: OpenAI, Zhipu, Anthropic i Alibaba Cloud; korisnik može podesiti preferirani model (format provider#modelName), a ModelProviders vrši runtime rasplitanje i promenu.
Troslojni model korisničkog profila. Soul (preferencije karaktera), Identity (veštine i iskustvo), Info (osnovni podaci), uskladišteni u radnom prostoru korisničkih datoteka; AI automatski izdvaja i ažurira. Kada Agent odgovara na pitanje, ubrizgava korisnički profil radi personalizovane preporuke.
PaiCongming RAG baza znanja (treće mesto)
RAG je najzreliji i najviše ispitivani pravac u razvoju AI aplikacija. PaiCongming je sistem za upravljanje RAG bazom znanja na nivou preduzeća; tehnički stek čine Spring Boot 3.4.2, MySQL 8.0, Redis 7.0, Kafka, Elasticsearch 8.10 i Spring WebFlux, a frontend su Vue 3, TypeScript i Naive UI.
U PaiCongmingu je važno da duboko savladate sledeće module.
Kompletan lanac raščlanjivanja dokumenata. Apache Tika 2.9.1 podržava PDF/Word/Excel/PPT/TXT/MD/JSON/XML/HTML; za skenirane PDF-ove integrisan je LiteParse za OCR (podržava chi_sim+eng prepoznavanje mešavine kineskog i engleskog, DPI 150, timeout 300 sekundi). Raščlanjivanje koristi stream obradu; kada potrošnja memorije pređe 80% praga, pokreće se GC.
Dizajn strategije sečenja. Podrazumevano sečenje na 512 znakova, preklapanje 100 znakova, minimum 100 znakova. Takođe podržava roditeljske površi (1MB), za hijerarhijsko pretraživanje — prvo se iz roditeljske površi locira okviran pasus, a zatim se iz podebljane (child) površi precizno pogadja. Na pitanje intervjuera „čemu služi preklapanje", odgovarate: „osigurava da pune rečenice koje prelaze granicu površi ne gube semantičku koherentnost".
Asinhroni procesni channel. Nakon što korisnik otpremi datoteku, API odmah vraća odgovor, a događaj otpremanja šalje se na Kafka topic file-processing-topic1; FileProcessingConsumer obrađuje redom: preuzimanje fajla sa MinIO → Tika stream raščlanjivanje → grupni poziv Embedding API-ja (10 po grupi) → ES grupno indeksiranje. Neuspele poruke idu u Dead Letter Topic. Status obrade fajla (processing/completed/failed) u realnom vremenu se šalje frontend-u.
Implementacija hibridnog pretraživanja. Prva faza KNN: cosine sličnost u ES-u povlači topK×30 kandidata. Druga faza BM25 Rescore: ključno podudaranje radi drugo sortiranje, fusion skorova sa težinama KNN 0.2 i BM25 1.0. U uslov upita dodaju se userId, orgTag i isPublic filteri za dozvole. Ako poziv Embedding-a ne uspe, automatski se degradira na čisto tekstualno BM25 pretraživanje.
ReAct Agent ciklus. Razgovor se gura putem WebSocket-a; ChatHandler gradi ReAct Prompt (sa definicijama alata), stream-uje poziv LLM-u, raščlanjuje vraćene tool_calls, izvršava alate (knowledge_search, generate_summary, submit_feedback), rezultat alata dodaje kao tool_message u listu poruka i nastavlja sa pozivom LLM-a. Najviše 4 kruga, 8 poziva alata.
Višestruki model dozvoli (multi-tenant). Trostepene dozvole: privatni dokumenti korisnika (podudaranje userId), dokumenti na nivou organizacije (hijerarhijsko podudaranje orgTag, podorganizacije nasledjuju znanja nadređene organizacije), javni dokumenti. Sve operacije pretraživanja u Elasticsearch upitu imaju ugrađene uslove filtriranja dozvola.
Upravljanje Token kvotama. Dnevna LLM kvota 300.000 Tokena, Embedding kvota 1.000.000 Tokena; 20 LLM zahteva u minuti, 60 Embedding grupa u minuti. Model „rezervacija—obračun": pre poziva API-ja prvo se prethodno odbija kvota, nakon uspešnog poziva obračunava se stvarna potrošnja, a pri neuspehu vraća se prethodno odbijena kvota. Redis služi za prebrojavanje zahteva.
Drugi rang: toplo preporučeni, ako vam dopušta vreme obavezno ih uradite
PaiFlow orkestracija radnih tokova (prvo mesto)
PaiFlow je platforma za orkestraciju AI Agent radnih tokova na nivou preduzeća, sa istim ciljem kao Dify/Coze/n8n; podržava vizuelno slaganje čvorova velikih modelova, čvorova alata i logike toka prevlačenjem-mišem.
Tehnički stek čine JDK 21, Spring Boot 3.5.4, Spring AI 1.1.2 i MyBatis-Plus 3.5.7 (Java engine), a frontend React 18, TypeScript, ReactFlow 11, Ant Design 5 i Zustand. Postoji i Python engine (FastAPI, LangChain, OpenTelemetry), čime se formira dvomotorna arhitektura.
Rad na PaiFlow-u doneće vam sledeće ključne tehnologije.
Dizajn engine-a radnih tokova. 30 tipova čvorova (NodeTypeEnum enumeracija: LLM, KNOWLEDGE_BASE, IF_ELSE, CODE, ITERATION, PLUGIN itd.). Svaki čvor ima odgovarajuću NodeExecutor implementaciju (patern strategije); NodeExecutorFactory pri ubrizgavanju konstruktora automatski uspostavlja mapiranje. Engine podržava dva režima: WorkflowEngine sekvencijalno izvršavanje (Kahn algoritam za topološko sortiranje, DFS za detekciju ciklusa) i ParallelWorkflowEngine paralelno izvršavanje (CompletableFuture plus virtuelne niti JDK 21).
Prosledjivanje promenljivih među čvorovima. VariablePool skladišti izlazne rezultate svakog čvora u ConcurrentHashMap. Niederžni čvorovi referenciraju rezultate uzvodnih čvorova pomoću {{node-id.output}} sintakse, a VariableTemplateRender radi zamenu promenljivih pre izvršavanja. Podržan pristup ugnježdenim putanjama (npr. data[0].voice_url za izdvajanje polja iz JSON niza).
SSE tokovno slanje. SseStreamCallback kroz SseEmitter šalje Token po Token ka frontend-u; tipovi poruka obuhvataju workflow_start, node_start, node_process, node_end i workflow_end. Asinhrona potrošnja poruka realizovana je pomoću ConcurrentLinkedQueue i virtuelnih niti.
Strategija ponovnog pokušaja. AbstractNodeExecutor (patern metoda šablona) objedinjeno obrađuje ponovljene pokušaje i timeout; podklase implementiraju samo executeNode metod. Tri strategije ponovnog pokušaja: fiksni interval (1 sekunda × broj), linearno rastući (1 sekunda × redni broj pokušaja), eksponencijalni backoff (1 sekunda × 2 na stepen (broj pokušaja minus jedan)).
Višemodelna LLM integracija. ModelServiceClient poziva različite modele kroz OpenAI-kompatibilni interfejs (OpenAI, DeepSeek, Qwen, Zhipu, iFLYTEK), a ChatClientFactory dinamički kreira klijente. Podržano je preuzimanje sadržaja rezonovanja modela (thinking output DeepSeek-a). TTS sinteza govora integriše interfejse Qwen-a i StepFun-a.
PmHub projekat mikroservisa (drugo mesto)
PmHub je sistem za inteligentno upravljanje projektima zasnovan na mikroservisima i LLM-u; nudi monolitnu verziju (pmhub-boot) i verziju sa mikroservisima, dva režima postavljanja za različite faze učenja.
Tehnički stek čine Spring Boot 2.7.18, Spring Cloud 2021.0.8 i Spring Cloud Alibaba 2021.0.5.0, a frontend Vue 2, Element UI i BPMN.js.
Verzija sa mikroservisima sadrži 8 servisa: Gateway mrežni prolaz (port 6880), Auth servis za autentifikaciju (port 6800), System sistemski servis (port 6801), Project servis za projekte (port 6806), Workflow servis za radne tokove (port 6808), Gen servis za generisanje koda (port 6802), Job servis za zakazane zadatke (port 6803), Monitor servis za nadzor (port 6888).
Rad na PmHub-u doneće vam duboko savladavanje ključnih komponenti mikroservisa.
Nacos centar za registraciju i konfiguraciju. Registracija i otkrivanje servisa, ažuriranje konfiguracije u toku rada, upravljanje konfiguracijom za više okruženja.
Spring Cloud Gateway mrežni prolaz. Objedinjeni ulaz, prosledjivanje rutiranja, CORS obrada, ograničavanje protoka i prekidač kolotura (integracija sa Sentinel).
Sentinel ograničavanje i prekidač kolotura. Pravila kontrole protoka, izolacija bazena niti, Fallback degradaciona obrada. Uz Nacos za perzistenciju pravila.
OpenFeign poziv među servisima. Deklarativni HTTP klijent, Fallback fabrika za toleranciju grešaka. UserFeignService i ProcessFeignService su dva ključna interfejsa za pozive između servisa.
Seata distribuirane transakcije. Garancija konzistentnosti podataka između servisa. Modul pmhub-base-seata enkapsulira integracionu konfiguraciju Seata-e.
RocketMQ asinhrone poruke. Modul pmhub-base-notice koristi RocketMQ 5.0 za asinhrono slanje obaveštenja o odobravanju radnih tokova, podsetnika za dodeljivanje zadataka i sl.
Flowable engine radnih tokova. Definicija BPMN procesa, upravljanje instancama procesa, lanac odobravanja zadataka. Frontend koristi BPMN.js za vizuelni dizajn procesa.
Intervjueri za iskusnije kandidate očekuju dubinu u mikroservisima. Po završetku PmHub-a, kada vas intervjuer pita o dizajnu arhitekture mikroservisa, moći ćete da objasnite od nivoa principa. Za iskusnije kandidate duboko razumevanje mikroservisa jeste krut zahtev.
PaiAgent (treće mesto)
PaiAgent je Vibe Coding verzija platforme za vizuelnu orkestraciju AI radnih tokova; po cilju je sličan sa PaiFlow, ali arhitektonska lakši.
Tehnički stek čine JDK 21, Spring Boot 3.4.1, Spring AI 1.0.0-M5, Spring AI Alibaba 1.0.0-M6.1 i LangGraph4J 1.8.0-beta3, a frontend React 18, @xyflow/react 12.9, Ant Design 6 i Zustand 5.
Posebnost PaiAgent-a jeste dvomotorna arhitektura — DAG engine (Kahn topološko sortiranje, unazad kompatibilan) i LangGraph4J engine (asinhroni graf stanja, podržava uslovne grane), uz dinamičko prebacivanje kroz EngineSelector ruter. Dodat je Skill sistem (YAML Frontmatter plus Markdown definicija, trostepeno postepeno učitavanje radi smanjenja potrošnje Tokena) i ReAct Agent čvor (najviše 5 iteracija, konfigurabilno do 20).
Više od 23 tipa čvorova pokriva glavne AI scenarije: LLM čvor (OpenAI/DeepSeek/Qwen/Zhipu/AIPing), čvor baze znanja (pretraga i upis), čvor memorije (čitanje i pisanje perzistentnih činjenica), Web čvor (pretraga i prikupljanje), multimedijalni čvor (generisanje slika/generisanje video/vizuelna analiza/TTS sinteza govora), čvor kontrole toka (uslovne grane/petlje).
Ako vam je vreme ograničeno i možete izabrati samo jedan između PaiFlow i PaiAgent: PaiFlow je više orijentisan na nivou preduzeća (dvomotorni Java+Python, Docker Compose postavljanje, OpenTelemetry praćenje), PaiAgent je lakši i napredniji (izvorna podrška za Spring AI Alibaba, LangGraph4J graf stanja, Skill sistem). Najbolji efekat jeste uraditi oba, čime se mogu uporediti različiti pristupi dizajnu arhitekture.
Treći rang: opcionalno, u zavisnosti od vremena i potreba
JishuPai (prvo mesto)
JishuPai je izvorni kod sajta paicoding.com, sistem tehničke zajednice sa razdvojenim frontendom i backendom; backend Spring Boot 2.7, MyBatis-Plus, MySQL, Redis, ElasticSearch 8.0 i RabbitMQ, a frontend Thymeleaf renderovanje na strani servera.
U pogledu AI dodato je 8 integracija velikih modelova (ChatGPT, Zhipu, iFLYTEK, DeepSeek, Qwen, Doubao, Zhipu Coding, ugrađeni Mock); izborom modela upravlja se objedinjeno putem Facade paterna (10-minutno keširanje), a Factory patern kreira instance servisa modela. Podržani su i streaming i sinhroni režim odgovora, uz mehanizam višemodelnog Fallback-a (automatski prelazak na rezervni model pri otkazu glavnog).
JishuPai je pogodan za članove koji žele da naprave „kompletnu aplikaciju sa AI funkcijama"; on pokazuje kako se AI sposobnosti elegantno integrišu u postojeći poslovni sistem, umesto da se AI projekat gradi od nule.
MYDB (drugo mesto)
MYDB je laka SQL baza podataka napisana u čistoj Java-i, ukupno 5011 linija koda, po uzoru na MySQL/PostgreSQL/SQLite.
Sedam osnovnih modula: menadžer transakcija (2PL protokol dvofaznog zaključavanja), menadžer verzija (MVCC kontrola konkurentnosti sa više verzija, podržava izolacione nivoe Read Committed i Repeatable Read), menadžer podataka (keš stranica, indeks stranica, log i checkpoint), menadžer tabela (Schema upravljanje tabelama i poljima), SQL parser (osnovno raščlanjivanje SQL sintakse), Socket server, interaktivni CLI klijent.
MYDB nema direktne veze sa AI pravcem, ali kada vas intervjuer pita „kako je MVCC implementiran u MySQL-u" ili „kakvi su principi ispod nivoa izolacije transakcija", reći „ja sam sopstvenim rukama napisao bazu podataka i implementirao MVCC" jeste izuzetno snažna poruka.
Ostalo je još nekoliko projekata, koje za sada nećemo posebno predstaviti.
| Projekat | RAG | Agent | Orkestracija | Mikroservisi | Baza podataka |
|---|---|---|---|---|---|
| PaiCongming RAG | ✓ | ||||
| PaiCLI | ✓ | ||||
| PaiFlow | ✓ | ||||
| PmHub | ✓ | ||||
| MYDB | ✓ |
Zaključak: ako krenete ovim pravcem mišljenja u učenju, AI Agent pravac potpuno ste u stanju da savladate. Ponuda za posao leti sa svih strana.
