Intervjuer te pita: „Otkud Agent zna koji alat da pozove?" Ako ti s usta padne „putem pravila rutiranja i poklapanja", onda si na ovoj lakoj tački propao.
Zašto?
Zato što Agent uopšte ne bira alat. Pravo izbora je u rukama LLM-a.
Danas za 3 minuta ćemo raščlaniti šta se krije iza ovog intervju pitanja.
Kad dobiješ ovakvo pitanje, ne žuri sa odgovorom. Prvo razmisli šta intervjuer zaista proverava.
On pita „kako Agent zna koji alat da pozove" — površinski pita o procesu, ali zapravo proverava tri stvari:
Prvo, da li ti je jasna granica odgovornosti između Agent-a i LLM-a; drugo, da li razumeš principe osnovnog Function Calling protokola; treće, da li imaš iskustvo iz stvarnih projekata i problema na koje si naišao.
Dobro, sad ti dajem odgovor za maksimalan broj poena, nauči ga napamet. Čitav proces ima sedam koraka.
Prvi korak, registracija alata. Pri pokretanju sistema, ToolRegistry sve dostupne alate registruje u jednu listu. Svaki alat mora da nosi tri stvari: naziv, opis i JSON Schema parametara. Na primer, alat za prognozu vremena — naziv mu je query-weather, opis glasi „upit o vremenu u zadatom gradu", a parametar je samo jedan — ime grada.
Drugi korak, gradnja zahteva. Korisnik pita „kakvo je vreme u Pekingu", a Agent istoriju razgovora i kompletnu listu definicija alata zajedno gura u tools polje LLM interfejsa. Pazi, to je kompletna definicija alata, ne samo nazivi.
Treći korak, odlučivanje LLM-a. Kad model dobije te informacije, sam čita opise, sam procenjuje — da li da pozove alat, koji, i koje parametre da popuni. Ovaj korak radi isključivo LLM, Agent ne učestvuje.
Četvrti korak, vraćanje tool_calls. LLM u odgovoru vraća niz tool_calls, u kome jasno piše: naziv alata query-weather, parametar city jednak „Peking". To je Function Calling protokol koji je OpenAI prvi definisao, a DeepSeek, GLM i Kimi su svi njime kompatibilni.
Peti korak, izvršenje poziva. Agent preuzima tool_calls, iz registra pronalazi odgovarajuću funkciju, direktno je poziva i dobija rezultat: „vedro, 28 ℃".
Šesti korak, dopuna istorije. Taj rezultat se umota u poruku čija je role tool, i ubacuje nazad u istoriju razgovora. Ovaj korak je ključan, jer LLM mora da vidi povratnu vrednost alata kako bi nastavio dalje.
Sedmi korak, generisanje odgovora. LLM čita rezultat alata, „vedro, 28 ℃" pretvara u naravni jezik i odgovara korisniku: „Danas je u Pekingu vedro, temperatura je 28 stepeni, zgodno za izlazak."
Time je jedna potpuna runda poziva alata završena.
Ako intervjuer nastavi da pita: „Šta ako LLM vrati naziv alata koji uopšte ne postoji?"
Standardan odgovor glasi — ToolRegistry pri izvršenju radi podrazumevanu proveru valjanosti, i ako ne nađe alat, vraća „nepoznat alat: xxx". Ta greška se umota u poruku alata i ubaci nazad u istoriju razgovora. Sad glavna stvar: u sledećoj rundi LLM će videti tu grešku, automatski se ispraviti, i pozvati ponovo sa drugim, ispravnim alatom.
Ako model uporno vraća nepostojeće nazive alata, onda to nije problem koji podrazumevana logika može da reši. Tad samouvereno reci intervjueru: „To znači da su sam opis alata ili system prompt dvosmisleni, pa treba optimizovati prompt." Čim ta reč izađe, intervjuer zna da si stvarno radio na projektima.
Na kraju, jedna izreka za sve vas, na intervjuu je izgovori direktno — Agent se bavi samo pakovanjem i registracijom, LLM donosi odluku o nameri; opis odlučuje o životu i smrti, podrazumevana zaštita gleda povratnu informaciju, a stalne greške su uvek krivica Prompt-a.
Da li si savladao ovo pitanje? Za još izvorno rastavljenih Agent intervju pitanja, lajkuj i prati
