VPS uzerinde kendi yapay zeka ajanini gelistirme rehberi
Kendi yapay zeka ajaninizi sifirdan nasil kodlayacaginizi ogrenin. Dil modeli donguleri, arac kullanimi, MCP entegrasyonu ve bellek yonetimi gibi temel kavramlari kesfedin.
Yapay zeka ajanı nedir
Yapay zeka ajanı, bir dil modelinin etrafına sarılmış bir döngüdür. Model durumu okur, bir eyleme karar verir, kodunuz bu eylemi gerçekleştirir, sonuç modele geri döner ve görev tamamlanana kadar döngü tekrar çalışır. Tüm fikir bundan ibarettir. Basit bir sohbet botu bir kez yanıt verir ve durur. Bir ajan ise, sizden aldığı hedefe ulaşana kadar kendi sıraları arasında gerçek eylemler gerçekleştirerek çalışmaya devam eder. Bu döngü, bir öğleden sonra kendi başınıza yazabileceğiniz kadar küçüktür; sıfırdan ajan öğrenmek için aşamalı bir yol burada başlar, ardından üzerine araçlar, bellek ve güvenlik katmanları eklenir.
Eylem, işin önemli kısmıdır. Kendi başına bir dil modeli yalnızca metin üretir. Bir dosyayı okuyamaz, bir API'yi çağıramaz veya bir komut çalıştıramaz. Bir ajan, modele kullanmasına izin verilen bir araç seti ve bu araçları talep etmesi için bir yöntem sunar. Model internette arama yapmak veya bir dosya yazmak istediğinde, işi kendisi yapmaz. Yapılandırılmış bir istek gönderir, kodunuz aracı çalıştırır ve yanıt, modelin okuduğu bir sonraki girdi olarak geri döner. Kararı model verir; sunucunuz ise elleri sağlar.
Her görev bir ajan gerektirmez ve varsayılan olarak bir ajana başvurmak yaygın bir hatadır. Adımlar önceden biliniyorsa, basit bir betik daha basit, daha hızlı ve daha güvenilirdir. "Bu sayfayı her saat başı getir ve fiyatı bana e-posta ile gönder" bir zamanlanmış görevdir, ajan değildir. Yolu önceden sabitlenmemişse, modelin bulduklarına bakıp bir sonraki adımda ne yapacağına karar vermesi gerekiyorsa bir ajan oluşturun. Bir ajanın maliyeti öngörülemezliktir, bu nedenle bu maliyeti yalnızca esneklik sağladığı faydaya değdiğinde ödeyin.
Araçlar: bir aracı nasıl hareket eder
Araç, modele sunduğunuz ve ne zaman kullanacağını bilmesi için yeterince iyi tanımlanmış her türlü yetenektir. Bir dosya okumak, bir shell komutu çalıştırmak, bir veritabanını sorgulamak, bir mesaj göndermek: her biri bir isim, kısa bir açıklama ve girdi listesine sahip bir araçtır. Araçları siz tanımlarsınız; model ise onları ne zaman çağıracağına karar verir. Web araması genellikle eklenmeye değer ilk araçtır ve eğer kendi SearXNG örneğinizi çalıştırıyorsanız, ticari bir arama API'sine ücret ödemek yerine onu aracının arama altyapısına dönüştürebilirsiniz.
Kullandığınız model ne olursa olsun, mekanizma her yerde aynıdır. Model, bir aracı isimlendiren ve girdilerini dolduran yapılandırılmış bir istek döndürür. Kodunuz bu isteği görür, eşleşen fonksiyonu çalıştırır ve sonucu bir sonraki adımda geri gönderir. Model sonucu okur ve ya başka bir araç çağırır ya da nihai cevabını yazar. Fonksiyon çağırma, her aracının altındaki tesisattır ve onu çalıştıran döngü sadece birkaç satırlık sıradan bir koddan ibarettir.
Kontrolünüzün bulunduğu yer de burasıdır. Model bir komut çalıştırmayı isteyebilir, ancak kodunuz çalıştırmayı seçene kadar hiçbir şey çalışmaz. Bu boşluk, tehlikeli eylemler için onay istemlerini, bir aracın nelere erişebileceğine dair sınırları ve aracının yaptığı her şeyin günlüğünü koyduğunuz yerdir. Bir aracı, yalnızca ona verdiğiniz araçlar ve önlerine koyduğunuz denetimler kadar güvenlidir.
MCP: araçları bağlamak için standart bir yöntem
Her servis için sıfırdan entegrasyon yazmak kısa sürede verimsiz hale gelir. Model Context Protocol veya kısaca MCP, bu sorunu çözen açık bir standarttır. Dosyalarınız, veritabanınız ve hata takip sisteminiz için her defasında yeni bir araç kodlamak yerine, ajanı bu kaynakları halihazırda araç olarak sunan bir MCP sunucusuna yönlendirirsiniz. Ajan tek bir protokol ile iletişim kurar; sunucu ise gerçek sistemle konuşma işini üstlenir.
Bunun getirisi yeniden kullanılabilirliktir. Başkasının kullandığınız bir servis için yazdığı MCP sunucusu, herhangi bir ek entegrasyon kodu gerektirmeden ajanınız tarafından kullanılabilir hale gelir. Sizin yazdığınız bir sunucu ise bu protokolü destekleyen her ajan tarafından kullanılabilir. Bazı self-hosted uygulamalar artık kendi MCP sunucularıyla birlikte gelmektedir: bir antrenman takip uygulaması olan openGym, salt okunur bir MCP sunucusu sunar; böylece bir ajan, antrenman geçmişinizle ilgili soruları, veriler üzerinde herhangi bir değişiklik yapma yetkisi olmadan yanıtlayabilir. Bir VPS üzerinde bu durum önemlidir; çünkü MCP sunucularını, her biri yalnızca ihtiyaç duyduğu erişim yetkisine sahip olacak şekilde, ajanın yanında küçük servisler olarak çalıştırabilirsiniz. Bu sunucuların arkasındaki sistemler, evdeki veya ofisteki bir veritabanı gibi VPS'in doğrudan göremediği bir ağda yer aldığında, o ağı bir subnet router ile tailnet'inize tanıtmak, ajanın bu sistemlere genel internete hiçbir şey açmadan özel adresler üzerinden erişmesini sağlar. Kurulum sürecini VPS üzerinde MCP sunucuları çalıştırma bölümünde ele alıyorum.
Bellek ve geri çağırma
Bir dil modelinin çağrılar arasında kendine ait bir belleği yoktur. Mevcut görev hakkında bildiği her şey, her adımda ona iletilmelidir. Kısa bir iş için bu durum sorun teşkil etmez, çünkü tüm konuşma tek bir istek içine sığar. Ne kadar verinin sığacağı bağlam penceresine (context window) bağlıdır; Ollama tarafından sunulan self-hosted bir model, varsayılan olarak küçük bir pencere ile gelir ve en eski adımları sessizce siler. Bu nedenle, ajanı unutkanlıkla suçlamadan önce num_ctx değerini döngünüzün ürettiği trafiğe göre ayarlamak faydalı bir işlemdir. Daha uzun süreli işlemler için belleği kendiniz yönetmeniz gerekir ve bilinmesi gereken iki yöntem mevcuttur.
Birincisi karalama defteridir (scratchpad). Ajana okuyup yazabileceği bir dosya verir ve öğrendiklerini süreç boyunca kaydetmesini söylersiniz. Bir sonraki adımda veya oturumda, ajan dosyayı tekrar okur ve kaldığı yerden devam eder. Bu, düz bir belge biçiminde bellektir ve ajan dosyayı sadece başka bir araç olarak gördüğü için işe yarar.
İkincisi geri çağırmadır (retrieval). Ajan, tek bir isteğe sığmayacak kadar büyük bir belge kümesinden bilgiye ihtiyaç duyduğunda, bu belgeleri aranabilir bir biçimde saklar ve yalnızca ihtiyaç duyulduğunda ilgili kısımları modelin görüş alanına çekersiniz. Bu yöntem, retrieval-augmented generation veya RAG olarak adlandırılır. Ajan bir soru sorduğunda kodunuz eşleşen birkaç pasajı bulur ve modele yalnızca bunlar gönderilir. Veri deposu sunucunuzda barındığı için özel belgeleriniz sunucudan asla dışarı çıkmaz.
Çok sayıda aracı, tek bir koordinatör
Çoğu görev için birçok araca sahip tek bir aracı yeterlidir. İş büyük olduğunda veya doğal olarak parçalara ayrıldığında farklı bir yapı yardımcı olur: uzmanlaşmış alt aracılara görev dağıtan bir koordinatör aracı. Koordinatör, hedefi parçalara böler, her parçayı o iş türü için oluşturulmuş bir alt aracıya iletir ve sonuçları birleştirir. Görev dağıtımı, parçalar arasında bir kanal gerektirir ve bunun en basit sürümü zaten sunucunuzda mevcuttur: aynı VPS üzerindeki iki Claude Code oturumu birbirine mesaj gönderebilir; bu, kendi koordinasyon mekanizmanızı oluşturmadan önce görev devirlerinin nasıl işlediğini anlamanın düşük maliyetli bir yoludur.
Buradaki kazanç odaklanmadır. Dar bir iş tanımına ve küçük bir araç setine sahip bir alt aracı, her şeyi aynı anda yönetmeye çalışan genel bir aracıdan daha iyi kararlar alır ve bağımsız parçalar aynı anda çalışabilir. Koordinasyonun bir maliyeti vardır ve bu maliyet gerçektir; bu nedenle bir görev açıkça daha fazlasını gerektirene kadar tek bir aracı ile devam edin. Basit başlayın ve yalnızca tek bir aracı açıkça zorlandığında yeni aracılar ekleyin.
Self-hosted veya hosted: ajanınızı hangi model çalıştırıyor
Model, bir ajanın kendinizin çalıştırmak zorunda olmadığınız tek parçasıdır ve nerede barınacağını seçmek, vereceğiniz en önemli karardır. Bir API üzerinden erişilen hosted model, hiçbir şey yönetmenize gerek kalmadan en güçlü akıl yürütme yeteneğini sunar: metin gönderir ve karşılığında metin alırsınız. Self-hosted model ise kendi sunucunuzda çalışır; bu sayede her istek gizli kalır, token başına ücret yerine sabit bir maliyet ödersiniz ve başka birinin sisteminin ayakta kalmasına bağımlı olmazsınız. Bunun karşılığı ise yetenek ve çabadır. En iyi hosted modeller, kendi başınıza çalıştırabileceklerinizin ilerisindedir ve kendi modelinizi çalıştırmak, ona sığması için yeterli bellek sağlamanız gerektiği anlamına gelir.
Bu son nokta pratik bir engeldir. Bir modelin sunucunuzun belleğine, GPU kullanıyorsanız video belleğine sığması gerekir. Donanım için çok büyük olan bir model yüklenemez. Self-hosted bir ajan planlamadan önce, istediğiniz modelin sahip olduğunuz makineye sığıp sığmadığını kontrol edin:
Eğer sayılar uyuşmuyorsa üç seçeneğiniz vardır: daha küçük bir model seçin, modeli küçültmek için daha agresif bir kuantizasyon (quantization) kullanın veya akıl yürütme için hosted bir API kullanıp sunucunuzda yalnızca araçlarınızı ve verilerinizi tutun. Birçok self-hosted ajan, Ollama on a VPS aracılığıyla yerel bir modelle başlar ve en zor adımlar için hosted bir API'ye geri döner.
Sunucu en tehlikeli kısımdır
Shell komutlarını çalıştırabilen ve dosya yazabilen bir aracı oldukça güçlüdür; tehlikeli olmasının temel nedeni de budur. Modelin muhakeme yeteneği iyidir ancak kusursuz değildir; hatalı bir talimat, bir yazılım hatası veya kötü niyetli bir girdi, yardımcı bir aracı yanlış dosyaları silen veya gizli bilgileri sızdıran bir yapıya dönüştürebilir. Güvenlik çalışmaları isteğe bağlı değildir ve bir sunucuda en çok önem taşıyan kısım budur.
Birkaç alışkanlık, işin büyük kısmını üstlenir. Aracıyı root olarak değil, özel ve yetkisiz bir kullanıcı olarak çalıştırın; böylece bir hata durumunda oluşacak hasar sınırlı kalır. Aynı mantık yetkisiz kullanıcı olarak servis çalıştırma konusunda da geçerlidir. API anahtarları gibi gizli bilgileri kodun dışında tutun ve yalnızca ilgili kullanıcının okuyabileceği şekilde yapılandırın. Sisteme dokunan araçları izole edin (sandbox), böylece aracı yalnızca gerçekten ihtiyaç duyduğu alanlara erişebilir. Her denetimi elle yazmak istemiyorsanız, yüklenmeye değer DeepSeek Harness eklentileri hazır parçalar olarak aynı işlevi görür: araç izin kuralları, prompt injection taraması ve aracın durmadan önce harcayabileceği kaynaklara getirilen sınırlamalar. Gerçek bir self-hosted aracının güvenliğini sağlama konusunda uygulamalı bir örnek için VPS üzerinde güvenli OpenClaw çalıştırma bölümüne bakın. Zeka katmanı için barındırılan (hosted) bir model kullanmayı tercih ederseniz, VPS üzerinde Claude ile aracı oluşturma rehberi aynı fikirleri temel alır ve belirli bir modeli bu yapıya entegre eder.
Uygulamalı bir örnek için OpenClaw tarzı kişisel aracı oluşturma bu parçaları bir araya getirir. Hazır bir çözüm kullanmak isterseniz VPS üzerinde Hermes Agent self-hosting veya kendi sunucunuzda Agent Zero çalıştırma ile başlayabilirsiniz. Ayrıca 2026 yılının en iyi self-hosted yapay zeka araçları, ele aldığımız tüm hazır seçenekleri yan yana karşılaştırır.
FAQ
Yapay zeka ajanı ile sohbet botu arasındaki fark nedir?
Sohbet botu bir mesaja yanıt verir ve durur. Ajan ise bir döngü çalıştırır: model bir eyleme karar verir, kodunuz bunu gerçekleştirir, sonuç modele geri döner ve görev tamamlanana kadar bu süreç tekrarlanır. Aradaki fark, ajanın sadece metin üretmek yerine, dosyaları okumak, komut çalıştırmak veya servisleri sorgulamak için araçları kullanarak turları arasında gerçek eylemler gerçekleştirmesidir.
Bir VPS üzerinde yapay zeka ajanı çalıştırmak için GPU gerekir mi?
Sadece modeli kendiniz barındırıyorsanız gerekir. Ajan döngüsü, araçlar ve bellek, GPU gerektirmeyen standart bir VPS üzerinde sorunsuz çalışan sıradan kodlardır. GPU, dil modelini kendi donanımınızda çalıştırmak istediğinizde önem kazanır çünkü modelin belleğe sığması gerekir. Eğer barındırılan bir modeli API üzerinden kullanıyorsanız, ağır hesaplama işlemleri başka bir yerde gerçekleşir ve mütevazı bir VPS yeterli olur.
MCP nedir ve bir ajan oluşturmak için gerekli midir?
MCP (Model Context Protocol), bir ajanı araçlara ve veri kaynaklarına bağlamak için kullanılan açık bir standarttır. Her aracı elle yazabileceğiniz için MCP kullanmak kesin bir zorunluluk değildir. MCP, yaygın servisler için mevcut sunucuları yeniden kullanmanıza ve kendi sistemlerinizi herhangi bir ajanın kullanabileceği şekilde bir kez dışa aktarmanıza olanak tanıyarak bu iş yükünden kurtulmanızı sağlar. Entegrasyon sayısı arttıkça değer kazanan bir kolaylıktır.
Bir yapay zeka ajanına sunucuma erişim izni vermek güvenli midir?
Sınırlandırıldığı takdirde güvenli olabilir. Komut çalıştıran bir ajanın güvenliği, yalnızca altında çalıştığı hesabın yetkileri ve izin verdiğiniz araçlar kadardır. Ajanı yetkisiz bir kullanıcı olarak çalıştırın, gizli anahtarlarını erişilemeyecek bir yerde tutun, dosya sistemine dokunan araçları sandbox içine alın ve geri alınması zor eylemler için onay mekanizması kurun. Ajanı, sadece zeki olan ancak güvenilmeyen bir kod parçası olarak değerlendirin ve ona yalnızca görevin gerektirdiği kadar yetki verin.