Zaposleni Xiaomi-ja: Od sada, pored glavnog posla, svakog dana morate da radite inovacije vezane za AI. AI rezultati će se računati kao ključni proizvod (uz pitanja za Agent intervju)
Skoro sam video ovu otkrivaju zaposlenog Xiaomi-ja.
U njoj su četiri reči koje najviše zaslužuju pažnju — "ključni proizvod". Ne "ohrabrujemo pokušaje", ne "ako imate vremena možete da se igrate", već ključni proizvod — direktno se veže za performans.

To znači da AI sposobnost više nije dodatna tačka, već obavezna.
Po mom mišljenju, kada kompanija krene u novi pravac, za običnog zaposlenog to je najbolja prilika. Jer u starim stazama su pozicije već zauzete, red čeka ni po cenu staža. Novi pravci su drugačiji — svi kreću od nule, ko prvi napravi nešto, biva primećen.
"To se prelazi preko kamena" upravo znači da još uvek nema standardnog odgovora — ni sam šef ne zna kako će konačno ispasti. Tada se najviše plašite ne greške, već nečinjenja. Napravite nešto što se može demonstrirati, makar i grubo — to je već rezultat.
I da kažemo otvoreno — većina ljudi se ne zaglavi zato što je "AI pretežak, ne može da se nauči", već zato što ne zna odakle da počne.
Te dve stvari su potpuno različite.
"Ne može da se nauči" je problem sposobnosti, "ne zna odakle da počne" je problem informacionog jaza.
Pravac Agent inženjerstva ne zahteva od vas da trenirate modele, pišete CUDA, radite distribuirano zaključivanje. Zahteva da sposobnost velikog modela umetnete u upotrebljiv proizvod — da poziva alate, upravlja kontekstom, ocenjuje efekte i obrađuje izuzetke.
Pogledajte sve velike kompanije, najvrući proizvodi su ili desktop Agent ili terminal Agent.

Python/TypeScript/Go svi postoje: https://github.com/itwanger/PaiCLI-Python
Ako želite da se bavite istraživanjem u Agent pravcu i postignete rezultate, krenite odmah — na GitHub-u ima zaista mnogo takvih Agent proizvoda, nađite tačku potražnje, napravite jedan sa Codex-om ili Claude Code-om, teškoća nije velika.
Ako ste osoba koja veruje u trud, veruje u proces, veruje u korak-po-korak i veruje da možete da uzmete komad pita u eri AI-ja, onda sledeći hardcore intervju pažljivo pročitajte.

(Tekst je opsežan, garantujem da ćete naučiti mnogo. Vezite sigurnosni pojas, idemo.)
content
01. Koju arhitekturu koristi vaš Agent projekat?
Prvo pitanje stari Wang-a ide pravo na arhitekturu: "Koju arhitekturu koristi vaš Agent projekat? LangGraph ili sopstvenu? master + sub Agent ili workflow?"
"Terminalni Agent je sopstveni, zasnovan na Spring AI, dizajnirane su tri putanje izvršenja."

"ReAct režim je podrazumevana putanja, jedna petlja: LLM odlučuje → poziv alata → posmatranje rezultata → ponovno odlučivanje, zgodno za kratke zadatke realne interakcije."
"Plan-and-Execute režim se koristi za kompleksne zadatke — prvo planer generiše graf zadataka sa zavisnostima, zatim se izvršava po topološkom sortiranju, a pad pri izvršenju okida ponovno planiranje."
"Multi-Agent režim je saradnja tri uloge — planiranje, izvršenje, pregled — svako svoje."
02. Jedan Agent ili više Agenata? Kako se dele pod-Agenti?
"Podrazumevano jedan Agent, odnosno ReAct režim. Više Agenata se pokreće po potrebi — unos komande /team odmah prebacuje u Team režim."
Team režim ima četiri uloge:

- Scheduler: prima korisnički zadatak, prosljeđuje ga planeru, po dobijanju plana izvršenja po topološkom sortiranju šalje Worker-ima u serijama, a rezultat prosljeđuje recenzentu.
- Planner: razlaže zadatak u JSON plan sa zavisnostima, na primer "zadatak 2 zavisi od izlaza zadatka 1". Planner ne poziva alate, izbacuje samo plan.
- Worker: uloga koja stvarno radi — svaki Worker ima nezavisnu istoriju razgovora i kompletan skup alata. Iste grupe zadataka bez zavisnosti mogu paralelno, podrazumevano najviše 2 Workera istovremeno.
- Reviewer: kvalitetna kapija. Pregleda izlaz Workera, ako nije dovoljno dobar vraća nazad na ponovni rad, najviše 2 puta.
"Ključni dizajn je izolacija uloga — planner i reviewer ne diraju alate, samo donose prosuđivanje. Pravo izvršenja alata je koncentrisano kod Workera, izbegava se da reviewer sam menja kod i sam sebe pregleda."
03. Kako se razlikuje rutiranje prvog generisanja i višeturskog dopunjavanja?
Stari Wang stavlja kvačicu u svoju svesku i nastavlja: "Kako se razlikuje i implementira rutiranje prvog generisanja i višeturskog dopunjavanja?"
"Preko stanja sesije. Ključ je ID sesije, čuvan u Redis-u, ističe za 7 dana."

"Prvi zahtev nema ID sesije — sistem kreira novu sesiju, prolazi kroz pun tok prepoznavanja namere i raspoređivanja alata. Višetursko dopunjavanje nosi postojeći ID sesije, iz Redis-a se izvlači poslednjih 6 poruka istorije razgovora i ubacuje u kontekst, LLM na osnovu istorije razume trenutnu nameru."
"Razlikovanje prvog puta i dopunjavanja tehnički nije komplikovano, komplikovana je granularnost klasifikacije namere."
Pod istim ID-om sesije, druga rečenica korisnika može biti pod-pitanje ("konkretno kako je implementirano?"), dopuna ("usput, treba podrška i za format slike"), ili potpuno promenjena tema.
"Moj pristup je prepuštanje klasifikacije LLM-u. Istorija razgovora i trenutni unos zajedno se daju modelu, model sam procenjuje da li da pretraži novi sadržaj, da odgovori direktno na osnovu postojećeg konteksta ili da traži od korisnika da razjasni. U poređenju sa hard-kodiranim rutiranjem pravila, LLM procena namere daje veću tačnost i manje troškove održavanja."
04. Kako gradite šablone prompt-ova? Koje prakse imate u inženjerstvu konteksta?
"Prompt se montira slojevitim nadovezivanjem, ukupno 9 slojeva, u fiksnom redosledu."

"Prva četiri sloja su statična. Prvi sloj nosi identitet, kodeks ponašanja, definicije alata, sigurnosnu strategiju — tokom cele sesije nepromenjen. Drugi sloj je sloj karaktera, kontroliše ton i stil. Treći sloj je sloj režima, prema trenutnoj putanji izvršenja učitava različit skup instrukcija — ReAct, Plan, Team svaki svoj. Četvrti sloj je sloj odobrenja, definiše strategiju kolaboracije čovek-mašina, na primer da li pre poziva alata korisnik mora da potvrdi."
"Poslednjih pet slojeva su dinamični. Kontekst runtime-a (datum, vremenska zona), memorija projekta, indeks Skills — ova tri sloja se menjaju u svakoj turi. Osmi sloj je strategija upravljanja kontekstom, kaže modelu kada da komprimuje i kako. Deveti sloj su završne instrukcije."
"Ključni dizajn je da se statički sadržaj stavi na sami početak. Prva četiri sloja su tokom cele sesije nepromenjena, na početku prompt-a. Prompt Caching pogađa najduži zajednički prefiks — što je stabilan sadržaj bliže početku, to je veća stopa pogađanja keša, a trošak token-a se može smanjiti za red veličine."
Zašto to do list čini model fokusiranijim?
"Suština to do liste je strukturirano praćenje zadataka za model."

"LLM u dugom razgovoru lako upada u dva problema: prvo, zaboravi šta je ranije radio, pa ponavlja operacije; drugo, preskoči neki korak i ode pravo na kraj. to do list eksplicitno navodi 'završene' i 'neizvršene' korake, pa model u svakoj turi vidi trenutni napredak i prirodno zna šta sledeće."
"Kao što mi u razvoju koristimo kanban-tablu — zadaci su na njoj, završiš jedan, precrtan je. I modelu treba takva eksterna memorija."
05. Da li ste radili prepisivanje upita? Šta je višedimenzionalno prepisivanje upita?
"Radili smo. Cilj prepisivanja upita jeste povećanje stope priziva pretrage — originalno pitanje korisnika često nije najbolji upit za pretragu."
Višedimenzionalno prepisivanje obuhvata tri pravca:

"Prvi pravac je sinonimno proširenje. 'Agent performanse' se proširuje na 'Agent latencija', 'Agent propusnost', 'Agent vreme odziva' — različite formulacije pogađaju više dokumenata."
"Drugo je razlaganje namere. Kompleksno pitanje se razbija na više prostih. 'Uporedi performanse i cenu A i B' razbija se na dva upita koji se pretražuju posebno — tačnost priziva je mnogo veća nego kod jednog mešovitog upita."
"Treće je generalizacija nadređenog-podređenog. Ime specifičnog proizvoda se generalizuje do kategorije. 'Claude Code' se generalizuje na 'terminalni Agent' — može prizvati i sadržaj horizontalnog poređenja sličnih proizvoda."
"Prepisani upiti se paralelno pretražuju, rezultati se dedupliraju po ID-u dokumenta i uzima se top-K."
Kako dizajnirati kad korisnik treba da dopuni informacije?
"Preko detekcije slotova (Slot Detection)."

"Svaka namera ima predefinisani skup potrebnih slotova. Na primer za nameru 'pomozi mi da nađem bag', potrebni slotovi su 'opis greške' i 'koraci reprodukcije'. Ako korisnik kaže samo 'pomozi mi da nađem bag', nedostaju dva slota — Agent generiše jedno pitanje razjašnjenja: 'Možeš li da opišeš konkretnu poruku greške i korake reprodukcije?'"
"Nakon što korisnik odgovori, popunjavaju se slotovi i sa kompletnim informacijama ponovo se konstruiše upit i pretražuje. Ova interakcija mora biti prirodna, ne sme se pitati previše odjednom — u svakoj turi najviše jedan do dva slota, inače korisnik ima utisak da popunjava formular."
06. Šta je paralelizovano prepoznavanje namere? Zašto paralelizovati?
Stari Wang se nagnuo napred i nastavio: "Koliko poznaješ paralelizovano prepoznavanje namere?"
"Tradicionalno prepoznavanje namere je serijski pipeline: prvo klasifikacija namere, zatim ekstrakcija entiteta, zatim procena domena, zatim procena hitnosti. Svaki korak čeka prethodni, kašnjenje se složi."
"Ali između ovih dimenzija zapravo nema zavisnosti. Klasifikacija namere ne mora da čeka ekstrakciju entiteta, procena domena ne zavisi od hitnosti. Pošto su nezavisni, treba ih paralelno."

"Implementacija: svaka dimenzija klasifikacije se definiše kao nezavisan klasifikator — može biti laki model ili jedan LLM poziv. Preko thread pool-a ili CompletableFuture-a paralelno se izvršavaju svi klasifikatori, a po povratku svih u sloju rutiranja se objedinjavaju rezultati i na osnovu kombinacije uslova bira putanja obrade."
"Kašnjenje od zbira svih klasifikatora prelazi u kašnjenje najsporijeg. Pretpostavimo 5 dimenzija, svaka oko 200ms — serijski 1 sekund, paralelno i dalje 200ms. Za korisničko iskustvo, razlika je petostruka."
07. Kako dizajnirate sistem Skills za Agent-a?
"Ključni princip je postupno otkrivanje (Progressive Disclosure), trostruko učitavanje."
"Prvi sloj je indeks. Samo ime Skill-a i opis u jednoj rečenici ulaze u system prompt, ograničeno na 4KB, najviše 20 Skill-ova. Ovaj sloj stalno stoji u kontekstu, cena je niska."
"Drugi sloj je telo. LLM nakon što vidi indeks, proceni koji Skill treba trenutni zadatak, pozove load_skill alat da učita kompletne instrukcije Skill-a — pojedinačno telo Skill-a do 5KB."
"Treći sloj su referentni dokumenti. Deo Skill-ova ima direktorijum referentnih dokumenata, učitava se na zahtev samo kada instrukcije Skill-a to izričito traže."

"Učitano telo Skill-a stoji u LRU baferu, istovremeno najviše 3 Skill-a, višak se izbacuje po najduže-ne-korišćenom."
"Zašto ne učitati sve odjednom — što je system prompt duži, to je stopa pogađanja Prompt Caching-a niža. Većina razgovora koristi jedan do dva Skill-a, potpuno učitavanje znači da korisnik plaća za sadržaj koji ne koristi."
"Izvor Skill-a ima tri nivoa prioriteta: ugrađeni, korisnički nivo, projektni nivo — pokriva od niskog ka visokom. Skill na nivou projekta može prepisati ponašanje ugrađenog istoimenog Skill-a, bez izmene izvornog koda."
08. Kako ocenjujete efekat sistema Agent?
"Gledamo u tri sloja pokazatelja."
"Sloj rezultata — stopa uspeha zadatka. Preduslov je da okruženje za ocenu može da se resetuje, svaki put kreće od istog stanja, nuspojave prethodnog pokretanja ne smeju zagaditi sledeće."
"Sloj procesa — efikasnost. Koliko koraka je utrošeno za isti zadatak, koliko token-a potrošeno, koja je stopa uspeha poziva alata. Dva Agent-a oba završe zadatak — jedan u 3 koraka, drugi u 12 — to je razlika u nivou."

"Modul za pretragu koda PaiCLI-ja ima Golden Set — 123 deterministička test slučaja. Svaki slučaj definiše ulazni query i očekivani brojevi linija fajla koje treba pogođene — jedno pokretanje i zna se da li je lanac pretrage nazadovao."
Kako raditi kontrolu bez povratne informacije korisnika?
"Dva sredstva u kombinaciji."
"Prvo, model kao sudija (LLM-as-Judge). Definišu se kriterijumi ocene, model po standardima boduje izlaz. Prednost su niski troškovi i velika brzina, pokriva velike uzorke."
"Drugo, ljudska kalibracija. Periodično se nasumično izvuze uzorak onoga što je model-sudija već ocenio, radi ljudskog pregleda, pa se izračuna stopa slaganja modela-sudije i ljudskog prosuđivanja. Ako je stopa ispod praga, to znači da kriterijumi ocene treba da se prilagode, ili da je model-sudija sam driftovao."
"Ova dva se ne mogu razdvojiti. Samo sa modelom-sudijom, sistem ocene sam driftuje a da to i ne primetite."
09. Kako locirate Badcase do konkretnog Agent koraka?
"Preko rekonstrukcije trace lanca."
"Svaki čvor ima snimak stanja: ulaz, izlaz, uspeh ili neuspeh, vreme trajanja, poruka greške. Od korisničkog unosa do konačnog rezultata — svaki korak je tragljiv."

"Nakon dobijanja trace-a radi se atribucija oznakama. Svaki Badcase dobija jednu glavnu oznaku: priziv nije vraćen, greška u pozivu alata, prekid lanca rezonovanja, povreda formata, prelivanje konteksta. Oznake se ne navode više — jedan Badcase, jedan glavni uzrok."
"Kada se oznake nakupe, jasno se vidi u kojoj dimenziji je stopa neuspeha najveća — tu se usmerava sledeća runda optimizacije."
Kako proceniti nad kojim Agent-om raditi SFT?
"Gleda se distribucija oznaka, zatim radi razdvajanje podataka."

- Činjenične greške (model je pogrešno razumeo, rezonovanje prekinuto) → ispravi u tačnu trajektoriju, ide u SFT podatke za treniranje
- Problemi kvaliteta (nije greška, ali nije dovoljno dobro) → formiraj par preferenci, treniraj Reward Model
- Problemi alata ili okruženja (API timeout, neuspeh parsiranja formata) → popravlja se infrastruktura, ne model
"Razdvajanje je ključno. Badcase se ne može gomilati u skup za treniranje — različiti tipovi zahtevaju potpuno različite obrade."
10. Kako rešiti "popraviš jednu klasu, pokvariš drugu" pri tuniranju Prompt-a?
"Koren ovog problema je implicitna sprega između prompt-ova. Promeniš jednu instrukciju, a ponašanje modela prema svim zadacima se može promeniti, jer deluje globalno."

"Prvi korak — skup za ocenu prvi. Pre nego što krenete da menjate prompt, prikupite tipične slučajeve koje pokrivaju postojeće sposobnosti u skup za ocenu. Pre izmene pokrenite jednom, posle izmene pokrenite jednom, uporedite rezultate."
"Drugi korak — slojevita izolacija. Prompt se razbija u nezavisne fajlove po pitanjima — system sloj, sloj režima, sloj Skill-a, svako svoje. Izmena instrukcija u sloju Skill-a ne bi trebalo da utiče na ponašanje system sloja."
"Treći korak — izmena u jednoj tački. Menja se samo jedno mesto, pokrene ocena, potvrdi da nema nazadovanja, pa tek onda sledeća izmena. Ako menjate dva mesta istovremeno, ne znate koje je pokvarilo stvar."
"Četvrti korak — održavanje baze slučajeva regresije. Svaki put kad se desi 'popravio A, pokvario B', B se dodaje u skup za regresiju."
"Jednostavno rečeno, isto je kao jedinično testiranje i regresiono testiranje u softverskom inženjerstvu. Prompt je takođe kod — kad se menja, moraju se pokrenuti testovi."
11. Dizajnirajte alat za editovanje videa sa TUI interfejsom?
Stari Wang zatvodi klapnu naliv-pera, promeni pravac: "Evo jednog scenario pitanja. Ako bi trebalo da razviješ interaktivni alat za editovanje videa sa TUI interfejsom, MVP verzija, kako bi ga dizajnirao?"
"Tri sloja."
"Prvi sloj je TUI sloj interakcije, zadužen za renderovanje terminalnog interfejsa i korisnički unos. Vremenska linija se vizualizuje znakovima, svaki segment drugom bojom, trenutna pozicija selekcije se ističe kursorom. Operacije se pokreću isključivo prečicama — strelice pomeraju kursor, s seče, d briše, razmak pregleda. Pregled može da koristi iTerm2 inline image protokol ili Sixel protokol za renderovanje frejmova videa u terminalu."

"Drugi sloj je sloj orkestracije, ključna poslovna logika. Parsiranje komandi prevodi tastaturni unos u operacije editovanja. Upravljanje stanjem koristi patern komande (Command Pattern) za implementaciju undo/redo steka — svaka operacija se zatvara kao reverzibilan objekat komande. Model vremenske linije održava listu segmenata, oznake prelaza i trenutnu poziciju reprodukcije."
"Treći sloj je sloj izvršenja, u suštini omotač oko FFmpeg-a. Sečenje id preko -ss i -to parametara, spajanje preko concat demuxer-a, prelazi preko xfade filtera, izvoz u zasebnoj niti da se ne blokira TUI interakcija."
"MVP radi samo četiri stvari: uvoz videa, sečenje segmenata, prilagođavanje redosleda, izvoz finalnog proizvoda. Prelazi i efekti se ostavljaju za kasnije iteracije."
12. Koja je implementacija Self-Attention-a?
"Izračunavanje Self-Attention-a je u pet koraka."

"Svaki token ulaza prvo prolazi kroz Embedding i postaje d-dimenzionalni vektor, a zatim se množi sa tri matrice težina W_Q, W_K, W_V, generišući tri nova vektora: Query (upitni vektor), Key (vektor ključa), Value (vektor vrednosti)."
"Zatim se Q dotira sa svim K, podeli sa √d_k radi skaliranja — dobijaju se attention skorovi. Skaliranje sprečava da dot produkt postane prevelik i dovede do nestanka gradijenta u softmax-u. Posle softmax normalizacije attention skorova u distribuciju verovatnoća, tom distribucijom se težinski sumiraju svi V i dobija se izlazni vektor trenutnog token-a."
Zašto se del na Q, K, V vektore?
"Ako jedan te isti vektor istovremeno igra tri uloge — 'šta tražim', 'šta mogu da ponudim' i 'šta zaista sadržim' — model može da računa samo samo-sličnost, izrazajna moć je veoma ograničena."

"Podelom na tri, svako svoje: Q je odgovoran za 'koje informacije tražim', K za 'koje upite mogu da podudarim', V za 'šta se zaista prenosi kad se podudari'. Tri nezavisne matrice težina daju modelu 3 puta više parametara koje može da uči, fleksibilnost paterna pažnje drastično raste."
Da je isti token na različitim pozicijama vektor isti?
"Nije isti. Jer postoji poziciono kodiranje (Positional Encoding)."
"Na primer RoPE (rotaciono poziciono kodiranje) — na osnovu pozicije tokena na Q i K vektore se primenjuje rotaciona transformacija, ugao rotacije proporcionalan poziciji. Ista reč 'i' na petoj poziciji i na pedesetoj poziciji posle RoPE rotacije ima različit smer vektora."

"Bez pozicionog kodiranja Transformer je samo model sa vrećom reči — 'ja sam ga udario' i 'on je mene udario' za njega su ista stvar, a to ne može."
Kako PaiCLI ući u biografiju?
Naziv projekta: PaiCLI — terminalni AI Agent komandna linija
Kratak opis: Java terminalni Agent koji se može uporediti sa Claude Code-om, podržava tri putanje izvršenja — ReAct, Plan-and-Execute, Multi-Agent Team — i ima sposobnosti višeturasnog razgovora, pretrage koda, poziva alata, automatskog popravka.
Tehnički stek: Java 21 + Spring AI + LangGraph4j + Elasticsearch + MCP protokol

Ključne odgovornosti:
- Dizajniran i implementiran sistem multi-modalne arhitekture Agenta — tri putanje izvršenja (ReAct brzi odziv, Plan-and-Execute razlaganje kompleksnih zadataka, Multi-Agent Team kolaboracija više uloga), uz automatsko rutiranje na osnovu složenosti zadatka.
- Izgrađen 9-slojni Prompt assembler, statični slojevi (definicija uloge, sigurnosna specifikacija) stavljeni napred kao fiksni prefiks koji pogađa Prompt Caching, dinamični slojevi (istorija razgovora, rezultati alata) se skraćuju po token budžetu — trošak token-a po zahtevu smanjen za oko 35%.
- Implementiran modul višedimenzionalnog prepisivanja upita, integrisane tri strategije — proširenje sinonimima, razlaganje namere, generalizacija nadređenog-podređenog. Prepisani upiti se paralelno pretražuju i dedupliraju po ID-u dokumenta — stopa priziva pretrage porasla za oko 20%.
- Dizajniran sistem postupnog učitavanja Skills, trostepena struktura indeks → telo → referentni dokument sa učitavanjem na zahtev, LRU bafer kontroliše broj aktivnih Skill-ova (najviše 3), izbegava se prelivanje konteksta.
- Izgrađen troslojni sistem ocene efekata (sloj rezultata/sloj procesa/sloj stabilnosti), održava Golden Set od 123 deterministička test slučaja, u kombinaciji sa LLM-as-Judge za masovno bodovanje i ljudskom kalibracijom za kontrolu uzorka — osigurava da efekat ne nazaduje tokom iteracija.
ending
Ranije smo posao tražili napamet učenjem standardnih lekcija — konkurencija, middleware, paterni dizajna. Sada su to izbor arhitekture, inženjerstvo konteksta, ocena efekata, lociranje Badcase-a.
[Tehnologija se menja, ali logika ispod ne — ko može da napravi stvari, da ih stabilizuje, da ih dovede do produkcionog nivoa, taj je retkost.]
AI upravo prepisuje mapu sposobnosti inženjera — taj proces tek počinje, prilika je daleko više no što mislite.
Držite se, braćo i sestre.
Vidimo se u sledećem izdanju.
