Car Wu podiže glas: "Nisi ni igrao sa Skills, a usuđuješ se reći da vladaš AI-om za pomoć pri programiranju?" Dongfang Shuo uzvraća: "Pa to je samo Prompt sa progresivnim otkrivanjem, ništa naročito."
Radnja se dešava 141. godine pre nove ere, a u dvorani Weiyang upravo se odvija jedan neobičan intervju.
Car Wu od Hana, Liu Che, sedi na prestolu, u ruci mu svitak od bambusa, obrve namrštenih: "Dongfang Shuo, čuo sam da vladaš AI-om za pomoć pri programiranju i da možeš da rešiš svaku zamisao sveta?"
Dongfang Shuo se pokloni i odgovori: "Vaše veličanstvo, ne bih smeo reći da vladaam, ali imam izvesnih saznanja."
"O? Onda mi reci, šta su Skills? Čime se razlikuju od običnog Prompt-a?"
Dongfang Shuo nakratko razmisli: "Vaše veličanstvo, Skills su unapred pripremljeni vodič najbolje prakse (fajl SKILL.md), koji sadrži detaljne korake i napomene za određeni zadatak. Putem mehanizma progresivnog otkrivanja čine LLM čvor pametnijim i moćnijim."

PS: ovih dana čitam Wang Shuoov "U početku", pa mi pade na pamet ovakva šala. Cilj je, naravno, da vam čitanje učini zabavnijim, a i ubuduće ću na ovom okviru nastaviti da budem kreativan, pa pored suštine bude i življe, veselije.
Izložiću deo Dongfang Shuoovih tadašnjih beležaka sa intervjua, da osetite atmosferu.

A to je tek vrh ledenog brega.
Ali se iz tog fragmenta naslućuje celina. Vratimo se u 2026: pojmovi i alati vezani za veštačku inteligenciju, kao što su Skills, MCP, Prompt, RAG, OpenClaw i tako dalje, ne samo da su vruće teme svakodnevnih razgovora, već su i obavezno gradivo na intervjuima za posao.
Današnji tekst ovaj skup vrućih pojmova sistematski razlaže — sačuvajte ga i čitajte polako, i videćete da se onaj samouvereni duhoviti momak vraća.
Tekst je malo duži i gušći, vežite pojaseve, krećemo.
01. Šta je AI Agent?
Tačka provere: pojam Agent-a
Referentni odgovor:
Običan poziv LLM-a jeste pitanje i odgovor: date mu pitanje, on vam da odgovor i gotovo.

AI Agent omogućava velikom modelu da deluje samostalno: on ne samo da odgovara na pitanja, već može da planira zadatke, koristi alate i razmišlja u petlji, dok ne postigne cilj.
Tehnički, Agent u odnosu na običan LLM ima nekoliko ključnih sposobnosti:
Prvo, poziv alata. Agent može da koristi spoljašnje alate poput pretraživača, baza podataka i API-ja. LLM sam po sevi zna samo da generiše tekst, ali okvir Agent-a raščlanjuje izlaz LLM-a, prepoznaje poziv nekog alata, zaista ga poziva i rezultat vraća u LLM. To je Function Calling.
Drugo, sposobnost planiranja. Pred složen zadatak, Agent ga rastavi na više koraka i izvršava ih jedan po jedan. Na primer, za generisanje podcasta on planira: prvo razume temu koju je korisnik dao → generiše skriptu dijaloga → poziva TTS za sintezu glasa → spaja audio. Ovaj proces ne može da se obavi jednim pozivom LLM-a; potrebno je više krugova interakcije i odlučivanja.

Treće, memorija. Običan poziv LLM-a bez stanja je — šta je rečeno u prethodnom krugu, u sledećem je zaboravljeno (osim ako celu istoriju ne ugurate u prompt). Agent može da ima kratkoročnu memoriju (kontekst trenutnog zadatka) i dugoročnu memoriju (akumulirano znanje kroz zadatke), što mu omogućava da obrađuje složenije scenarije.
Četvrto, autonomna petlja. Agent se ne završava jednim pozivom — na osnovu rezultata izvršenja odlučuje šta dalje. Ako poziv alata padne, možda pokuša na drugi način; ako primeti da nedostaju informacije, možda potraži dodatne izvore. Ta petlja "opaziti — odlučiti — delovati" jeste ključna odlika Agent-a.
Da se vratimo PaiFlow-u: naš engine za tok rada zapravo je jedan način implementacije Agent-a. Korisnik kroz vizuelni interfejs iskomponuje tok u kojem ima LLM čvorova, čvorova-alata i uslovnih grana — to je suštinski definisanje "logike ponašanja" jednog Agent-a. Engine toka rada upravlja raspoređivanjem i izvršenjem, što odgovara "mozgu" Agent-a koji pokreće ceo proces.
Primer generisanja podcasta: korisnik unese temu, tok rada prvo pozove LLM čvor da generiše skriptu, zatim pozove čvor-alat TTS za sintezu glasa, a između stoji i uslovna provera (da li je sadržaj saglasan). Ceo proces jeste Agent na delu — razumeo je nameru korisnika, isplanirao korake, pozvao spoljašnje alate i na kraju izvršio zadatak.
Dakle, ukratko: LLM je mozak, Agent je kompletna jedinka koja ima ruke i noge i koja radi. Ono što PaiFlow omogućava jeste da korisnik lako sastavi takvog sposobnog Agent-a.
02. Šta je Function Calling?
Tačka provere: poziv alata
Referentni odgovor:
Function Calling jeste sposobnost velikog modela da poziva spoljašnje funkcije/API-je.

Običan LLM zna samo da isporuči tekst — pitajte ga "proveri kakvo je danas vreme u Pekingu" i on će vam najviše reći "u redu, proveriću" — ali zaista ne može da proveri, jer nema ruke. Uloga Function Calling-a jeste da omogući LLM-u da iskaže koji alat želi da pozove i sa kojim parametrima, a onda spoljašnji okvir zaista izvrši poziv.
Tok je sledeći:
Prvi korak, saopštite LLM-u koji su alati dostupni. Pri pozivu LLM-a, pored prompt-a, prosleđuje se i lista tools, gde svaki alat ima ime, opis i definiciju parametara. Na primer:
{
"name": "get_weather",
"description": "upit o vremenskim informacijama za zadati grad",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "ime grada"}
},
"required": ["city"]
}
}Drugi korak, LLM odlučuje da li da koristi alat. Korisnik pita kakvo je vreme u Pekingu; LLM vidi alat get_weather čiji opis glasi "upit o vremenskim informacijama za zadati grad" i shvata — taj alat može da mi pomogne. Zatim isporučuje strukturisan zahtev za poziv:
{
"tool_calls": [{
"function": {
"name": "get_weather",
"arguments": "{\"city\": \"Peking\"}"
}
}]
}Treći korak, okvir izvršava alat i rezultat vraća u LLM. Spoljašnji okvir raščlani ovaj izlaz, zaista pozove API za vreme, dobijeni rezultat ubaci nazad u razgovor, a LLM zatim generiše konačan odgovor.
03. Šta je MCP?
Tačka provere: MCP protokol
Referentni odgovor:
MCP je Model Context Protocol koji je predložio Anthropic, s ciljem standardizacije načina interakcije velikih modela sa spoljašnjim alatima.

Ranije je svaki alat morao posebno da se povezuje, uz gomilu adapterskog koda. MCP definiše jedinstven protokol: alat implementira MCP Server, aplikacija implementira MCP Client, i oni međusobno komuniciraju.
Tri su ključna pojma MCP-a:
- Resources: izvori podataka samo za čitanje (fajlovi, baze podataka)
- Tools: funkcije koje se mogu izvršavati (API pozivi, izvršavanje koda)
- Prompts: unapred definisani šabloni upita
Dva načina komunikacije:
- stdio: komunikacija preko standardnog ulaza/izlaza, za lokalne alate
- SSE: komunikacija preko HTTP SSE, za udaljene servise
Naša ideja implementacije MCP Client-a:
public class McpClient {
private final String transport; // "stdio" ili "sse"
// otkrivanje dostupnih alata
public List listTools() {
return sendRequest("tools/list");
}
// poziv alata
public Object callTool(String name, Map args) {
return sendRequest("tools/call", Map.of("name", name, "arguments", args));
}
private Object sendRequest(String method, Object params) {
if ("stdio".equals(transport)) {
// piše u stdin podprocesa, čita rezultat iz stdouta
} else {
// šalje HTTP zahtev
}
}
}MCP alati se priključuju konfiguraciono:
mcp_servers:
- name: "filesystem"
transport: "stdio"
command: ["python", "filesystem_server.py"]
- name: "search"
transport: "sse"
url: "http://search-mcp:8080"Dodatno pitanje 1: Koja je razlika između Function Calling i MCP?
Referentni odgovor:
FunctionCall: poziv funkcije; omogućava LLM-u da na osnovu korisnikovog unosa u prirodnom jeziku prepozna koji alat mu treba i da formatira poziv alata.
MCP: pruža opšti protokolni okvir za otkrivanje, definisanje i pozivanje sposobnosti alata koje pružaju spoljašnji sistemi.

04. Šta su Claude Skills?
Tačka provere: napredne tehnologije, granice sposobnosti Agent-a
Referentni odgovor:
Skills su skup unapred pripremljenih vodiča najbolje prakse koje je Anthropic dao za Claude — suštinski, to su SKILL.md fajlovi koji sadrže detaljne korake i napomene za određeni zadatak.

Na primer, kad nam treba kreiranje Word, PPT, Excel ili PDF fajlova, Claude Code prvo pročita odgovarajući Skill fajl, koji mu kaže koju biblioteku da koristi, kako da obradi format i koje zamke da izbegne.
Skills su više kao prirunik za rukovanje ili dokumentacija najbolje prakse — statičko znanje, a ne sposobnost koja se poziva u realnom vremenu.
Function Calling jeste sposobnost velikog modela da poziva spoljašnje funkcije. Mi definišemo ime, parametre i opis funkcije; kad model u razgovoru oceni da treba da je pozove, isporuči strukturisan zahtev za poziv, a program ili okvir izvrši funkciju i rezultat vrati modelu.
Cilj MCP-a jeste standardizacija načina povezivanja velikih modela sa spoljašnjim alatima i izvorima podataka. Skills su ugrađeno znanje koje modelu kaže kako nešto dobro da uradi — statički vodič; Function Calling jeste mehanizam poziva kojim model okida spoljašnje akcije; MCP je standard povezivanja koji modelu olakšava rad sa raznim alatima.
Referentni odgovor, verzija 2
Claude Skills je struktuirani mehanizam paketa znanja koji je Anthropic izneo, radi pojačavanja Claude-ovih sposobnosti u specifičnim zadacima. Nije API poziv — pakuje stručno znanje, instrukcije i skripte u jedan folder, koji Claude po potrebi učitava.
Ključni pojmovi:
- Skills je folder koji sadrži fajl SKILL.md (obavezno) i opcione resursne fajlove
- SKILL.md sadrži YAML metapodatke (name, description) i Markdown instrukcije
- Claude dinamički učitava sadržaj relevantnog Skill-a prema potrebama zadatka
Uporedni pregled tri pojma:
| Stavka | Function Calling | MCP | Claude Skills |
|---|---|---|---|
| Suština | API poziv | protokol alata | paket znanja |
| Format | JSON Schema | složen protokol | Markdown + YAML |
| Potrošnja Token | niska (samo parametri) | visoka (režija protokola) | učitavanje po potrebi, efikasno |
| Scenarij | poziv spoljašnjeg API-ja | složena integracija alata | pojačanje sposobnosti za određeni zadatak |
| Cena učenja | srednja | visoka | niska |
Primer: pretpostavimo da želimo Claude da bolje obrađuje PDF; putem Skills to izgleda ovako:
pdf-skill/
├── SKILL.md # instrukcije kako obraditi PDF
├── examples/ # primera korišćenja
└── scripts/ # pomoćne skripteUmesto da pišemo Function parsePdf(). Skills je više kao da Claude-a naučimo veštini, nego da mu damo alatku.
07. Koji je princip progresivnog otkrivanja Skills-a?
Tačka provere: razumevanje ključne ideje dizajna Skills-a
Referentni odgovor:
Progresivno otkrivanje (progressive disclosure) jeste ključna dizajnerska misao Skills-a, a rešava problem ograničenog prozora konteksta.
Pozadina problema: klasičan pristup ubacuje sve uputstvo alata i sve vodiče u System Prompt, što vodi ka ogromnoj potrošnji Token (i desetine hiljada Tokena uputstava), ometanju modela nevažnim informacijama i zauzetosti prostora konteksta.
Troslojno učitavanje progresivnog otkrivanja:

Kao tehnički priručnik: sadržaj (metapodaci) vam brzo daje pregled šta sve postoji, uvod u poglavlje (glavni dokument) objašnjava kako se koristi, a detaljni primeri (dodatni fajlovi) listaju se tek kad zatreba.
Dobiti su: efikasnost Tokena — kad ne treba, ne učitava se; tačniji odgovori — bez ometanja nevažnim informacijama; dobra proširivost — može postojati stotine Skills-a, bez pucanja konteksta.
08. Praktični deo: Skills
Gornja pitanja sa intervjua potiču, sve, iz kolone PaiFlow Agent — naravno, to je samo deo tih pitanja.
https://paicoding.com/column/13/29

Pored toga, da bi svima omogućio bliži dodir sa razvojem Agent-a, na GitHub-u sam open-source-ovao još jedan Vibe Coding projekat PaiAgent, koji se može smatrati prethodnikom PaiFlow-a.
Nova verzija je dodala i praktičnu primenu Skills-a — u LLM čvoru se mogu dodavati Skills.
https://github.com/itwanger/PaiAgent

Ako se Skills implementiraju u Java kodu, zapravo su vrlo jednostavni.
Prvi korak: pronaći Skills.
@PostConstruct
public void init() {
// skenira sve fajlove SKILL.md sa classpath-a
Resource[] resources = resolver.getResources("classpath*:" + skillsPath + "/*/SKILL.md");
for (Resource resource : resources) {
Skill skill = skillLoader.load(skillDir);
register(skill);
}
}Drugi korak: učitati sve reference.
public Map<String, String> loadAllReferences(String skillName) {
Skill skill = skills.get(skillName);
Map<String, String> references = new HashMap<>();
for (String refName : skill.getReferences()) {
String content = skillLoader.loadReference(skill.getSkillPath(), refName);
references.put(refName, content);
}
return references;
}Treći korak: izgraditi kompletan izvršni Prompt.
public String getFullExecutionPrompt(Map<String, String> referenceContents) {
StringBuilder sb = new StringBuilder();
sb.append("# Veština: ").append(name).append("\n\n");
sb.append(description).append("\n\n---\n\n");
sb.append("## Vodič veštine\n\n").append(content).append("\n\n");
// direktno ugnezditi sav sadržaj referenci
for (Map.Entry<String, String> entry : referenceContents.entrySet()) {
sb.append("### ").append(entry.getKey()).append("\n\n");
sb.append(entry.getValue()).append("\n\n");
}
return sb.toString();
}Četvrti korak: pri izvršenju zapakovati Skills.
if (config.getSkillName() != null && !config.getSkillName().isBlank()) {
skill = skillRegistry.getSkill(config.getSkillName());
// direktno učitati sve reference i zapakovati u Prompt
skillReferences = skillRegistry.loadAllReferences(config.getSkillName());
}
String systemPrompt = buildSystemPrompt(skill, skillReferences);Dakle, sa stanovišta programa, Skills su zaista samo jedna vrsta Prompt-a, samo što, iz makro ugla, Skills čine Prompt šablonskijim.
Što više ima inženjerskog duha.
09. ending
Vratimo se dvorani Weiyang.
Car Wu sasluša Dongfang Shuoov detaljan odgovor na Skills, MCP, Function Calling, RAG i ostale pojmove i lice mu se razvedri: "Divno! Toliko sam pitao, a ti si na sve odgovorio bez oklevanja."
Dongfang Shuo sklopi ruke: "Vaše veličanstvo preteruje. Ti pojmovi zapravo nisu teški — ključ je razumeti koji problem svaki od njih rešava."
"O? Nastavi."
Dongfang Shuo prošeta po bradi i započe:
Function Calling rešava problem kako da LLM dobije ruke — model može da misli, ali ne i da deluje; Function Calling su te ruke koje stvarno rade.
MCP rešava problem standardizacije — ranije je svaki alat morao posebno da se povezuje, a sada postoji jedinstveni protokol: jednom povezan, svuda dostupan.
Skills rešava problem ponovnog korišćenja znanja — najbolja praksa se pakuje u šablon i učitava po potrebi, što štedi Token i istovremeno je preciznije.
"U redu, primljen si." Car Wu mahne rukom: "Od sutra, postavljen za savetnika, stalno uz mene."
Dongfang Shuo se pokloni i zahvali, u sebi potajno radostan: ponuda je čvrsta.
