sözlük girişi A · agent-denetim 4 dk okuma

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:

  1. Hash zinciri — her kayıt önceki kaydın hash’ini içerir. Bir kayıt değiştirilirse zincir bozulur.
  2. ECDSA imzası — her kayıt kullanıcının özel anahtarıyla imzalanır. Tahrifat tespiti.
  3. 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’ün prev ile 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.

Sıkça sorulanlar

Audit log neyi kaydeder?
Her ‘karar’ olayı: agent'ın aldığı bir tool çağrısı, kullanıcı onay/red kararı, eğitmen istek/cevap eşleşmesi, bellek değişikliği, dış API çağrısı. Veri içeriği değil — karar ve referansı.
Hash zinciri neden gerekli?
Bir kayıt değiştirilirse zincir kırılır. Geriye dönük tahrifat önlenir. Bu KVKK m.12 (veri güvenliği — bütünlük) ilkesinin teknik karşılığıdır.
İmzalı kayıt ne sağlar?
ECDSA P-256 imzası bir kaydın kim tarafından oluşturulduğunu hukuki kalitede kanıtlar. Mahkemede delil olarak kullanılabilecek bir yapıdır.
Audit log ne kadar tutulur?
Sen belirlersin. KVKK için 5 yıllık varsayılan; senin ihtiyacına göre 1 yıldan 10 yıla. Otomatik silme zamanlayıcısı çalışır.
Kayıt çok yer kaplar mı?
Bir karar yaklaşık 500 byte. Ay başına 10.000 karar = 5 MB. Yıllık 60 MB. SQLite veritabanında sıkıştırılarak saklanır.