OpenClaw Veriyi Nerede Tutuyor? SQLite mi Kullanıyor, Yoksa Sadece Dosya Sistemi mi?

OpenClaw, LLM ajanlarının web üzerinde gerçek işlemler yapmasını sağlayan bir mimariye sahip: sayfaları açmak, formları doldurmak, butonlara tıklamak, hatta alışveriş yapmak gibi. Ancak OpenClaw ile çalışmaya başlayan birçok geliştiricinin ilk sorduğu sorulardan biri şu oluyor:

OpenClaw bir veritabanı mı kullanıyor? Örneğin SQLite veya Postgres?

Kısa cevap: Hayır. Varsayılan olarak OpenClaw herhangi bir veritabanı kullanmaz.

Bunun yerine sistem büyük ölçüde dosya sistemi (filesystem) ve geçici bellek (RAM) üzerine kuruludur.

Bu yazıda OpenClaw’ın veri ve “memory” mimarisini detaylı şekilde inceleyeceğiz.


OpenClaw’da Bellek (Memory) Nasıl Çalışır?

Bir OpenClaw ajanı çalıştığında, görev sırasında ihtiyaç duyduğu tüm bilgileri RAM içinde tutar.

Örneğin bir ajan bir domain satın almaya çalışıyorsa, süreç boyunca şu tür bilgiler tutulabilir:

  • hedef (goal)
  • yapılan aksiyonlar
  • sayfa gözlemleri
  • çıkarılan bilgiler

Basitleştirilmiş bir örnek:

memory = {
"goal": "buy domain example.com",
"observations": [...],
"actions": [...],
"extracted_data": {...}
}

Bu veri yapısı sadece ajan çalıştığı sürece vardır.

Ajan durduğunda veya süreç bittiğinde bu bellek silinir.

Yani OpenClaw’da varsayılan olarak kalıcı agent memory yoktur.


OpenClaw’ın Asıl Depolama Yöntemi: Dosya Sistemi

Her ajan çalıştırması bir run olarak kaydedilir.

Genellikle klasör yapısı şöyle olur:

runs/
run_001/
steps.json
screenshots/
dom_snapshots/
logs.txt

Bu klasörlerde şu tür veriler saklanır:

1. Action Logları

Ajanın attığı her adım JSON olarak kaydedilir.

Örnek:

[
{
"step": 1,
"action": "navigate",
"url": "https://namecheap.com"
},
{
"step": 2,
"action": "type",
"selector": "#domain",
"text": "example.com"
}
]

2. Ekran Görüntüleri

Her adımda sayfanın screenshot’u alınabilir:

runs/run_001/screenshots/step_03.png

Bu sayede geliştirici ajan davranışını debug edebilir.


3. DOM Snapshotları

Sayfanın HTML/DOM yapısı da kaydedilebilir:

runs/run_001/dom_snapshots/step_03.html

Bu, LLM’in gördüğü ortamı yeniden incelemeyi sağlar.


4. Log Dosyaları

Ajanın reasoning süreci ve hatalar loglanır:

runs/run_001/logs.txt

OpenClaw Neden Veritabanı Kullanmaz?

Bu tercih bilinçli yapılmış bir tasarım kararıdır.

Başlıca sebepler:

1. Basitlik

Hiçbir veritabanı bağımlılığı yoktur.

Kurulum çok kolaydır.

git clone
pip install
run

2. Reproducibility

Her ajan çalışması tamamen yeniden oynatılabilir.

Tüm adımlar disk üzerinde vardır.

Bu da ajan davranışlarını incelemeyi kolaylaştırır.


3. Debugging Kolaylığı

Bir ajan hata yaptığında geliştirici:

  • screenshot
  • DOM
  • log
  • aksiyon geçmişi

hepsini görebilir.


OpenClaw’ın Eksik Olduğu Nokta: Kalıcı Memory

Varsayılan mimaride OpenClaw şu yeteneklere sahip değildir:

  • ajan geçmiş görevleri hatırlamaz
  • kullanıcı profili yoktur
  • uzun vadeli bilgi saklanmaz
  • semantik arama yapılmaz

Örneğin:

“Geçen hafta hangi sitelerden domain satın aldım?”

Bu tür soruların cevabı sistemde tutulmaz.

Her ajan çalışması stateless kabul edilir.


Geliştiriciler OpenClaw’ı Nasıl Genişletiyor?

Gerçek projelerde geliştiriciler genellikle OpenClaw’ın üstüne ek katmanlar kurar.

En yaygın üç yaklaşım:


1. SQLite

Küçük projeler için:

agent_memory.db

Tablolar:

  • tasks
  • actions
  • observations

Bu sayede ajan geçmişini saklamak mümkün olur.


2. Redis

Çoklu ajan sistemlerinde:

  • task queue
  • shared memory
  • agent coordination

için Redis kullanılır.


3. Vector Database

Semantic memory için:

  • Qdrant
  • Chroma
  • Weaviate

Bu sayede ajanlar şu tür sorular sorabilir:

“Bu siteyi daha önce görmüş müydüm?”


Önerilen Gelişmiş Mimari

Gelişmiş bir OpenClaw sistemi genellikle şöyle görünür:

Agent


Memory Layer

├ SQLite (structured memory)
├ Vector DB (semantic memory)
└ Filesystem (artifacts)

Böylece hem debug artefactları hem de uzun vadeli memory saklanabilir.


Sonuç

OpenClaw’ın varsayılan mimarisi oldukça minimaldir:

BileşenDepolama
Agent memoryRAM
LogsFilesystem
ScreenshotsFilesystem
DOM snapshotsFilesystem
Persistent memoryyok

Yani OpenClaw veritabanı yerine dosya sistemi ve geçici bellek kullanır.

Bu yaklaşım:

  • kurulumu kolaylaştırır
  • debugging’i iyileştirir
  • ancak kalıcı memory gerektiren sistemlerde ek mimari katmanlar gerektirir.

Comments

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir