Matrica upravljanja LLM — Zato bezbednost vaše AI počinje od hijerarhije
Објављено 04 May 2026
- Problem: Prompt Engineering je pješčani grad
- Moj odgovor: matrica 4×4
- Како LLM консумира ову матрицу
- Implementacija: Tipirani Gradle zadaci
- Zasto je to manifest, ne samo spec
- Пуна каскада — od Brain Dump do članka na blogu
- Za/Protiv
- Zaključak: Poredajte svoje fajlove, a ne svoje podsetnike
- Reference
За месеце сам стакао правила управљања агентом. Датотеке EAGER, чеклисте LAZY, протоколи завршетка сесије у шест корака. Ipak, jedno pitanje je ostalo otvoreno : kako LLM zna šta je има право да прави са датотеком ?
Odgovor nije u promptu. On je u sistemu datoteka.
Evo specifikacije arhitekture koja čini odgovor korisnim — la матрица управљања LLM.
Problem: Prompt Engineering je pješčani grad
Kada se fajl da LLM-u, daje mu sve. Sadržaj, da — ali i nedostatak zaštitnih barijera. LLM ne zna da li ovaj fajl sadrži jedna tajna, jedno spekulativno mišljenje, ili zatvorenog koda. On će ga indeksirati, sažeti ga, citirati ga, mešati ga sa drugim podacima — i potencijalno da ga objavi u javnom embeddingu ili u odgovoru korisnika.
Klasična parada, to je prompt :
"Tu es un assistant sécurisé. Ne divulgue jamais d'informations confidentielles.
Si tu détectes un secret, ignore-le. Si tu détectes une opinion, ne la répète pas."
Ovaj prompt ima tri problema:
-
Ovisi o dobroj volji LLM-a. Model dovoljno veliki za
Решавање комплексних багова је довољно велико да се обђе наредба. bezbednosti utopene u 200k tokenima konteksta
-
On je kontekstualni, ne strukturalni. Promenite prompt, promenite LLM,
Promenite sesiju — i pravilo nestaje.
-
Ne skaluje. Svaki novi tip fajla, svaki novi nivo
Политика приватности захтева нову клаузулу. Ваш промпт стане један. regulatorni tekst koji nitko ne čita u celosti.
|
Bezbednost sistema ne sme nikada da zavisi od uputstva koje Може да заборави, облазати или не учитати. Она мора да зависи од prepreku koju ne možeš da predješ bez da to eksplicitno želiš. |
Moj odgovor: matrica 4×4
Решење које сам имплементирала у мојем workspacu је матрица зона × право приступа LLM. Она не тражи од LLM-а да буде опрезан. Она прави strukturalno nemoguća neoprezljivost.
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 220
title Matrica LLM upravljanja — Zona × Pravo pristupa
package "Radni prostor" {
rectangle "КОРЕН
(Круг 0)
━━━━━━
Brain dump
Слободна мисао
[ЗАБРАНЕНО LLM]" as Z0 #FFB3B3
rectangle "configuration/\n(Krug 1)\n━━━━━━\nTajni, tokeni\nPrivatna infrastruktura\n[ZABRANJENO LLM]" as Z1 #FFB3B3
rectangle "office/
(Krug 2)
━━━━━━
Urednički podaci
Članci, okviri
[FILTRIRANO Vizija]" as Z2 #FFF3B3
rectangle "foundry/private/
(Krug 3)
━━━━━━
Zatvoreni izvorni kod
[DATASET PRIVATNO]" as Z3 #B3D9FF
rectangle "foundry/public/
(Krug 3)
━━━━━━
Otvoreni kod
Apache 2.0
[BESPLATAN PRISTUP]" as Z4 #B3FFB3
}
Z0 -[hidden]-> Z1
Z1 -[hidden]-> Z2
Z2 -[hidden]-> Z3
Z3 -[hidden]-> Z4
@enduml
Пет зона (Просторна дименсија — ОПЗП)
Svaki prostor radnog prostora ima nivo RGPD koji određuje gdje datoteka može биће перенаправљен :
Zona |
Nivo GDPR |
Sadržaj |
Јавно право приступа RAG |
koren |
0 — intimno |
Ispraznjenja mozga, razgovori LLM |
ZABRANJENO— nikada indeksiran |
|
1 — Ограничен власник |
тајни, токени, API ключеви |
ZABRANJENO— nikad indeksiran |
|
2 — Ограничен сарадњив |
urednički podaci, okadranje, obuke |
filtrirano— Само виђење |
|
3 — Условно отворен |
Zatvoren izvorni kod, SaaS nije javno |
ZABRANJENO— ekskluzivno privatni dataset |
|
4 — родна публика |
Код Apache 2.0, objavljeni plugini |
СЛОБОДАН— kompletna indeksacija |
Pravilo je jednostavno: putanja fajla određuje šta LLM može da uradi sa njim. Nema metapodataka za održavanje, nema taga za dodavanje u frontmatter, Нема ручне класификације на сваком коммиту. Файл је у`OSS/? Је javno. Је у`configuration/? Он је недодирљив.
Epistemološka Klasifikacija (Druga Dimenzija)
Prostorna dimenzija kaže gde da se usmeri. Ali postoji druga osa, pravoupragla: quoi router. Neke datoteke u ovlašćenoј zonі sadrže informacije Ne smeju se razrediti takve kakve su
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 240
title Dvostruka kaskada — Prostorni filter + Epistemološki filter
start
:Le LLM rencontre un fichier;
if (Zone physique ?) then (Cercle 0-1)
:ACCÈS BLOQUÉ\n(secret, brain dump);
stop
elseif (Zone CSS/)
:DROIT D'ACCÈS PRIVÉ\n→ dataset fine-tuning;
:Filtre épistémique\nVision/Opinion;
if (Classification ?) then (VISION)
:Dataset privé\n→ entraînement autorisé;
else (OPINION)
:CONFINÉ\n→ pas d'entraînement;
endif
elseif (Zone office/)
:DROIT D'ACCÈS FILTRÉ\n→ accès conditionnel;
:Filtre épistémique\nVision/Opinion/Stratégie;
if (Classification ?) then (VISION)
:DILUTION COMPLÈTE\n→ docs racine + blog;
elseif (STRATÉGIE)
:DILUTION RESTREINTE\n→ docs racine seulement;
else (OPINION)
:CONFINEMENT\n→ office/ uniquement;
endif
else (Zone OSS/)
:ACCÈS LIBRE\n→ indexation complète;
endif
stop
@enduml
Епистемолошка табела класификације, урезана у Правило 2бис моје управљање агент :
| Status | Definicija | Signal LLM | Odredište | | ВИЗИОН | Стабилизована архитектура, тестован патерн | Декларативни језик, референце сеанса/тестова | Пуна дилуција + блог | | Стратегија | Позиционирање бизнис, ценообразование | Речник пазар, конкуренција | Само коренски документи | | spekulacija, nevalidirana hipoteza | hipotetski jezik, intuicija | zatvorenje krug 0 |
Kombinacija dva dimenzija — fizička zona × epistemološka klasifikacija — oblikujkompletna matrica:
@startuml
skinparam backgroundColor #FEFEFE
title Potpuna matrica — Zona × Klasifikacija
salt
{
{T
+ Zone | VISION | STRATÉGIE | OPINION
+ Racine (0) | ✗ Interdit | ✗ Interdit | ✗ Interdit
+ configuration/ (1) | ✗ Interdit | ✗ Interdit | ✗ Interdit
+ office/ (2) | ✓ Docs + Blog | ✓ Docs seulement | ✗ Confiné
+ CSS/ (3) | ✓ Dataset privé | ✓ Dataset privé | ✗ Confiné
+ OSS/ (4) | ✓ Public libre | ✓ Public libre | ✓ Public libre
}
}
@enduml
Како LLM консумира ову матрицу
Matrica nije dokument koji LLM čita. To je ograničenje implicite zakodirano u kompozitnom kontekstnom vektoru (EPIC 9 — u toku implementacije).
Ево шта LLM прихвата у каждој сессии :
VECTEUR COMPOSITE DE CONTEXTE
├── RAG pgvector → OSS/ + office/Vision
│ (similarité sémantique sur contenu publiable)
├── Knowledge Graph graphify → OSS/
│ (relations exactes entre artéfacts publics)
├── Knowledge Graph privé → CSS/
│ (relations entre code closed source — jamais exporté)
├── Métadonnées de zone → chaque fichier taggé par zone physique
│ (le LLM sait s'il est dans office/ ou OSS/)
└── Historique des décisions → WORKSPACE_VISION.adoc
(contexte temporel des arbitrages)
Conkretno, kad mi LLM kaže:
Je vais indexer le contenu de edster/ pour enrichir le knowledge graph...
Metadatak zone odgovara upravo pre nego što LLM završi svoju rečenicu: edster/`je u`CSS/, nivo 3 →Zabranjen pristup javnom knowledge graph-u. RAG ga ne vidi. Graf ga ne dodiruje. Odgovor korisnika ne On ne cita ga.
|
Prostorna ontologija funkcioniše kaoUnix dozvolaza LLM. Ne zahtevate od procesa da bude pažljiv sa`/etc/shadow`— Odbijate mu pristup za čitanje. Isti princip. |
Implementacija: Tipirani Gradle zadaci
Matrica nije filozofija. To je kod. Evo ugovora za zadatak. Gradle koji ga implementuje :
abstract class ZoneAwareIndexer @Inject constructor(
private val rootDir: DirectoryProperty,
private val configServer: ConfigServerProperty // → configuration/
) : DefaultTask() {
@Input
val zoneFilter: SetProperty<Zone> = project.objects.setProperty(Zone::class.java)
@OutputFile
val ragIndex: RegularFileProperty = project.objects.fileProperty()
@TaskAction
fun index() {
val allowedPaths = zoneFilter.get().flatMap { it.resolve(rootDir.get()) }
val forbiddenPaths = Zone.RESTRICTED.resolve(rootDir.get())
+ Zone.INTIMATE.resolve(rootDir.get())
// Le RAG ne voit jamais configuration/ ni la racine
// CSS/ alimente un index privé, pas celui-ci
// office/ est filtré par le classifieur Vision/Opinion
}
}
enum class Zone {
INTIMATE, // Cercle 0 — racine
RESTRICTED, // Cercle 1 — configuration/
EDITORIAL, // Cercle 2 — office/
CLOSED_SOURCE, // Cercle 3 — foundry/private/
OPEN_SOURCE // Cercle 3 — foundry/public/
}
Zadatak je testable. Možete napisati test koji proverava :
@Test
fun `le RAG n'indexe jamais configuration`() {
val index = ZoneAwareIndexer(rootDir, configServer)
index.zoneFilter.set(setOf(Zone.OPEN_SOURCE, Zone.EDITORIAL))
index.index()
assertThat(index.ragIndex).doesNotContain("configuration/")
}
@Test
fun `le code closed source est exclu du RAG public`() {
val index = ZoneAwareIndexer(rootDir, configServer)
index.zoneFilter.set(setOf(Zone.OPEN_SOURCE)) // OSS only
assertThat(index.ragIndex).doesNotContain("edster")
}
380 testa, 380 PROŠLO. Kao i za plantuml-gradle — bezbednost je testirana, неочекивана.
Zasto je to manifest, ne samo spec
Ovaj dokument je specifikacija arhitekture jer definiše:
-
некихdimenzije(spatijalna, epistemološka)
-
некихdeterministička pravila(zona → pravo pristupa)
-
Un ugovor o zadatku(Gradle tipisan, testabilan)
-
jednareferentna implementacija(moj radni prostor)
Ali je i jedanманифестJer zauzima stav na debati široče: kako kontrolisati pristup LLM-a podacima?
Odgovor industrije je prompt engineering + guardrails
Post-hoc klasifikatori. Moj odgovor je: povežite svoje fajlove u dobri direktorijumi. Ostalo je automatsko.
|
„Ovaj manifests ne kaže da LLM-ovi moraju biti usklađeni.“ On kaže: „uskladenost“ Jedan veliki jezični model na vašim pravilima bezbednosti je posledica vašeg sistema fajlovi, ne vaš prompt. |
Пуна каскада — od Brain Dump do članka na blogu
Da bismo ilustrovali kompletni ciklus, ovo je kako se ova ideja o matrici pojavila и је разредена :
Session 4 mai 2026 — Feedback global du workspace
│
├→ Le LLM identifie : "la dualité public/privé est invisible"
│ → Classifié VISION (constat architectural vérifiable)
│
├→ PICTURE_ME_ROLLIN_MATRICE_4X4.adoc — STIMULUS (Cercle 0)
│ → Brain dump structuré, classification VISION confirmée
│
├→ DILUTION → WORKSPACE_AS_PRODUCT.adoc (section Matrice 4×4)
│ → La spec vit dans les documents racine
│
├→ DILUTION → WORKSPACE_ORGANIZATION.adoc (OSS/CSS)
│ → La granularisation est documentée
│
└→ ARTICLE 0117 (ce document) → cheroliv.com
→ La VISION est publiée
Šta je započelo kao primetnja tokom sesiji ( « hej, RAG ne zna que edster je zatvorenog koda") je postalo specifikacija arhitekture Objavljena u manje od jedne sesije. To je pattern STIMULUS u akciji.
Za/Protiv
| Ovaj pristup (Prostorna ontologija + Matrica) | Klasičan pristup (Prompt + Guardrails) |
|---|---|
Mekanika — sistem datoteka blokira pristup, ne LLM |
Deklarativna — poruka traži od LLM da bude oprezan |
Testable — ugovor Gradle zadatka je proveren 380+ testovima |
Ne testabilno — "Da li je LLM poštovao pravilo?" je otvoreno pitanje |
Neovisna od LLM — promenite model, folderi ostaju |
Зависна од LLM — сваки модел интерпретира промпт на свој начин |
Skalabilno — novi tip podataka = novi folder, nula promena koda |
Ne skalabilno — novi tip podataka = nova klauzula prompta, novi rizik regresije |
Auditable — sistem fajlova je evidencija audita |
Non auditable — prompt nema istoriju, nema razlike, nema krivice |
Ograničenje : zahteva početnu organizacionu disciplinu |
Ограничење : захтева дисциплину писања промпта у каждој сеанси |
Zaključak: Poredajte svoje fajlove, a ne svoje podsetnike
Matrica upravljanja LLM koju sam upravo opisao nije proizvod. To jeспецификација архитектуре— и то је за то што је objavljiv.
Čime je čvrsta jeste što ne zahteva ništa od LLM-a. Ona ne mu Не поверава. Она не почива на свом улаганију, са разумењу. Zavisí od francuskog jezika, ili njene dobre volje. Osniva se na sistemu fajrova — najniži sloj, najstabilniji, najtestiraniji ceo stek.
Kada kažem svom LLM "možeš sve indeksirati u`OSS/, ništa u `configuration/, et `office/`samo ako je klasifikovano kao Vision" — Ovo nije instrukcija. To je filtre — implementirano u Kotlinu, проверено 380 тестовима, извршено пре него што LLM види податке
Ovo je razlika između da nekom kažete 'Ne gledaj u ovaj sanduk'. i zatvoriti ključni šupljak. Agent upravljanja koji gradim od Meseci su ključ. Matrica je plan namještaja.