Тајни врт програмера: Как прострanska онтологија подузаје LLM-ове без инжењерства промптова
Објављено 30 April 2026
- Забележење: Prompt Engineering је песарски град.
- Четири круга довера : пространна онтологија
- Za/Protiv: Prostorno poravnanje vs Poravnanje na osnovu prompta
- Relaciona algebra Workspace i Delta Observable
- Kompozitni kontekstni vektor : RAG + pgvector + Graphify
- Automatska klasifikacija RGPD: LLM kao ruter
- План развоја: од AsciiDoc до LangGraph4j
- Šta ova architektura rešava (i šta ne rešava)
- Закључак: архитектура као дискурс
- Reference
Inženjerstvo podskaživanja je křehko. Pri 80 000 tokena, vaša pravila poravnanja zagubljena su u bučanju, a LLM zaboravlja što ste mu pitali na početku razgovora. Moje rešenje? Ne poravnati po tekstu, već po l'prostor. Структурирао сам свој радини prostor за развој у четири концентричних кругова поверања — од интимног тајног сада до публичних кузница — и сваки круг је физичка зона файлова система. LLM не треба да му се напоминају правила: путања до фајла их садржи. Ово је како то функционише, и зашто ова архитектура подједнаčenja преко простора је издрживији од`system prompt`од 500 линија.
Ovo je dugi članak.
Ugodno se namesti.
- tik
-
[]
Забележење: Prompt Engineering је песарски град.
Tri nedelje sam razvio Gradle pluginove pomoću Opencode, koristeći tri različita LLM-a — Kimi K2.6, GLM-5.1 i DeepSeek-V4-Pro (jedini preživeli, ali to je druga priča)Déjà couverte ici. Moj metod upravljanja agentomJe l’ai documentée en détail dans un précédent article. osniva se na AsciiDoc fajlovima —AGENT.adoc, INDEX.adoc, PROMPT_REPRISE.adoc— koji učitavaju ~30 000 tokena pravila, backloga i istorije na svakom početku sesije.
Ipak, iako je ova dokumentacijska infrastruktura, dve stvari me iznenadle:
-
LLM zaboravlja. Čak i s absolutnim pravilima na vrhu svakog EAGER fajla, iznad 60 000 akumuliranih tokena (početni kontekst + razgovor), Kimi K2.6 je počeo da predlaže`Write`Претежави на датотекама конфигурације. GLM-5.1 je pogušao Firebase token sa placeholder-om za zamenu. Pravila su bila napisana — LLM ih više ne vidi.
-
Upravljanje samo po sebi postaje problem. Posle implementacije mehanizma Hot/Warm/ColdArticle sur la rotation de backup. da se izbegne eksplozija konteksta, moje EAGER datoteke su jos uopšte težile 1414 linija J’ai documenté cet audit ici. Upravljanje — namijenjeno zaštiti LLM od preopterćenja — preopterecivalo LLM.
Mi je bila potrebna mehanizacija za poravnanje koja ne zavisi od broja tokena u promptu.
Одговор: престаньте да подужавате по тексту, а почените да подужавате поprostor.
Четири круга довера : пространна онтологија
Мој фајл`workspace/(u~/workspace/`) nije pas Git skladište. To je korijen sve moje posla — kod, dokumentacija, obuka, infrastruktura. I je strukturisan u četiri zone koje nisu konvencije skladištenja, alikoncentrički kruhovi poverenja :
Nivo |
Oznaka |
Fizička zona |
CVS |
Vidljivost |
0 |
tajna bašta |
`workspace/`koren |
Ниједан |
Intimno — slobodna misao, nema commit-a, nema objave |
1 |
Sejf |
|
Privatni Git (solo) |
Tajne, tokeni, arhiv vidnja. Samo jedna osoba. |
2 |
Biblioteka |
|
Privatni Git (širen) |
Pedagoški podaci, SPG/SPD, JSON šeme. Identifikovan krug poverenja. |
4 |
Коваонице (јавне) |
|
javni Git (Apache 2.0) |
Izvorni kod, plugini, testovi, tehnička dokumentacija. |
NAPOMENA: U tabeli ne postoji nivo 3. Nivo 3 je tranzitivni nivo: to je sadržaj od`office/`koji je anonimiziran i spreman da se objavi kao open data. Nema vlastitu fizičku zonu — to je stanje podataka, nije lokacija.
Svaki nivo odgovara na precizno pitanje:
-
Где може да се постави идеја која још није спремна за дељење, iako imate ograničen krug? → Скретни зарт. Ни Git. Ни пресиљак.
-
Gde čuvati API token tako da ne uteče? → Sejf`configuration/`). Fizički izolovan. Nijedan drugi depozitar ne može da ga referencira greškom.
-
Где садомно направити каталог обuke са пилотним ОФ ? → Библиотека`office/`). Verzionisan, kolaborativan, ali privatan.
-
Где индустриализовати Gradle плагин otvorenog koda ? → Форге
foundry/). Javno, forkabilno, testirano u CI.
Ова онтологија јепотрошајио од LLM. Када чита фајл у`foundry/plantuml-gradle/src/`, онimplicitно зна: "Ja sam u krugu 4 — javni kod, obavezni testovi, bez tajni, bez obrazovnih podataka". Mu nije potreban podsetник који га подсетио.
Tajni vrt : Prostor izvan CVS
Ово је најважнији концепт — и најпротивоинтуитивнији.
Корен`workspace/nije ima.git/. Dokumenti koji žive tamo (`WORKSPACE_VISION.adoc, WORKSPACE_AS_PRODUCT.adoc, WORKSPACE_ORGANIZATION.adoc— i onaj koji trenutno čitate, koji nastaje od njega) nisu namenjeni da budu verzionisani, deljeni, ili čak pročitati od neke druge osim mene. Ovo suмисли у фази germinacije.
|
Tajni vrt je out-of-CVS po prirodi. Nedostatak verzioniranja je uslov za slobodu misljenja. Ne piše se tamo da se čita — piše se tamo da se jasno uvidí sopstvena perspektiva. |
Ali ova sloboda ima cenu: jedan`rm`случајно, и то су месеци стратешког размишљања који се губе. Решение није да верзовати башту (то би је уништило) — то је да газркалитиу најужејем кругу.
Файл .gitignore као конфигурација управљања
На корену`workspace/, jedna datoteka.gitignore`minimal izjavljujepolitika historizacijeдатотеке из тајног баљета :
.goosehints
.goose
Ce .gitignore`nema klasičnu Git funkciju (njema.git/`na korenu). Deljuje kao jedanfajl konfiguracije upravljanjakoji odgovara na precizno pitanje: koji artefakti iz tajnog vrta zaslužuju da budu historizirani, a koji su čisto prohodni?
-
Fajlovi navedeni u`.gitignore`—
.goosehints,.goose— su efemerni artefakti generisani od agenata. Nema strategijske vrednosti. Nema istorijacije. -
Datoteke`.adoc`od korena —
WORKSPACE_VISION.adoc,WORKSPACE_ORGANIZATION.adoc,WORKSPACE_AS_PRODUCT.adoc,WHAT_THE_GAMES_BEEN_MISSING.adoc,depots_implementes_strategie.adoc,synthese-LLMs-long-contexte.adoc— nisunijeу`.gitignore`. Ово су артефакти које треба историзовати.
Le `.gitignore`јеšema upravljanja: sve što nije navedeno u listi je kandidat za snapshot. Et le LLM, en lisant ce fichier, sait exactement ce qui doit être archivé et ce qui peut être ignoré — sans qu’on ait besoin de le lui rappeler dans un prompt.
Mehanizam od Snapshot
Napravio sam`configuration/vision-archive/: datirani snapshot-ovi svih.adoc`из корена, коммитовати у приватном репозиторијуму`configuration/`. Svaka sesija brainstorminga produira snapshot:
DATE=$(date +%Y-%m-%d)
mkdir -p /home/cheroliv/workspace/configuration/vision-archive/$DATE
cp /home/cheroliv/workspace/*.adoc /home/cheroliv/workspace/configuration/vision-archive/$DATE/
cd /home/cheroliv/workspace/configuration && git add vision-archive/ && \
git commit -m "vision-archive: snapshot $DATE"
Procedura se pokreće na kraju sesije LLM-om sam, koji izvršava zadatak globalnog rutiranja. Svaki snapshot uhvatuje kompletno stanje strateškog mišljenja u trenutku T.
istorija Git`configuration/`постајеbiografija moje strateške misli. Ja mogu da uradim jedan`git log — vision-archive/`i videti evoluciju mog vida, sesija po sesiji, datum po datumu.
Реални пример историје после једног дани рада:
$ git -C configuration log --oneline -- vision-archive/
1089d1b vision-archive: fin de session finale 2026-05-03
6b21eaf vision-archive: fin de session 2026-05-03-1300
1690f82 vision-archive: post-article 2026-05-03
28e6593 vision-archive: post-migration 2026-05-03
3707b78 vision-archive: snapshot 2026-05-03 — jardin secret initial
Pet snapshot-a u jednom danu. Svaki je tačka vraćanja. Svaki je mijumski kamen u nastanju strategije.
Fajl`configuration/vision-archive/latest/`sadrži stalno jednaradna kopijaposlednjem snapshotu, služi kao brza referenca bez potrebe da se pretražuje istorija Git.
И за LLM, је једанorakul koherentnosti: kad primeti razliku između trenutne implementacije i arhivisanog vida iz prethodnog datuma, može je prijaviti.
Сейф: configuration/ као Spring Cloud Config
`configuration/`Ne sadrži samo arhivu vida. Njegova primarna — i budućna — funkcija je da budeServer Spring Cloud Config. Секрети, токени, креденцијали, и дескриптори инфраструктуре живе овде, у приватном Гит репозиторију приступном само власнику.
Zašto zaseban depozitarijum umesto fajla`.env`у сваком пројекту ?
-
Slučajno pushanje tajne : nemoguće. Tajne se nalaze u privatnom repozitorijumu koji javni projekti ne mogu greškom referencirati.
-
Audit : Istorija Git daje sled svake promene konfiguracije. Ko je šta promenio, kada, sa kojim SHA hash-om.
-
повратак :`git revert`na oštećenoj konfiguraciji. Instantno, bez ručnog backupa.
Библиотека : office/ kao potrošljivi podaci
`office/`Je dokumentarni pratioc razvoja. Sadrži članke bloga, tehničke specifikacije, materijale za obuku (38 direktorijuma kurseva FPA, SPG/SPD, JSON šeme, taksonomije Bloom/Harrow/Krathwohl) — sve što činipedagoški materijal.
Но`office/`Nije samo ormarić za dokumente. Ovo jeизвор структурираног податакаda Gradle pluginovi`foundry/`potrošavaju. jedan članak na blogu u`office/`je ulaz koji će plugin pretvoriti u HTML. Jedan SPG AsciiDoc u`office/metiers/FPA/`је артефакт који оркестратор ће парсирати да генерише слајдове, квизове и видео капсуле.
Et le `build.gradle.kts`u korenu`office/`Није је код послова — је једанскрипт за потроњу екосистема додатака. On reče: "Ovo su Gradle pluginovi koje koristim, ovo je kontekst mojog radnog prostora".
Коваонице : foundry/ као имплементација
foundry/`sadržiиндустриализовани код. 54 Git repozitorijuma, od kojih 7 trenutno upravljaju.agents/`. Ovo je gde vid postaje izvršljiv — Gradle pluginovi, CI/CD, JUnit5 + Cucumber testovi.
Odnos sa`office/`je dvosmerna :
-
office/→foundry/: pedagoški podaci su osnovna materija koju plugini konsumiraju. -
foundry/→office/`plugini produju data koja obogćava`office/— le `graph.json`graphify-gradle, sklopljeni slider dekovi, izveštaji o gradnji.
Za/Protiv: Prostorno poravnanje vs Poravnanje na osnovu prompta
Usporedimo oba pristupa.
Klasični pristup: poravnanje po pre-promptu
Profesionalac |
❌ protiv |
Jednostavno je primeniti. Jedan blok teksta u system promptu. |
Fragile u dugome kontekstu : pravilo je utopreno posle 80K tokena. |
Radi na opšte pravila (ton, format). |
Neprovjerivo : ništa ne sprečava LLM da krši pravilo. |
Не треба да репромшљате архитектуру пројекта. |
Neprevodno: svaki repo ponovo definiše pravila. |
Само декларативно : LLM зна да треба, али ништа не спречава. |
Овај приступ : поравнање према просторној онтологији
✅ Pro |
❌ protiv |
Резилиентан у дугом контексту: правило је у путањи датотеке, а не у далеком упуту. |
Inicijalni trošak infrastrukture: strukturiranje workspace u krugove zauzima vreme. |
Mehanički proverivo : jedna tajna u`foundry/ |
Потребна је дисциплина: нови сарадник треба да разуме кругове. |
Преносљив : један`AGENT.adoc`standard izlaga krugove svakom novom projektu. |
Pokriva samo prostorne ograničenja — stil koda ostaje u promptu. |
Sigurnost po dizajnu : jedan`git push`од`foundry/ |
|
Potreban za agente koji nisu LLM : orchestrator Gradle može da usmeri prema krugu. |
Glavna dobit nije defenzivna (sigurnost, vidljivost) — ona jeкреативанКога LLM ради у простору структурираном онтологијом, он може да уради шта ниједоан промпт није му омогућао: погледати дельту.
Relaciona algebra Workspace i Delta Observable
Kada LLM prelazi`foundry/, ima jedanrezet strukturiranih podataka: čvorovi (plugins, fajlovi, testovi, zavisnosti), tipovani ivice (`import, depends_on, generates, tests), relacije sastava i reda (`training-gradle`извлачи репозиторијум`slider-gradle`generiše slideove →`capsule-gradle`покрени видео).
Ova algebra nije napisana nigdje otvoreno — ali je vidljiva.`build.gradle.kts`Izlaže zavisnosti. Svaki`INDEX.adoc`izlaga ukrštene reference.
LLM posmatra ovu algebru i detektujeдельта: razlika između onog što sistem već zna da proizvede i onog što videnje opisuje.
Od ogov delte, može da definišeKartografije poslovnih eksperata— CDA (Dizajner-razvijalac aplikacija, Kotlin/Gradle/JHipster) i FPA (Profesionalni trener odraslih, Pédagogie/Qualiopi/Bloom) — i identificirati što nedostaje svakom ekspertru.
Expert CDA (Kotlin/Gradle/JHipster)
├── Plugins : jhipster-gradle-plugins, plantuml-gradle,
│ codebase-gradle
├── Delta : pas encore de SPG CDA formalisé,
│ pas de fine-tuning expert CDA
Expert FPA (Pédagogie/Qualiopi/Bloom)
├── Plugins : training-gradle, slider-gradle,
│ school-backoffice/forms, capsule-gradle
├── Matériel : 38 modules cours, SPG/SPD, taxonomies
└── Delta : parser AsciiDoc→JSON à créer,
orchestrateur à coder
LLM-u nije potrebno da mu se kaže što da uradi. Delta nastaje iz strukture.
Kompozitni kontekstni vektor : RAG + pgvector + Graphify
Релацијска алгебра није теоријска конструкција. Она је материјализована трију компонентама које формирају једанkompozitni vektor kontekstaза LLM.
Komponenta 1 — RAG LangChain4j + PostgreSQL pgvector
Већ имам LangChain4j у производном окружењу у два плагина:`slider-gradle`(4 providers LLM) и`plantuml-gradle`(7 providers). ONNX embeddings (AllMiniLmL6V2) indeksiraju podatke od`office/`i izvorni kod`foundry/`у PostgreSQL + pgvector.
Ovaj RAG radi na dva dimenzije:
-
Dimension data: dokumenti`office/`(SPG, članci, obuke, JSON šeme)
-
Код димензије : кодобазе`foundry/`(izvorni kod Kotlin, testovi Cucumber, AGENT.adoc)
Presek pokriva i šta (poslovni domen) i kako (implementacija).
Компонента 2 — Knowledge Graph Graphify
Graphify je integrisan u`plantuml-gradle`(109 testova, 380/380 prolazi) i proizvodi jedan`graph.json`— jedan strukturiran znanjski graf sa čvorovima, granama i automatski detektovanim zajednicama
U suprotnosti RAG-u koji radi na vektorskoj sličnosti (mglav), knowledge graph radi natačni odnosi(deterministicki) :`graphify query`za semantička pitanja (~50 tokens),`graphify path`за навигацију,`graphify explain`за објашњење.
Компонента 3 — Graphify инкрементални : ретак, агрегабилан, потрошајни
To je ključna arhitektonska odluka.
Graphify ne sme da živi u jedinom repozitorijumu. Ono mora da živi na način.распоређеноу сваком плагину:
-
Svaki plugin uključuje Gradle zadatak`updateKnowledgeGraph`ko poziva Graphifyна свом опсегуi proizvodi jedan`graph.json`lokal.
-
build skripta za`office/
* консоме`graphify-gradle`са`rootDir = /home/cheroliv/workspace`i proizvodi jedan`graph.jsonglobalnikoji agregira lokalne grafove. -
Le RAG de chaque plugin injicira`graph.json`kao globalnofiltr kontekstaza LLM upite.
TÂCHE GRADLE (dans chaque plugin)
↓
graphify → graph.json (scope local)
↓
office/build.gradle.kts → graph.json (scope global)
↓
RAG pgvector (dans slider, plantuml, codebase...)
↓ ← injection du graph.json comme filtre
LLM (deepseek-v4-pro)
↓ ← observation algèbre relationnelle
↓ ← détection delta vs cartographies experts
PRIORISATION → prochaine tâche
Rezultat: LLM ne traži u prazno — kreće se kroz prostor struktuirani po knowledge grafu. Upit na "génère un diagramme" zna da dosegne relevantne čvorove grafa.
Automatska klasifikacija RGPD: LLM kao ruter
Просторна онтологија не се само задовољава поравнавањем LLM-a — она јему дајематрица класификације RGPDДа би се свака податок рутирао према законој зони.
Критериум |
Детекција LLM |
akcija |
Максимални нivo |
Lični podaci (ime, e‑mail, IP) |
Pattern`@`, IP, imena propria |
Anonimizovati →`[OF_PILOTE]`или рутер ниво 2 |
2 |
Token / Tajna / Prikaznica |
Uzorak`sk-… |
Ruter → |
1 |
unutrašnji URL |
Sadrži`localhost`, privatna IP |
Anonimizuj → |
2 |
Pedagoški podatak (SPG, predmet) |
Структура Bloom/Qualiopi |
Ruter → |
3 |
Izvorni kod / test |
Proširenje`.kt`, |
Маршрутизатор → |
4 |
На крају сеансе, LLM извршава једнуglobalni zadatak:
-
Čitanje`.gitignore`koren za identifikaciju efemernih artefakata (da se isključe iz snapshota) vs strateški artefakti (da se arhiviraju)
-
Списак свих датотека`.adoc`od korena`workspace/`
-
Филтрање : искључење фајлова наведених у`.gitignore`, uključenje svih ostalih
-
Kopiraj u`configuration/vision-archive/$DATE/
ažuriranje simboličke veze`latest/ -
Commit u repozitoriju`configuration/`sa strukturisanom porukom
-
Automatska GDPR klasifikacija svakog izmjenjenog fajla (svi krugovi)
-
Маршрутирање : подаци`office/
→ privatni commit, kod`foundry/→./gradlew check, konfiguracija → komit -
Strukturovan izveštaj sa upozorenjima po GDPR i potvrdom arhivaciji
Le `.gitignore`korijen nije datoteka konfiguracije Git — ovo jefajl za upravljanje istorizacijom. Он definiše šemu koju LLM potrošuje da odluči koje fajlove iz tajnog vrta uđe u stratešku biografiju a koji su jednorazni.
LLM više nije obični generator teksta. On jeинформацијски менеджерекосистема — произвођач, класификатор, рутер
План развоја: од AsciiDoc до LangGraph4j
Данас, ова управљање је детерминистички : LLM primenjuje jednu proceduru opisanu u AsciiDoc datotekama. Ово јеfaza 1— инжењерство промпта са меморијом LLM.
La faza 2ćе izvući svaki korak postupka u jednojtipovani Gradle zadatak:
./gradlew endSessionWorkspace → snapshot vision-archive
./gradlew endSessionProject → archive .agents/
./gradlew endSessionReport → rapport multi-zones
La faza 3će modelirati proces završetka sesije kaograf stanjaсаhttps://github.com/langgraph4j/langgraph4j[LangGraph4j]:
[Start] → [Inventaire fichiers modifiés]
→ [Classification RGPD] (nœud ONNX)
→ [Branchement par cercle]
├→ cercle 0 → snapshot → commit
├→ cercle 2 → anonymisation → commit
├→ cercle 4 → archive → commit
└→ cercle 1 → commit configuration/
→ [Rapport] → [End]
Ovaj graf će biti verzioniran u CI/CD, izvršen pomoću Gradle, konfigurisan kroz GitHub Secrets dodataka. LLM više neće morati da odlučuje o rutiranju — graf to će uraditi.
Šta ova architektura rešava (i šta ne rešava)
|
Prostorna ontologija ne pokriva sve. Konvencije stila koda, imenovanje, izbor arhitektonskog dizajna — sve to ostaje u promptu. Šta prostorna ontologija rešava jestesloj sigurnosti i vidljivostigdje svaki bajt mora da živi, i ko može da ga vidi |
Ovo je konkretan doprinos koji ona nosi:
-
* Није`git push`случан једног тајне* : тајне су у`configuration/
(krug 1). Javni projekti su u`foundry/(круг 4). Ни једна пута не прелази кроз оба. -
Нима пословног кода у подацима :`office/
sadrži neke.adoc`, YAML, JSON sheme — ali ne`.kt`. Le `build.gradle.kts`Onaj ko tamo živi je skript potrošnje, ne poslovni kod. -
Nema izraženog strateškog mišljenja : dokumenti vizije žive u tajnom vrtu (korijen izvan CVS). Snapshot su u`configuration/`(privatni sejf). Niko, čak i u proširenom krugu poverenja, ne čita genezu strategije.
-
Auto-priorisation : LLM praća deltu između relacione algebre (što postoji) i kartografija eksperata (što je potrebna). Sledeći razvojni zadatak nastaje iz ove delte.
Закључак: архитектура као дискурс
Ne stavim politički manifest u podnožje svojega sajta. Ne stavim etička pravila u moje upite. Poravnanje nije u tekstu — ono je usistem fajlova.
Kada LLM radi u ovom prostoru, ne može da izbegne izlaganje tajne (putanja mu to zabranjuje). Ne može da pomiješa nastavni podatak sa izvornim kodom (fizička zona je drugačija). Ne može da zaboravi pravilo bezpečnosti od 80 000 tokena — jer pravilo nije u promptu, već je u`workspace/→`configuration/→office/→`foundry/`što svako čitanje datoteke reaktivira.
Ovo je principi secure by design primenjen na agentevo poravnanje: ne tražite od LLM da se seti pravila. Odradite da arhitektura čini grešku strukturalno nemoguću.
I na putu, to daje LLM-u ono što ni jedan prompt ne može da mu da: sposobnost daприматигде он находится, что существует, чего не хватает — и на основе этого сделать вывод о том, что он должен делать.
Reference
-
Статья о управљању агентом Eager/Lazy :Управљање Агентом ИИ са AsciiDoc
-
Članak o mecanizmu Hot/Warm/Cold :Sliding Window i hladna val
-
Статья о аудиту контекста:Кад Ваша сопствена управа постаје проблем
-
Članak o poređenju tri LLMs:DeepSeek-V4-Pro, Kimi K2.6, GLM-5.1