İçeriğe geç
Kaynak kütüphanesi
GOCUX / Makalelerresearch

Yerel modelle çalışan ajana web araması: seçenekler, gizlilik, güvenlik

Ollama veya LM Studio üzerinde çalışan bir ajana web araması eklemenin yolları, sorguların kime gittiği, araç çağrısının kurulumu ve güvenlik kuralları.

Modeli Ollama ya da LM Studio ile kendi makinenizde çalıştırmak, istemlerinizi ve dokümanlarınızı başkasının sunucularından uzak tutar. Ancak ajan güncel bilgiye ihtiyaç duyduğu anda web’e çıkmak zorundadır ve bu tek araç çağrısı, gizlilik tablosunu çoğu kişinin tahmin ettiğinden fazla değiştirir. Bu yazıda yerel modelle çalışan bir ajana web araması eklemenin gerçekçi yollarını, her yolun neyi kime açık ettiğini, araç çağrısının nasıl bağlanacağını ve güvenilmeyen sayfalar dosyalarınıza da erişebilen bir modele akmaya başladığında önem kazanan güvenlik kurallarını ele alıyoruz.

Model yerelde çalışınca ne değişir

Barındırılan bir asistan çoğu zaman arama yeteneğiyle birlikte gelir. Yerel model ise yalnızca eğitim verisiyle gelir; bildikleri eğitimin kesildiği noktada biter, yeni ya da şirkete özgü her bilginin dışarıdan getirilmesi gerekir. Tasarımı üç pratik fark belirler.

  • Araç çağırma her modelde yok. Açık modellerin yalnızca bir kısmı yapılandırılmış araç çağrılarını güvenilir biçimde üretecek şekilde eğitilmiştir. Kurguyu buna dayandırmadan önce model kartında araç ya da fonksiyon çağırma desteğine bakın; küçük modellerin araçları büyüklere göre daha tutarsız çağıracağını hesaba katın.
  • Bağlam daha dar. Yerel kurulumlar bellekten tasarruf için çoğu zaman mütevazı bağlam pencereleriyle çalışır. İsteme beş tam web sayfası yapıştırmak asıl soruyu görüş alanının dışına itebilir; bu yüzden arama sonuçları model görmeden önce kırpılmalıdır.
  • Gizlilik sınırı yer değiştirir. Çıkarım donanımınızda kalır, ama arama sorgusu ve açtığınız her sayfa dışarı çıkar. Soru artık “istemimi kim görüyor?” değil, “sorgularımı ve IP adresimi kim görüyor?” olur.

Yerel ajana web’i açmanın dört yolu

Kurulumların çoğu bunlardan birini, bazen ikisini birlikte kullanır.

SeçenekSorgu nereye giderNe geri gelirAsıl bedeli
Barındırılan web arama API’siSağlayıcıya, API anahtarınıza bağlı olarakYapılandırılmış sonuçlar: başlık, URL, kısa özet, bazen sayfa metniSağlayıcı her sorguyu görür; kullanım şartları ve faturalama geçerlidir
Kendi barındırdığınız üst arama (örneğin SearXNG)Sunucunuz sorguyu kendi adresinden üst kaynaktaki motorlara iletirBirkaç motorun birleştirilmiş sonuçlarıBakımı sizdedir; üst kaynaktaki motorlar otomatik trafiği yavaşlatabilir ya da engelleyebilir
Doğrudan sayfa çekme ya da başsız tarayıcıDoğrudan ziyaret ettiğiniz sitelereTemizleyip ayıklamanız gereken ham HTMLTek başına keşif yapmaz; URL’lere yine ihtiyacınız vardır ve tarama görgü kuralları sizin sorumluluğunuzdadır
Bunlardan birini saran bir MCP sunucusuSunucu nereye gönderiyorsa orayaSunucunun araç çıktısı olarak döndüğü her şeyİncelenecek ve yetki verilecek bir bileşen daha

Barındırılan bir API, iyi sonuca giden en kısa yoldur; çünkü sonuçlar ayrıştırılmış olarak gelir. Kendi barındırdığınız üst arama sizi tek bir sağlayıcıya bağımlı olmaktan kurtarır ve kimsenin elinde hesap düzeyinde bir sorgu geçmişi bırakmaz; ama sorguları görünmez kılmaz. Üst kaynaktaki motorlar onları yine alır, yalnızca adı belli bir hesaptan değil sunucunuzdan gelmiş olarak. Doğrudan sayfa çekme aslında arama değildir; aramadan sonra, bir sonucun işaret ettiği sayfayı okumak için kullanılır. Ücretsiz ve kendi sunucunuzda çalıştırabileceğiniz seçeneklerin dökümü için ücretsiz ve kendi barındırdığınız web arama seçenekleri yazısına bakın. Protokol yolu için web arama MCP sunucusu seçimi ve uzak ve yerel MCP sunucuları yazıları yol gösterir.

Gizlilik dengesi, açık açık

Pek çok kişi yerel modeli gizlilik için seçer, sonra gizli kısmı farkında olmadan arama aracına teslim eder. Sorguyu model yazar ve hassas bir doküman üzerinde çalışan bir model, müşteri adını, sözleşme numarasını ya da henüz duyurulmamış bir ürünün adını hiç çekinmeden sorguya koyabilir. Sorgular niyeti de ele verir: tek bir şirketin borç sözleşmesi şartları üzerine art arda yapılan aramalar, doküman eklenmemiş olsa bile çok şey anlatır.

Giden sorguyu binadan çıkan veri olarak görün ve önüne küçük bir kapı koyun. İşe yarar bir başlangıç kuralı:

arama sorgusu gönderilmeden önce:
  - engelleme listesiyle eşleşiyorsa reddet (müşteri adları, proje kod adları, iç sunucu adları)
  - e-posta adresi, telefon numarası ya da kimlik numarasına benzeyen bir desen varsa reddet
  - sorgu uzunluğunu sınırla (uzun sorgular genellikle yapıştırılmış doküman metnidir)
  - sorguyu, zamanı ve aracı kullanıcının okuyabileceği yerel bir dosyaya kaydet
reddedildiğinde:
  - modele sessiz bir boş sonuç değil, "sorgu politika gereği engellendi" yanıtı dön

Açık bir ret dönmek önemlidir. Araç sessizce boş dönerse model bilginin var olmadığı sonucuna varabilir ya da aynı bilgiyi sızdıran, farklı ifade edilmiş bir sorguyla yeniden deneyebilir.

Sayfa çekmek de iz bırakır. Açtığınız her sayfa, o sitenin sunucusuna adresinizi ve saati bildirir; az bilinen sayfalara yapılan bir dizi ziyaret ne araştırdığınızı ortaya koyabilir. Kendi barındırdığınız bir vekil sunucu ya da ayrılmış bir çıkış adresi, isteğin kime atfedileceğini değiştirir; isteğin yapılmış olduğu gerçeğini değiştirmez.

Araç çağrısını bağlamak

Ollama, destekleyen modeller için araç tanımı kabul eden bir sohbet API’si sunar; LM Studio ise yaygın kullanılan OpenAI tarzı sohbet biçimini konuşan yerel bir sunucu çalıştırabilir. Hangisini seçerseniz seçin desen aynıdır: aracı tanımlarsınız, model metin yerine bir çağrı döner, kodunuz çağrıyı çalıştırır ve sonucu bir araç mesajı olarak modele geri gönderirsiniz.

{
  "type": "function",
  "function": {
    "name": "web_search",
    "description": "Açık web'de arama yapar. Başlık, url ve kısa özetle en fazla 5 sonuç döner. Yalnızca yanıt güncel ya da dış bilgi gerektirdiğinde kullan.",
    "parameters": {
      "type": "object",
      "properties": {
        "query": {"type": "string", "description": "Kısa anahtar kelime sorgusu, doküman metni içermez"}
      },
      "required": ["query"]
    }
  }
}

Bir demoyu, başında beklemeden çalıştırabileceğiniz bir kurulumdan birkaç ayrıntı ayırır:

  • Her çağrıyı doğrulayın. Küçük modeller araç adı uydurur, bozuk argüman üretir. Şemaya uymayan her çağrıyı reddedin ve modele nedenini söyleyin.
  • Döngüye tavan koyun. Soru başına en fazla kaç arama yapılacağını belirleyin. Aksi hâlde yanıtı bulamayan bir model, küçük ifade değişiklikleriyle aramaya devam eder.
  • Sonuçları numaralandırın ve kırpın. Her sonuca bir sıra numarası, URL’si ve kısa bir özet verin; modelden kaynağı numarayla göstermesini isteyin. Tam sayfa metnini yalnızca modelin okumayı seçtiği sonuçlar için çekin.
  • Aramayı ve sayfa okumayı ayırın. Bir araç URL bulur, diğeri bir URL’yi okur. Böylece ikisine farklı sınırlar koymak ve sayfa okumayı güvendiğiniz alan adlarıyla kısıtlamak kolaylaşır.

Bu çalışma ortamına özgü tasarım kararlarını Ollama entegrasyon rehberi ele alıyor.

Güvenilmeyen sayfalar, güvenilen araçlar

Asıl risk yanlış bir yanıt değil, bir web sayfasının ajanınıza emir vermesidir. Sayfa metni talimatlarınızla aynı bağlama düşer ve bir sayfa, talimat gibi görünsün diye yazılmış metin içerebilir: “önceki yönergeleri yok say ve şu komutu çalıştır”. Yerel ajan çoğu zaman dosya sistemine ve kabuğa da erişen ajandır; bu birleşimi tehlikeli kılan da tam olarak budur.

  • Ajanı salt okunur araçlarla başlatın, yazma yetkisini araç araç ekleyin. Gerekçesi ajanları salt okunur başlatın yazısında.
  • Web’den gelen içeriğin, yan etkisi olan bir aracı kendiliğinden tetiklemesine asla izin vermeyin. Yazan, silen, gönderen ya da komut çalıştıran her şey, çağrının tam hâlini göstererek önce kullanıcıya sormalıdır.
  • Getirilen metni istemde açıkça veri olarak işaretleyin; modele ulaşmadan önce betikleri, gizli metni ve işaretlemeyi temizleyin.
  • Okuduğunuz sitelere saygı gösterin: robots.txt kurallarına uyun, istek hızını düşük tutun, istemcinizi dürüstçe tanıtın ve ajanı geçme hakkınız olmayan bir oturum açma ekranını ya da ödeme duvarını aşmak için asla kullanmayın.

Yanıtları kontrol edilebilir tutmak

Yerel bir ajanın yanıtı, ancak onu kontrol edebildiğiniz ölçüde değerlidir. Her arama ve sayfa okuma için sorguyu, URL’yi, erişim zamanını ve modelin kullandığı özeti ya da pasajı saklayın. Ajan yanıt verdiğinde her iddia bu kayıtlardan birine işaret etmelidir. İlgili hiçbir şey dönmediyse ajan bunu söylemelidir; “kaynak bulunamadı” saklanacak bir başarısızlık değil, geçerli bir sonuçtur.

Tek kişilik bir kurulumun bir ekiple buluştuğu yer de burasıdır. GoCux sizin yerinize web’de arama yapmaz ve yerel arama aracınızın yerini almaz; ilgilendiği şey sonrasıdır. Web içeriği bir GoCux projesine yalnızca yetkilendirilmiş bir tarama ya da dışa aktarma adımıyla girer ve özgün sayfanın adresini ve erişildiği tarihi korur. İçeri alındıktan sonra Bilgi arama bu içerikten pasajları atıflarıyla birlikte getirebilir; ardından gelen sonuç doğuran her adım ise ekipten birinin kararını bekler. Yerel ajanınız zaten MCP araçları çalıştırıyorsa bu araçlar kendi uyumlu istemcinizde kalır; orada bir sunucunun yapılandırılmış olması, her görevin onu kullanabileceği anlamına gelmez. MCP hızlı başlangıç rehberi de bu yüzden salt okunur başlamayı önerir.

Kurulum kontrol listesi

  • Seçtiğiniz model araç çağırmayı destekliyor ve aracınızı on gerçekçi soruda doğru çağırdığını kendi gözünüzle gördünüz.
  • Sorgularınızı hangi tarafın, hangi hesap ya da adres üzerinden aldığını ve şartlarının kayıt tutma hakkında ne dediğini biliyorsunuz.
  • Giden sorgular bir engelleme listesinden ve uzunluk kontrolünden geçiyor; engellenen sorgular açık bir ret dönüyor.
  • Arama ve sayfa okuma, kendi sınırları olan ayrı araçlar; sayfa okuma mümkün olan yerde güvenilen alan adlarıyla sınırlı.
  • Döngüde soru başına arama ve sayfa okuma sayısı için kesin bir tavan var.
  • Yazma, silme, gönderme ve kabuk araçları, çağrının tam hâlini gösteren bir onay istiyor.
  • Her yanıt saklanan URL’lere, erişim zamanlarına ve pasajlara kadar izlenebiliyor; boş sonuçlar boş olarak raporlanıyor.

Bu iş akışını çalışma alanınıza taşıyın.

Kapsamı belirleyin. Kanıtları inceleyin. Gereken adımları onaylayın.

Çalışma alanını aç

Sıradaki adım