Bir Yapay Zeka Ajanı Yalnızca Bir While Döngüsüdür: 70 Satırda Ajan Mimarisi ve Güvenliği

İçindekiler
Sektördeki abartılı pazarlama tanımlarının aksine bir yapay zeka ajanı (AI agent); bir dil modeli, modelin çağırabileceği fonksiyonların kısa bir listesi ve bunları koordine eden bir while döngüsünden ibarettir. Hiçbir harici framework kullanmadan, 70 satırdan kısa saf Python koduyla bu mekanizmayı sıfırdan kurmak mümkündür. Üstelik bu mimarilerdeki güvenlik açıkları prompt mühendisliğiyle değil, doğrudan çalışma zamanı (runtime) kod seviyesinde çözülmelidir.
Gereksinimler
Sistemi tamamen yerel makinenizde ayağa kaldırmak için bulut servislerine veya kredi kartına ihtiyaç yoktur:
- Python 3.10 veya Üzeri: Temel fonksiyonlar, sözlükler (
dict) ve döngü kavramlarını bilmek yeterlidir. - Ollama ve Yerel Model: Modelleri yerelde çalıştırmak için Ollama kullanılır. Araç çağırma desteği olan
qwen2.5:7b(4.7 GB indirme) modeli tercih edilebilir. Belleği 8 GB veya daha az olan cihazlar için 2 GB boyutundakillama3.2:3bmodeli de uygundur. Modelin araç desteğiollama show modelkomutuyla teyit edilebilir. - OpenAI Python Paketi:
pip install openaiile kurulur. Ollama, OpenAI uyumlu HTTP API sunduğu için istemci doğrudan yerel adrese (http://localhost:11434/v1) yönlendirilir. Böylece ileride barındırılan bir modele geçerken yalnızca iki satırı değiştirmeniz yeterli olur. - Proje Dizini: Deney ortamı için
agent-demoana klasörü altındanotesvesitedizinleri oluşturulur.
Adım 1: Tek Başına Bir Model Hiçbir Şey Yapamaz
Bir dil modeli özünde yalnızca metinden metne bir fonksiyondur; sistem saatine veya dış dünyaya erişimi yoktur. step1.py dosyası üzerinden modele "Şu an saat kaç?" sorusu yöneltildiğinde, model doğrudan saati veremez. Bunun yerine kibarca kullanıcının konumunu veya saat dilimini sorar. Bu yanıt, modelin bir saati olmadığının itirafıdır. Bir chatbot ile otonom bir ajan arasındaki temel ayrım burada başlar.
Adım 2: Modele Bir Araç ve Bir Döngü Kazandırmak
Modeli bir ajana dönüştüren temel mekanizma araç çağırma (tool calling) altyapısıdır. agent.py içerisinde yerel zamanı döndüren bir get_time() fonksiyonu ve modelin bunu anlayabilmesi için JSON şemasıyla tanımlanmış bir TOOLS listesi oluşturulur:
- Model, doğrudan yanıt üretmek yerine bir aracı çalıştırmak istediğini belirten yapılandırılmış bir çağrı mesajı döndürür.
- Sistemdeki
whiledöngüsü bu talebi yakalar, ilgili yerel Python fonksiyonunu çalıştırır ve sonucu modele geri iletir. - Model araçtan gelen çıktıyı işleyip kullanıcıya nihai yanıtı verene kadar bu döngü devam eder.
Yazılım Geliştiriciler İçin Pratik Çıkarımlar
- Soyutlamaları Aşın: Karmaşık kütüphanelere bağımlı kalmadan önce ajanların durum yönetimini (
whiledöngüsü) ve araç çağırma protokolünü anlamak mimari hakimiyet sağlar. - Güvenliği Runtime Kodunda Çözün: Prompt tabanlı kısıtlamalar yetersizdir; ortam değişkenlerinin (
.env) ve gizli anahtarların güvenliği doğrudan çalışma zamanı kodunda sınırlandırılmış yetkilerle sağlanmalıdır.
[Orijinal kaynağa buradan ulaşabilirsiniz.](https://dev.to/alisterbaroi/an-ai-agent-is-just-a-while-loop-i-built-one-in-70-lines-of-python-then-tricked-it-into-leaking-4ehf)
Bu konuyu derinlemesine öğrenmek isterseniz: Tool Calling ve Multi-Step Agent'lar modülüne göz atın.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →