Yapay Zeka ile Sistemler Nasıl Konuşur? MCP ve Function Calling Rehberi
Yapay zeka modellerinin (LLM) dış dünyayla nasıl iletişim kurduğunu merak ettiniz mi? Function Calling, Inference motorları, matris haritaları ve bu ekosistemin 'USB Type-C'si olan Model Context Protocol (MCP) hakkında derinlemesine bir inceleme yaptık. Gelin bu mimariyi birlikte keşfedelim.
Bugün yapay zeka ajanlarının dış dünyayla nasıl iletişim kurduğunu inceleyeceğiz. Bir süredir yapay zeka modelleriyle (Claude, GPT vb.) projeler geliştiriyorum ve bu modellerin sadece metin üretmekle kalmayıp sistemlerimde nasıl komut çalıştırdığını (dosya okuma, GitHub'a bağlanma vb.) detaylıca anlamak istedim. Kendi kendime "Aradaki bu bağlantıya (MCP) gerçekten ihtiyacım var mı?" diye sordum. Biraz araştırma yapıp kaputun altına bakınca harika bir mühendislik mimarisiyle karşılaştım. Gelin kendi yapay zeka ekosisteminizi nasıl anlayıp kurabileceğinize bir göz atalım.
LLM'lerin Anatomisi ve Function Calling
Yapay zeka modellerini projelerinize eklediğinizde her zaman yaptığınız gibi ilk olarak onlardan bir metin çıktısı beklersiniz. Ancak bu modellerin internete bağlanmak için elleri veya kolları yoktur; sadece devasa birer istatistiksel kelime tahmin makineleridir.
Dış dünyayla bağlantı kurmaları gerektiğinde Function Calling (Araç Çağırma) devreye girer. İşlem çok basittir; AI sizin sisteminize ne yapılması gerektiğini anlatan bir JSON gönderir:
{
"arac": "terminal_komutu_calistir",
"komut": "npm install",
"parametreler": {
"dizin": "./frontend"
}
}Bu ilk bakışta çok "ilkel" görünebilir, ancak JSON günümüz yazılım dünyasının evrensel dilidir. Model doğrudan kod çalıştırmaz, sadece isteğini JSON olarak iletir. Kontrol sizdedir; bu kodu güvenli bir ortamda çalıştırıp sonucu modele geri dönersiniz.
Neden MCP (Model Context Protocol)?
Kendi sunucunuzdan Claude'a doğrudan API ile bağlanarak bu JSON akışını kurabilirsiniz. Ancak her yapay zeka modelinin (OpenAI, Anthropic, Gemini) fonksiyon bekleme formatı farklıdır. Bu durumda projeniz şuna benzer bir karmaşaya dönüşebilir 👇
Eğer yazdığınız bir "GitHub Repo Okuma" aracını 3 farklı modele bağlamak isterseniz, 3 farklı çevirici (adapter) yazmanız gerekir. İşte MCP burada devreye girer.
MCP, yapay zeka araçlarının USB Type-C'sidir. Aracınızı bir kere MCP standartlarında yazarsınız, MCP destekleyen tüm yapay zeka modelleri ve Cursor gibi kod editörleri bu aracı anında tanır. Bu, kısa vadede ekstra bir bağımlılık gibi görünse de uzun vadede muazzam bir standartlaşma sağlar.
Inference Engine (Çıkarım Motoru) ve Güvenlik
Peki bu JSON oluşturma ve kod çalıştırma işlemini neden doğrudan LLM'i çalıştıran ana C++ motorunda (örneğin llama.cpp veya vLLM) yapmıyoruz?
Bunun en büyük sebebi Güvenlik (Sandboxing) ve sorumlulukların ayrılığıdır. Eğer inference motoru, modelin ürettiği kodu doğrudan çalıştırsaydı, rm -rf / gibi zararlı bir komut tüm sisteminizi çökertebilirdi. İşlemi dışarıya, yani bir Node.js veya Python sunucusuna (MCP Server) taşıdığımızda kontrolü geri alırız.
Matris Haritaları ve Quantization
Modellerin kaputunun altında aslında kod yoktur; milyarlarca ondalık sayıdan oluşan bir Tensör (Tensor) haritası vardır (Genellikle .safetensors veya .gguf formatında).
Yerel bir model indirme örneği
wget https://huggingface.co/model-path/model.safetensors
Buradaki en büyük darboğaz hesaplama değil, devasa dosyaların RAM'den ekran kartına taşınma hızıdır (Memory Bandwidth). Bu yüzden Quantization (Nicemleme) denilen bir sıkıştırma işlemi kullanırız.
{
"model_size": "70B Parameters",
"original_vram_required": "140 GB",
"quantized_4bit_vram": "35 GB",
"performance_loss": "~5%"
}Yüksek hassasiyetli sayıları (3.1415...) basit tam sayılara yuvarlayarak (4-bit Integer), 140 GB RAM isteyen bir modeli 35 GB'a düşürebiliriz. Yapay sinir ağları gürültüye dayanıklı olduğu için modelin mantık kurma yeteneği neredeyse hiç bozulmaz!
Sistemi Canlandırmak
Sonuç olarak, yapay zekanın sadece bir "düşünme" (Inference) merkezi olduğunu, "hareket etme" (Tools) yeteneğini ise Function Calling ve MCP gibi harici güvenli standartlarla kazandığını görüyoruz.
Tebrikler 👏 Artık LLM'lerin kaputunun altındaki mimariyi ve dış dünyayla nasıl güvenli bir şekilde konuştuklarını biliyorsunuz. Kendi yerel modellerinizle denemeler yapmaktan çekinmeyin 🙂
Bir İnsan, Bir AI
Bölüm 1: Yapay Zeka Mimarisinin Derinlikleri
Bu yazının sesli özeti; aynı konuyu podcast formatında dinleyebilirsiniz.
Function Calling, inference motorları, MCP ve quantization üzerine; LLM'lerin dış dünyayla nasıl konuştuğuna dair bir tur.
Podcast sayfasına gitAyrıca buralara da göz atın: