Sverklo, yerel olarak barındırılan bir kod arama sunucusu olarak, artık geliştiricilerin bir yapay zeka ajanı sonuç üzerinde işlem yapmadan önce, dosya keşfinden sembol grafiği akıl yürütmesine kadar bir sorgunun her adımını incelemesine olanak tanıyor.
Mevcut kodlama ajanları neden zorlanıyor
Çoğu kod üretme aracı, bir depoyu dev bir metin yığını gibi ele alır. Kod parçacıklarını gömer (embed), bir benzerlik araması yapar ve en yüksek puanlı parçacığı döndürür. Parçacık güncelliğini yitirmişse, kapsam dışındaysa veya sadece bir dosya adından ibaretse, ajan kaynağını gösteremez. Buradaki hata modu eksik bir kelime değil; bir bilginin nereden geldiğini ve hâlâ geçerli olup olmadığını insana söyleyen eksik bir bağlam katmanıdır.
Sverklo’nun dört katmanlı doğrulama modeli
Sverklo, geleneksel aramayı yapısal analizle katmanlandıran bir "mühendislik hipotezi" sunucusu olarak konumlanır:
- Dosya Keşfi (File Discovery) – İndeks,
.gitignoreve diğer yoksayma dosyalarını okur. Bir sonuca güvenmeden önce, hangi yolların gerçekten tarandığını görmek için indeksi sorgulayabilirsiniz. - Kod Yapısı (Code Structure) – Semboller; tanımları, içe aktarmaları (imports) ve çağrı ilişkilerini kaydeden bir grafikte yaşar. Bir arama sadece bir dosya yolu değil, sembol nesnesini döndürür; böylece doğru API yüzeyine atıfta bulunulduğunu teyit edebilirsiniz.
- Bağlam Sunumu (Context Delivery) – Bir token bütçesi belirlediğinizde, Sverklo cevaba katkıda bulunan kod parçacıklarının bir haritasını döndürür. Bu harita, eşleşmenin BM25 anahtar kelime eşleşmesinden mi, ONNX tabanlı gömmelerden (embeddings) mi yoksa PageRank sıralamalı sembol grafiğinden mi geldiğini belirten bir
found_byalanı içerir. - Bellek Defteri (Memory Ledger) – Sunucu her kararı günlüğe kaydeder. Bir dosya değişirse, defter ilgili bellek kaydını güncelliğini yitirmiş olarak işaretler ve önbelleğe alınan cevabın hâlâ geçerli olup olmadığını gösterir.
Getirme yığını (retrieval stack) nasıl çalışır
Sverklo yalnızca gömmelere (embeddings) güvenmez. Tam terim eşleşmeleri için klasik bir BM25 anahtar kelime motoru çalıştırır, bu sonuçları anlamsal benzerlik için ONNX tabanlı vektör gömmeleriyle zenginleştirir ve ardından yüksek etkili tanımları öne çıkarmak için sembol grafiği üzerinde bir PageRank algoritması uygular. Her bir sonucun hangi yöntemle üretildiğini açığa çıkararak, geliştiriciler uyuşmazlıkları —örneğin, gömme modelinin ilgisiz bulduğu bir BM25 eşleşmesini— fark edebilir ve hangi sinyale güveneceklerini seçebilirler.
Pratik kullanımlar
- Tanınmayan kod tabanlarını keşfetme – Manuel olarak grep yapmaya gerek kalmadan bir fonksiyon adından tüm çağrıcılarına geçiş yapın.
- Bağımlılık grafiklerini haritalama – Birden fazla paketi kapsayan içe aktarma zincirlerini görselleştirin.
- Refaktör etkisini tahmin etme – Belirli bir dosya değiştiğinde hangi sembollerin bozulacağını görün.
- Anlamsal soruları yanıtlama – "Bu yardımcı fonksiyon ne işe yarar?" diye sorun ve kaynak gösterilmiş, öz bir alıntı alın.
Dikkat edilmesi gereken tuzaklar
- Güncellik – Yeniden indeksleme tamamlanmış olsa bile indeks zaman damgası eski kalabilir. En son çalışmanın güncel olduğunu varsaymak yerine her zaman
index-statusuç noktasını sorgulayın. - Proje kaydı – Bir projeyi kayıttan çıkarırken, mutlak dosya sistemi yolu yerine Sverklo tarafından sağlanan dahili proje adını kullanın; aksi takdirde işlem sessizce başarısız olacaktır.
- Araç adlandırma tuhaflıkları – MCP ana bilgisayarları bazen proje adını iki kez başa ekleyerek
sverklo_sverklo_impactgibi tanımlayıcılar oluşturabilir. Bir aracı çağırmadan önce ismi mutlaka kontrol edin.
Sırada ne var?
- Geçici bir depoyu klonlayın ve Sverklo'yu yerel olarak çalıştırın.
- Basit bir sembol araması yapın ve
found_byalanını inceleyin. - Bir kaynak dosyayı değiştirin ve aramayı yeniden çalıştırın; bellek defterinin güncelliğini yitirmiş kaydı nasıl işaretlediğine dikkat edin.
- Güncelliğini yitirmiş indeksleri otomatik olarak yakalamak için
index-statuskontrolünü derleme betiğinize (build script) entegre edin.
Özet
Sverklo, bir kod arama motorunu denetlenebilir bir kanıt zincirine dönüştürür. Geliştiricileri dosya kapsamını, sembol doğruluğunu, getirme yöntemini ve bellek güncelliğini doğrulamaya zorlayarak, yapay zeka destekli bir önerinin üretim ortamına ulaşmadan önce güvenilir olup olmadığına karar vermelerini sağlar.
