Yapay Zeka Ajanlarında 'Harness' ve 'Scaffold' Terimleri: Kapsamlı Bir Kılavuz
Yapay zeka ajanları (AI agent) dünyasında sıkça kullanılan 'harness' ve 'scaffold' terimleri, farklı çerçevelerde farklı anlamlara gelebiliyor. Bu rehber, bu terimlerin net tanımlarını sunarak, ajan sistemlerini anlamayı ve tartışmayı kolaylaştırmayı amaçlıyor. Model, ajan, araç (tool) ve eğitim süreçlerindeki temel kavramları açıklıyor.
Giriş: Neden Bu Terimler Kafa Karıştırıyor?
Yapay zeka (YZ) ajanları (AI agents) hızla gelişen bir alan. Her yeni framework (çerçeve) kendi terminolojisini getiriyor. Özellikle 'harness' ve 'scaffold' gibi terimler, farklı bağlamlarda farklı anlamlar taşıyabiliyor. Bu durum, hem yeni başlayanlar hem de deneyimli uygulayıcılar için kafa karıştırıcı olabiliyor. Bu rehber, bu terimleri netleştirmeyi ve ortak bir anlayış oluşturmayı hedefliyor.
Model, Ajan ve Temel Bileşenler
Bir model (örneğin büyük dil modeli - LLM), metin alıp metin üreten bir yapay sinir ağıdır. Kendi başına hafızası yoktur ve her çağrıda sıfırdan başlar. Bir ajan (agent) ise modelin etrafına eklenen katmanlarla (scaffold ve harness) birlikte çalışan, döngüsel olarak eylemler gerçekleştirebilen bir sistemdir. Kısaca: Ajan = Model + Harness.
Scaffold (İskele) Nedir?
Scaffold, modelin davranışını tanımlayan katmandır. Sistem yönergesini (system prompt), araç tanımlarını (tool descriptions), model yanıtlarının nasıl ayrıştırılacağını ve bağlam yönetimini (context management) içerir. Yani modele dünyayı nasıl göreceğini ve nasıl hareket edeceğini söyler. Örneğin, bir kodlama ajanında scaffold, sistem yönergesi, araç tanımları ve çıktı formatını içerir.
Harness (Koşum) Nedir?
Harness, ajanın çalışmasını sağlayan yürütme katmanıdır (execution layer). Modeli çağırır, araç çağrılarını (tool calls) yönetir ve ne zaman duracağına karar verir. Yani ajanı çalıştıran mekanizmadır. Eğitim (training) sırasında harness, birçok ajan döngüsünü paralel olarak çalıştırır ve sonuçları modele geri besler. Claude Code gibi ürünler, tüm model dışı bileşenleri 'harness' olarak adlandırır.
Scaffold ve Harness Arasındaki Fark
Kısacası: Scaffold, modelin ne yapacağını belirler (yönergeler, araçlar, format). Harness ise bunun nasıl yapılacağını yönetir (döngü, hata yönetimi, durma koşulları). İkisi birlikte ajanın davranışını oluşturur. Aynı model, farklı scaffold ve harness kombinasyonlarıyla tamamen farklı bir ajan haline gelebilir.
Araçlar, Beceriler ve Alt Ajanlar
Araç (Tool)
Araç (tool), ajanın dış dünyayla etkileşime geçmesini sağlayan API'ler, kod yorumlayıcıları, veritabanları, web arama gibi işlevlerdir. Model, aracı kullanma niyetini yapılandırılmış bir formatta ifade eder; harness bu çağrıyı alır ve ilgili işlevi çalıştırır.
Beceri (Skill)
Beceri (skill), belirli bir hedefe ulaşmak için gereken adımları, araçları ve bilgiyi paketleyen yeniden kullanılabilir bir yapıdır. Araçtan farkı, bir eylemden ziyade çok adımlı bir görevi (örneğin bir hatayı araştırıp düzeltme) kapsamasıdır. Beceriler, ajanlar arasında taşınabilir ve ihtiyaç halinde yüklenir.
Alt Ajan (Sub-agent)
Alt ajan (sub-agent), başka bir ajan tarafından belirli bir alt görevi yerine getirmesi için çağrılan, kendi modeli ve scaffold'u olan bağımsız bir ajandır. Bir araçtan farkı, kendi başına akıl yürütebilmesi, araç kullanabilmesi ve hatta başka alt ajanlar çağırabilmesidir. Onu çağıran ajana orkestratör (orchestrator) denir.
Eğitim Sürecindeki Temel Kavramlar
Eğitim (training) sırasında ajan, görevleri yerine getirir, puan alır ve model ağırlıkları güncellenir. İşte bu sürecin temel kavramları:
Ortam (Environment)
Ortam (environment), ajanın etkileşime girebildiği, durum bilgisi taşıyan bir yapıdır. Bir eylem (action) alır, iç durumunu günceller ve bir gözlem (observation) döndürür. Örneğin bir dosya sistemi: `touch foo.txt` eylemi, dosyayı oluşturarak durumu günceller ve güncellenmiş dosya listesini gözlem olarak döndürür.
Eğitici (Trainer)
Eğitici (trainer), ajanı geliştiren bileşendir. Birçok ajan bölümü (episode) çalıştırır, sonuçları puanlar ve iç modelin ağırlıklarını günceller. Örneğin TRL kütüphanesindeki GRPOTrainer, bölüm üretimi, ödül puanlaması ve ağırlık güncellemesini tek bir sınıfta yönetir.
Bölüm (Rollout)
Bölüm (rollout), ajanın baştan sona bir çalıştırılmasıdır: ajanın gördükleri, yaptıkları ve her adımda aldığı ödül. Yörünge (trajectory) veya iz (trace) olarak da adlandırılır. Bu veri, pekiştirmeli öğrenme (RL) algoritmalarının öğrendiği ham veridir.
Ödül (Reward)
Ödül (reward), eğitim algoritmasına modelin iyileşip iyileşmediğini söyleyen puandır. Doğrulanabilir (test geçti/kaldı, cevap eşleşmesi) veya öğrenilmiş (insan tercihleri, YZ yargıcı) olabilir; seyrek (bölüm sonunda tek puan) veya yoğun (her adımda puan) olabilir. Rubrik (rubric) ise ödülü tek bir sayı yerine, ağırlıklı boyutlara ayıran bir yapıdır.
Neden Önemli?
Bu terimlerin net bir şekilde anlaşılması, yapay zeka ajanları üzerine yapılan tartışmaları ve geliştirme çalışmalarını büyük ölçüde kolaylaştırır. Aynı modeli kullanan iki farklı ürün, harness ve scaffold tercihleriyle tamamen farklı deneyimler sunabilir. Ayrıca eğitim ve çıkarım (inference) süreçlerinde doğru terminolojiyi kullanmak, hataları önler ve verimliliği artırır. Bu kılavuz, alandaki hızlı değişime rağmen sağlam bir kavramsal temel oluşturmayı amaçlamaktadır.