Geçen ay Kadıköy’de bir kafede oturuyordum. Önümdeki dizüstü ekranında açık kalan Telegram bildirimine takıldım — karşı masadaki adam resmen telefonundan kendi kendine çalışan bir analiz sistemi yönetiyordu; birkaç komut yazıyor, saniyeler içinde IP, alan adı ve sosyal medya izi dökülüyordu ekrana. O an aklımdan şu geçti: “İşte bu.” Sadece otomasyon değil… asıl mesele verinin nereye gittiği.
İnanın, Bu yazıda neredeyse tamamen yerelde çalışan bir OSINT ajanı fikrini masaya yatırıyorum. Hani buluta tek satır veri yollamadan, API anahtarı peşinde koşmadan, dış servislere boyun eğmeden çalışan türden bir yapı var ya — işte tam olarak ondan bahsediyorum. Konu teknik, ama anlatımı sade tutacağım; çünkü — ki bu tartışılır — bu tarz sistemler kağıt üstünde havalı duruyor, pratikte ise ciddi ince ayar istiyor. Biraz pişmesi lazım yani.
İşte tam da bu noktada devreye giriyor.
Neden herkes “yerel” tarafa dönüyor?
İşin aslı şu: güvenlik ekipleri artık buluta körü körüne güvenmiyor. IP adresi mi sorgulayacaksın? Domain geçmişine mi bakacaksın? Bir kullanıcı adını platformlar arasında eşleştirecek misin? Bunların hepsini üçüncü taraf API’lere taşımak, bazı kurumlarda direkt kırmızı çizgi oluyor — hele finans, savunma ya da kritik altyapı tarafında çalışıyorsan, konuşmanın tonu bile değişiyor adeta — bence çok yerinde bir karar —
Benzer bir tabloyu 2023’ün sonlarında İstanbul’daki küçük bir siber güvenlik ekibinde görmüştüm. Ekip lideri bana şunu demişti: “Dış servise attığımız her sorgu bize ekstra risk olarak dönüyor.” Haklıydı. Çünkü analiz ettiğin şey bazen sadece teknik veri olmuyor; müşteri ismi çıkıyor, e-posta kalıbı çıkıyor, hatta iç süreçleri ele veren izler beliriyor ortaya.
Evet, doğru duydunuz.
Yerel model kullanınca tablo biraz rahatlıyor. Veri senin makinende kalıyor, cache senin kontrolünde, log’un nerede tutulacağını sen seçiyorsun. Tabii bu sihir değil — modelin gücü sınırlı olabilir, donanım maliyeti çıkabilir ve bazı görevlerde cloud servis kadar pürüzsüz davranmayabilir. Ama mahremiyet açısından kazanç oldukça net.
Bulutun rahatlığına karşı yerelin sertliği
Bulut hızlıdır, kabul. Kurarsın, çalışır, ilk gün mutlu edersin seni. Fakat sonra kullanım artar… fatura gelir… sonra güvenlik ekibi sorar: “Bu veriler tam olarak nereye gitti?” Yerel kurulumda o soru çok daha az can yakıyor. Cevap basit: içeride kaldı.
Bu projeyi editör masasında ilk okuduğumda hemen kendi test ortamım geldi aklıma. Geçen yıl Ankara’da ev lab’ımda ben de benzer lokal LLM denemeleri yapmıştım; en büyük fark şuydu — performans iyi olsa bile entegrasyonlar saç baş yoldurabiliyor. Hele bir de sürekli çalışan işler için stabilite şart, bunu öğrendim o süreçte.
Ajan ne yapıyor? Gösterişli değilse de işe yarıyor
Bu tip sistemlerin güzelliği tam şurada: tek tek komutlar halinde çalışıyor. Arkada bütünlüklü bir iş akışı oluşturuyor (yanlış duymadınız). Telegram üzerinden komut alıyor, ilgili aracı çağırıyor, sonucu önbellekten kontrol ediyor. Gerekirse modeli devreye sokup insan diliyle özetliyor. Basit gibi görünüyor. Ama değil. Daha fazla bilgi için En Hızlı Sıralama Hangisi?: Cevap Donanıma Bağlı yazımıza bakabilirsiniz.
Hani, Bana göre en iyi tarafı şu: kullanıcı deneyimi karmaşık değil. Yani terminal açıp onlarca script koşturmak yerine telefondan birkaç komutla sonuç alıyorsun — küçük ekipler için bu bayağı rahatlatıcı, özellikle sahada gezen analistler için tam cep tipi çözüm gibi duruyor.
Bir dakika — bununla bitmedi.
- /analizza_profilo @username: Profil özeti ve AI yorumu
- /whois domain.com: WHOIS + DNS kaydı + yorum
- /ip 1.2.3.4: Konumlandırma, ASN ve ISP bilgisi
- /email info@x.com: MX kayıtları ve alan adı analizi
- /chiedi…: Serbest soru-cevap modu
Bilmem anlatabiliyor muyum, Ha, bu arada Instagram tarafındaki özellikler dikkat çekici — ama orada da sınırlar var. Auth isteyen hikaye indirme gibi şeyler pratikte uğraştırabiliyor. Kağıt üstünde süper görünür, gerçek hayatta platform değişikliği yüzünden sık sık kırılabilir. Denedim, biliyorum.
Yerel OSINT ajanlarının asıl değeri hızdan çok kontrolde yatıyor; veri dışarı çıkmıyor, cache sana ait kalıyor ve hangi sorgunun ne yaptığını daha net görüyorsun.
Mimariyi kurarken neler kullanılmış?
Sistemin omurgasında Python var. Şaşırtıcı değil — böyle işler için hala en esnek dil o. LangChain katmanı orkestrasyonu sağlıyor, Ollama ise modeli yerelde servis ediyor. Qwen3.5 14B’nin Q6_K quantization ile çalıştırılması bence mantıklı bir tercih olmuş; ham model gücünü koruyup bellek yükünü dengeliyor çünkü (bu konuda ikircikliyim). Bir de düşünme modu kapatılmış — doğru karar bu kullanım senaryosunda, çünkü uzun düşünme zinciri her zaman fayda getirmiyor, bazen sadece gecikme ekliyor. Bu konuyla ilgili Vercel Faturası Gelince: Startuplar Neyi Geç Fark Ediyor? yazımıza da göz atmanızı tavsiye ederim.
| Bileşen | Rolü | Neden önemli? |
|---|---|---|
| python-telegram-bot | Kullanıcı arayüzü | Cep telefonu üzerinden erişim veriyor |
| LangChain / LangChain-Ollama | Ajan orkestrasyonu + model bağlantısı | Araç çağrılarını düzenli hale getiriyor |
| SQLite | Önbellek / geçmiş saklama | Aynı sorguyu tekrar tekrar yapmayı azaltıyor |
| Tor / dış servisler | Erişim katmanı / kaynak toplama desteği | Daha geniş kapsamlı analiz sağlıyor ama dikkat istiyor |
Neyse, uzatmayalım. Mimarinin güzel yani modüler olması — bir parçayı çıkarıp başka araç koyabiliyorsun. Mesela SQLite yerine Postgres geçmek mümkün, ya da Matplotlib yerine daha interaktif grafik üretimi düşünebilirdin. Ama dürüst olayım: küçük homelab için mevcut kombinasyon gayet yeterli görünüyor. Fazla mühendislik yapmaya gerek yok.
Kod tarafında düzen nasıl kurulmuş?
def handle_query(query):
cached = db.get(query)
if cached:
return cached
result = run_osint_tools(query)
summary = llm.summarize(result)
db.save(query, result)
return summary
Kod bloğu basit görünüyor diye aldanmayın. Asıl mesele hata yönetimi, zaman aşımı, yeniden deneme politikası ve araçlardan gelen çıktıyı normalize etmekte yatıyor — bunları es geçersen sistem ilk gerçek sorguda sarsılır. Bir startup’ta bunu hızlıca ayağa kaldırırsın; enterprise seviyede ise log standardı, rol tabanlı erişim, denetim izi gibi konular hemen masaya gelir. Farklı dünyalar yani.
Peki dayanıklı yani ne, zayıf yani ne?
Bence en dayanıklı taraf sadece gizlilik hissi değil — operasyonel özgürlük de veriyor. API kotası bitmedi mi derdin yok, harici sağlayıcı çöktü mü derdin yok, “bu veri kimin sunucusuna gitti” sorusu da büyük ölçüde ortadan kalkıyor. Fena değil yani. Hatta ciddi avantaj. 4 GB GPU’da Sesle Çalışan Yerel Yapay Zekâ: Sınırlar, Hileler, Gerçekler yazımızda bu konuya da değinmiştik.
Zayıf tarafta ise bakım yükü var. Model güncellemesi ayrı dert, araç entegrasyonu ayrı dert, Telegram bot token yönetimi ayrı dert… Bir noktadan sonra proje hobi olmaktan çıkıp mini ürün haline geliyor. İşte tam burada birçok kişi motivasyonu kaybediyor. Tanıdık bir his.
Küçük ekip ile kurumsal ekip aynı şeyi farklı yaşar
Küçük bir startup için böyle bir sistem hız kazandırır. Tek kişi bile pek çok akışı yönetebilir; özellikle araştırma ağırlıklı işlerde elini güçlendirir gerçekten. Ama enterprise dünyada işler değişir: veri sınıflandırması gerekir, yetkilendirme gerekir, bazı araçların kullanımına hukuk bile karışır (bu konuda ikircikliyim). Yani aynı oyuncak iki yerde bambaşka oyuna dönüşür (şaşırtıcı ama gerçek)
Nerede gerçekten parlıyor?
Bana göre bu ajan en çok üç yerde parlıyor: ilk temas analizi, tekrar eden araştırmalar ve mobil erişim ihtiyacı olan durumlar. Mesela saha çalışanının ofise dönmeden hızlı özet alması gerekiyorsa çok iş görüyor. Ya da SOC ekibi sabah vardiya tesliminde belli göstergeleri tek yerden görmek istiyorsa bayağı pratik — bunu söyleyebilirim rahatlıkla.
Aslında, Geçen sene İzmir’de tanıştığım bir arkadaşım buna benzer lokal otomasyon kurmuştu (ki bu çoğu kişinin gözünden kaçıyor). Üç ay sonunda manuel kontrolleri ciddi biçimde azaltmıştı. Rakam da söylemişti: yaklaşık %40 zaman tasarrufu. Doğruysa etkileyici, yalan söylemez gibi görünüyordu adamcağız. Express.js Güvenlik Testinde Dört Araç Birbirini Nasıl Doğruladı? yazımızda da bu konuya değinmiştik. 2026’da Kod Asistanı Seçimi: Tek Araç Değil, Set yazımızda da bu konuya değinmiştik.
Benden küçük notlar ve sahadaki gerçeklik
Editör gözüyle baktığımda şu ayrıntılar önemli geliyor: bu tip projeler demo’da harika görünür. Sürdürülebilirlik testi asıl sınavdır. Ben geçen yıl ev laboratuvarımda benzer bir Telegram botunu gece boyunca açık bırakmıştım — sabah kalktığımda log dosyası resmen şişmişti (buna dikkat edin). O yüzden “24/7 çalışacak” iddiasını ciddiye almak gerekiyor; watchdog mekanizması yoksa sistem gece yarısı sessizce düşebilir. Dur bir saniye — aslında burada asıl kahraman model değil, işletim disiplini.
Sıkça Sorulan Sorular
h2>
Lokal OSINT ajanı kurmak yasal mı?
h3>
h3>
Açıkçası, Evet, ancak yalnızca yetkili olduğunuz hedeflerde kullanmanız gerekir.
Yetkisiz tarama veya profil analizi birçok ülkede hukuki sorun yaratabilir.
Kısacası izin yoksa devam etmeyin.
” (buna dikkat edin)
Böyle bir sistem için güçlü GPU şart mı?
h3>
Zorunlu değil. Yardımcı olur.
14B sınıfı modeller yerelde çalıştırılırken RAM/GPU dengesi önem kazanır;
daha küçük donanımla da yapılır fakat hız düşebilir.
Tegamram yerine neden Telegram tercih edilir?
h3>
İtiraf edeyim, Kullanımı kolay olduğu için çoğu kişi Telegram’a yönelir.
Mobil bildirim almak pratik olur;
komut tabanlı kullanım da oldukça rahattır.
SQLite yeterli olur mu?
h3>
Küçük ve orta ölçekli kurulumlarda çoğu zaman evet.
Ama trafik büyürse veya eşzamanlılık artarsa Postgres gibi çözümler daha uygun hale gelir.”
“
Kaynaklar ve İleri Okuma
h2>
- Orijinal yazının bulunduğu DEV.to paylaşımı
- python-telegram-bot resmi sitesi
- LangChain dokümantasyonu
- Ollama resmi sitesi
- Qwen GitHub deposu
“
- python-telegram-bot resmi sitesi
Bu içerik işinize yaradı mı?
Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.



