vreme čitanja : 14 minutes

За месеце сам стакао правила управљања агентом. Датотеке 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:

  1. Ovisi o dobroj volji LLM-a. Model dovoljno veliki za

Решавање комплексних багова је довољно велико да се обђе наредба. bezbednosti utopene u 200k tokenima konteksta

  1. On je kontekstualni, ne strukturalni. Promenite prompt, promenite LLM,

Promenite sesiju — i pravilo nestaje.

  1. 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

configuration/

1 — Ограничен власник

тајни, токени, API ключеви

ZABRANJENO— nikad indeksiran

office/

2 — Ограничен сарадњив

urednički podaci, okadranje, obuke

filtrirano— Само виђење

foundry/private/

3 — Условно отворен

Zatvoren izvorni kod, SaaS nije javno

ZABRANJENO— ekskluzivno privatni dataset

foundry/public/

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.

Повезани чланци