Agent denetim (audit log)
Diğer adlandırmalar: audit log , denetim kaydı , agent log
Tanım
Agent denetim — audit log, bir agent’ın aldığı her önemli kararın geriye dönük doğrulanabilir kaydıdır. Sadece “şu oldu” demez; “şu, şu nedenle, şu kişi tarafından, şu kanıtla oldu” der.
Üç teknik özellik:
- Hash zinciri — her kayıt önceki kaydın hash’ini içerir. Bir kayıt değiştirilirse zincir bozulur.
- ECDSA imzası — her kayıt kullanıcının özel anahtarıyla imzalanır. Tahrifat tespiti.
- Bellek dışında saklanır — agent’ın belleğine yazılmaz; ayrı bir sandbox-dışı SQLite veritabanında kalır. Sandbox bozulsa bile log korunur.
Hangi olaylar kaydedilir?
Ilura’da aşağıdaki olaylar audit log’a yazılır:
- Tool çağrısı — agent bir araç (dosya, takvim, mail, API) kullandı.
- Onay/red — kullanıcı bir agent önerisini onayladı veya reddetti.
- Eğitim seansı — eğitmen modele veri gönderildi (özet + onaylı örnek listesi).
- Bellek değişimi — kalıcı bellek kaydı eklendi/silindi/güncellendi.
- Dış API çağrısı — bulut LLM’e veya başka bir API’ya istek.
- Politika ihlali girişimi — agent yasaklı bir tool çağırmaya çalıştı (PolicyEngine reddetti).
- Lisans olayları — lisans yenileme, başarısız doğrulama.
Her olay JSON olarak yapılandırılır:
{
"event_id": "01J9X...",
"timestamp": "2026-04-30T14:23:11.471Z",
"actor": "user|agent|system",
"action": "tool_call|approval|train|...",
"agent_id": "naci",
"data_summary": "fatura ön-inceleme: 2024/12345",
"data_categories": ["dosya_referans"],
"policy_decision": "auto_approved",
"prev_hash": "ab12...",
"current_hash": "cd34...",
"signature": "MEUC..."
}
Önemli: kişisel verinin kendisi log’a girmez — sadece referansı. Bir fatura PDF’ini agent okuduysa, log “X dosyasını okudu” der; PDF içeriği yerel bellekte kalır.
Hash zinciri nasıl çalışır?
Her yeni kayıt önceki kaydın current_hash’ini prev_hash olarak alır:
kayıt 1: prev=null, current=H(kayıt 1 alanları)
kayıt 2: prev=current₁, current=H(kayıt 2 + prev)
kayıt 3: prev=current₂, current=H(kayıt 3 + prev)
...
Eğer biri kayıt 2’yi değiştirirse:
- Yeni
current₂'hesaplanır → kayıt 3’ünprevile uyuşmaz. - Zincir bozulur.
- Tezgah’ın audit panelinde
verify_chain()fonksiyonu uyarı verir.
Bu yapı append-only — eklenebilir ama değiştirilemez. Bitcoin’in blockchain’i ile aynı prensip, ama tek-kullanıcı amaçlı.
ECDSA imzası
Her kayıt P-256 ECDSA özel anahtarıyla imzalanır. Bu anahtar:
- macOS — Keychain’de Secure Enclave korumasıyla
- Windows — Credential Manager’da DPAPI ile
- Linux — Secret Service (GNOME Keyring / KWallet) ile
Anahtar Ilura kullanıcısının cihazında üretilir. Public key audit log’a embed edilir; doğrulama herkes tarafından yapılabilir.
İmzalı kayıt: bir kararın kim tarafından üretildiği hukuki kalitede kanıtlanır. Mahkemede e-imza yasası kapsamında delil olarak kullanılabilir.
KVKK ile bağlantı
KVKK m.12 (veri güvenliği) uygun teknik tedbirler ister. Audit log buna karşılık gelir:
- Bütünlük — hash zinciri tahrifatı tespit eder
- Kimlik tespiti — ECDSA imzası kim sorusunu cevaplar
- Hesap verebilirlik — hangi karar, ne zaman, ne için
- Geri izlenebilirlik — bir veriyi alan zincirde takip et
KVKK denetiminde “bu işlemin meşru hukuki temeli neydi?” sorusuna kanıtlanabilir cevap verir.
Audit panel
Tezgah’ta Geçmiş sayfasında audit log’u doğrudan inceleyebilirsin:
- Filtre: tarih, agent, action tipi, sonuç
- Detay: tek bir olayın tüm alanları
- Doğrulama: zincir bütünlük testi
- Dışa aktarma: JSON, PDF rapor (KVKK denetim için)
Yaygın yanılgılar
“Audit log = bellek kopyası.” — Hayır. Bellek veri içerir; audit log olay referansı. Bellek silinebilir, audit log silinmez (sadece TTL bittiğinde).
“Hash zinciri kayda hız ekler.” — Çok az. Her kayıt 1-2 ms ek; %0.5’in altında performans etkisi.
“İmzalı log gizliliği bozar.” — Hayır. İmza hash üzerinde — veri içeriği üzerinde değil. İmza, sadece kayıdın değişmediğini kanıtlar.