n8n ile AI Agent Architecture: Temel Tasarım Yaklaşımı
Büyük dil modelleri (LLM) günümüzde sadece pasif metin üreteçleri olmaktan çıkıp, dış sistemlerle etkileşime giren (API call, veritabanı okuma/yazma, webhook tetikleme) aktif Ajanlara (Agents) dönüşüyorlar. Bu makalede, bulut API maliyetlerinden kaçınmak ve tam veri gizliliği (Data Privacy) sağlamak için n8n ve Ollama kullanarak kendi sunucumuzda (Self-Hosted) uçtan uca bir AI Agent altyapısını nasıl kurduğumuzu inceleyeceğiz.
Neden Local LLM ve n8n?
Şirket içi özel verilerin (finansal tablolar, müşteri bilgileri) public API'lere (OpenAI, Anthropic) gönderilmesi ciddi KVKK ve GDPR riskleri taşır.
- Ollama: Açık kaynaklı modelleri (Llama 3, Qwen 2.5 vb.) yerel donanımda (CPU/GPU) optimize edilmiş (Quantized) şekilde çalıştırmamızı sağlayan bir LLM motorudur.
- n8n: Olay bazlı (event-driven) iş akışları tasarlamamızı sağlayan Node.js tabanlı açık kaynaklı bir Workflow Automation aracıdır. LangChain'in node tabanlı görsel bir muadili gibi çalışabilir.
Bu iki yapıyı Docker container'ları içerisinde Oracle Cloud ARM sunucularında birleştirdiğimizde, otonom ve ücretsiz bir "Private AI" altyapısı elde ederiz.
Mimari Tasarım (Architecture)
Sistem üç temel katmandan oluşur:
- Trigger (Tetikleyici) Katmanı: n8n üzerindeki Webhook, Email Listener veya CRON node'ları.
- Orchestration Katmanı (n8n): Gelen veriyi ayrıştıran, LLM'in kullanabileceği araçları (Tools) tanımlayan ve Agent logic'ini (ReAct - Reason + Act) işleten katman.
- Inference Katmanı (Ollama): n8n'den gelen promptları işleyen ve mantıksal kararları veren model (Örn:
qwen2.5:7b).
Docker Compose Yapılandırması
Sistemi ayağa kaldırmak için gereken temel docker-compose.yml örneği:
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.sirketiniz.com
- WEBHOOK_URL=https://n8n.sirketiniz.com/
volumes:
- n8n_data:/home/node/.n8n
ollama:
image: ollama/ollama:latest
restart: always
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
volumes:
n8n_data:
ollama_data:
Agent İş Akışı (ReAct Pattern)
Bir AI ajanı temel olarak ReAct (Reasoning and Acting) döngüsüyle çalışır. n8n üzerinde bir "Agent Node" oluşturduğumuzda şu adımlar gerçekleşir:
- Gözlem (Observation): Agent, kendisine verilen girdiyi (örneğin bir destek maili) inceler.
- Düşünce (Thought): "Bu kullanıcının sipariş durumunu veritabanından sorgulamalıyım." kararına varır.
- Eylem (Action): n8n'e önceden tanımlanmış olan "PostgreSQL Tool"unu çağırır ve sorguyu çalıştırır.
- Yanıt (Response): Veritabanından gelen sonuca göre nihai e-postayı oluşturur ve "Gmail Node" üzerinden gönderir.
Performans Optimizasyonu ve Teknik Zorluklar
ARM tabanlı sunucularda (özellikle GPU olmayan ortamlarda) LLM çalıştırmak performans darboğazlarına neden olabilir.
- Quantization: Modellerin 4-bit versiyonlarını (Q4_K_M) kullanarak RAM tüketimini 5-6 GB seviyelerine düşürdük.
- Request Throttling: n8n üzerinde aynı anda maksimum 2 agent process'in çalışmasına izin veren bir Rate Limit kuyruğu oluşturduk. Böylece OOM (Out of Memory) çökmelerinin önüne geçtik.
Sonuç
Doğru yapılandırılmış bir n8n ve Ollama mimarisi ile şirket içi operasyonlarda dışa bağımlı olmayan, sıfır API maliyetli ve tam gizlilik sunan otonom ajanlar oluşturmak mümkündür.
