Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

  1. Ana sayfa
  2. Blog
  3. Yapay Zeka

Yapay Zeka

Yapay Zeka Ajanları Nelerdir? Nasıl Çalışır, Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle

Bir yapay zeka temsilcisi yanıt vermekten fazlasını yapar. Bir hedef alır, eylemleri seçer, sonuçları kontrol eder ve yoluna devam eder. Birinin içinde ne olduğunu öğrenin, Python’da küçük bir döngü çalıştırın ve birine güvenmeden önce riskleri anlayın.

9 dk okuma
Yapay zeka ajanları nedir? Çalıştırabileceğiniz basit bir aracı döngüsüyle nasıl çalışırlar?

Önemli noktalar

  • Bir Yapay zeka aracısı genellikle araçlar ve bir hedefle döngü halinde çalışan bir dil modelidir.
  • Döngü basittir: karar verin, harekete geçin, sonucu gözlemleyin ve bitene kadar tekrarlayın.
  • Model yalnızca eylemleri önerir. Kodunuz onları çalıştırır ve burada kuralları uygularsınız.
  • Aracılar araçları döngüye sokabilir veya kötüye kullanabilir; bu nedenle adım sınırlarını belirleyin ve riskli eylemler için onay isteyin.

Bir chatbot’a gecikmiş bir sipariş hakkında soru sorun, o da size bazı tavsiyeler verecektir. Bir AI temsilcisine sorun; o, siparişi arayabilir, gecikmeyi kontrol edebilir, bir makbuz uygulayabilir ve geri bildirimde bulunabilir. Aradaki fark, bir temsilcinin yalnızca tek bir yanıt üretmek yerine harekete geçebilmesi ve olup bitenlere tepki verebilmesidir.

Bu terim pazarlamada esnetildiğinden, bu kılavuz bu sistemlerin gerçekte nasıl çalıştığına odaklanmaktadır. Somutlaştırmak için Python 3.13’te küçük bir aracı döngüsü oluşturduk ve onu çalıştırdık ve aşağıdaki çıktı bu çalıştırmalardan geliyor. Bizim “modelimiz”, gerçek bir yapay zeka modeli değil, komut dosyasıyla yazılmış bir işlevdir, böylece döngü herkes tarafından çalıştırılabilir ve test edilebilir. Zekayı değil kontrol yapısını gösterir. Temel konularda yeni misiniz? İlk önce büyük dil modelinin ne olduğunu okuyun.

Yapay zeka ajanı nedir?

Üzerinde uzlaşılan tek bir tanım yoktur. Mevcut uygulamada, bir yapay zeka aracısı, bir sonraki adımın ne olacağına tekrar tekrar karar vererek, dünyaya göre hareket etmek için araçları kullanan ve sonuçlara göre ayarlamalar yaparak bir hedefi takip eden bir yazılımdır. Genellikle karar verme süreci geniş bir dil modelinden gelir.

Talimat veren kişi ile işi yürüten kişi arasındaki farkı düşünün. İlk cevap bir kez. İkincisi dışarı çıkar, dükkânı kapalı bulur, bir başkasını dener ve ancak iş bittiğinde geri döner.

Chatbot mu, iş akışı mı yoksa temsilci mi?

Tür Adımlara kim karar veriyor? Hareket edebilir mi? Örnek
Sohbet robotu Kullanıcı her dönüşte sürüş yapar Genellikle hayır Metinden soruları yanıtlar
Sabit iş akışı Geliştirici, önceden Evet, belirlenmiş yollarda Her bileti özetleyin ve yönlendirin
Yapay zeka ajanı Model, çalışma zamanında Evet, sınırlar dahilinde Bir bileti araştırır ve çözer

Bunlar bir spektrumda mevcuttur ve birçok kullanışlı sistem bunların bir karışımıdır. Anahtar soru, çalışma zamanında yolun ne kadarına karar verildiğidir.

Bir ajanın içinde ne var?

Parça Rol
Modeli Hedefe ve o ana kadar olanlara dayanarak bir sonraki adıma karar verir
Talimatlar Uyması gereken amaç, kurallar ve sınırlar
Araçlar API arama veya çağırma gibi talep edebileceği işlevler
Bellek Daha önceki adımlardan veya geçmiş oturumlardan bildikleri
Kontrol döngüsü Araçları çalıştıran ve sınırları zorlayan sıradan kod

Aracı döngüsü

  1. Karar verin. Model, hedefe ve geçmişe bakar ve bir eylem seçer veya bittiğine karar verir.
  2. Eylem. Kodunuz istenen aracı çalıştırır.
  3. Gözlemle. Sonuç geçmişe eklenir.
  4. Hedefe ulaşılana veya bir sınıra ulaşılana kadar tekrarlayın.

Çoğu ajanın özü budur. Gelişmişlik esas olarak modelde, araçlarda ve bu döngünün etrafındaki güvenlik önlemlerinde yatmaktadır.

Çalıştırabileceğiniz bir döngü

Küçük temsilcimiz geciken siparişlerle ilgilenir. İki aracı var ve bunlardan birinin paraya mal olması nedeniyle insan onayına ihtiyacı var:

ORDERS = {
    "A100": {"status": "delayed", "days_late": 6},
    "B200": {"status": "shipped", "days_late": 0},
}

def get_order(order_id):
    return ORDERS.get(order_id, {"error": "order not found"})

def issue_voucher(order_id, amount):
    return {"voucher": f"V-{order_id}", "amount": amount}

TOOLS = {"get_order": get_order, "issue_voucher": issue_voucher}
NEEDS_APPROVAL = {"issue_voucher"}

Ve işte döngünün kendisi. Bu sıradan bir koddur ve her güvenlik kuralı modelde değil burada yaşar:

def run_agent(goal, model, approve, max_steps=5):
    history = []
    for step in range(1, max_steps + 1):
        decision = model(goal, history)
        if "finish" in decision:
            return decision["finish"]

        name, args = decision["tool"], decision["args"]
        if name in NEEDS_APPROVAL and not approve(name, args):
            result = {"denied": True}
        else:
            result = TOOLS[name](**args)

        history.append({"tool": name, "result": result})
    return None   # stopped: step limit reached

Gerçek bir model kullanmak için, model işlevini bir LLM API çağrısıyla değiştirip, ona araçlarınızın hedefini, geçmişini ve açıklamalarını aktarırsınız. Döngü neredeyse aynı kalıyor.

Koşularımızda neler oldu?

Komut dosyasıyla yazılmış karar işleviyle beş durumu denedik ve her adımı kaydettik.

Kuponun onaylandığı gecikmiş bir sipariş

step 1: get_order({'order_id': 'A100'}) -> {'status': 'delayed', 'days_late': 6}
step 2: issue_voucher({'order_id': 'A100', 'amount': 200}) -> {'voucher': 'V-A100', 'amount': 200}
step 3: finish -> Sorry for the delay. Voucher V-A100 issued.

Her adımda kendisinden öncekinin sonucu kullanıldı. Kupon ancak gecikme onaylandıktan sonra dikkate alındı.

Aynı sipariş, onay reddedildi

step 2: issue_voucher({'order_id': 'A100', 'amount': 200}) -> {'denied': True}
step 3: finish -> Your order is late. A person will review compensation.

İnsan hayır dedi, alet hiç çalışmadı ve temsilci cevabını uyarladı.

Bilinmeyen bir emir

step 1: get_order({'order_id': 'Z999'}) -> {'error': 'order not found'}
step 2: finish -> I could not find that order.

Araçlara net hata mesajları vermek yardımcı olur. Gerçek bir model bunları okuyabilir ve tahmin etmek yerine mantıklı bir şekilde yanıt verebilir.

Sıkışmış bir model

Aynı eylemi sonsuza kadar tekrarlayan hatalı bir karar fonksiyonunu da değiştirdik:

step 1: get_order({'order_id': 'B200'}) -> {'status': 'shipped', 'days_late': 0}
step 2: get_order({'order_id': 'B200'}) -> {'status': 'shipped', 'days_late': 0}
step 3: get_order({'order_id': 'B200'}) -> {'status': 'shipped', 'days_late': 0}
stopped: step limit reached

Ajanlar gerçekten de bu gibi döngülere düşebilir ve gerçek bir modelle atılan her adım paraya mal olur. max_steps olmasaydı bu asla bitmezdi.

Araçlar nasıl çalışır?

Bu en yanlış anlaşılan kısımdır. Bir dil modeli hiçbir şeyi kendi başına çalıştıramaz. Hangi aracı, hangi argümanlarla istediğini söyleyen yapılandırılmış metinler üretir. Kodunuz çalıştırılıp çalıştırılmayacağına karar verir. Döngünün izinler, doğrulama ve günlük kaydı için doğru yer olmasının nedeni budur.

Model sağlayıcılar bunun için araç veya işlev çağrısı sunar. Model Bağlam Protokolü (MCP), modelleri araçlara ve verilere bağlamak için açık bir standarttır ve Oyun Yazarı MCP hakkındaki makalemiz bunun bir kullanımını göstermektedir. Modelin doğru seçim yapmasına bağlı olduğundan anlaşılır araç adları ve açıklamaları yazın.

İpucu: Salt okunur araçlarla başlayın. Yalnızca arama yapabilen bir temsilci, gönderebilen, silebilen veya ödeme yapabilen bir temsilciden çok daha az tehlikelidir. Nasıl davrandığını gördükten sonra, her seferinde bir araca yazma erişimi ekleyin.

Bellek

Tür Tutar Örnek
Kısa vadeli Geçerli görevin geçmişi Döngümüzdeki history listesi
Uzun vadeli Seanslar arasında saklanan gerçekler Veritabanındaki kullanıcı tercihleri
Bilgi Gerektiğinde geri alınan belgeler Yerleştirmeleri kullanarak RAG

Uzun görevler bir modelin bağlam penceresini aşabilir, bu nedenle sistemler genellikle eski adımları özetler. Özetler ayrıntıları kaybedebilir, bu da uzun süredir çalışan temsilcilerin yoldan sapabilmesinin bir nedenidir.

Çoklu ajan sistemleri

Bazı sistemler, işi bir planlayıcı, bir araştırmacı ve bir incelemeci gibi birkaç uzman temsilci arasında bölüştürür. Bu, düzgün bir şekilde bölünen büyük görevlerde yardımcı olabilir. Aynı zamanda maliyet, daha fazla başarısız olma yolu ve daha zor hata ayıklama yolları da ekler. Önce iyi araçlara sahip tek bir temsilciyi deneyin ve bunu yalnızca açık bir neden olduğunda bölün.

Riskler ve sınırlar

  • Yanlış eylemler. Bir chatbot’un hatası kötü bir cümledir. Temsilcinin hatası gönderilen bir e-posta ya da silinmiş bir kayıt olabilir.
  • Hızlı ekleme. Temsilcinin okuduğu bir web sayfası veya e-posta, gizli talimatlar içerebilir. Tüm araç çıktılarını komutlar olarak değil, güvenilmeyen veriler olarak değerlendirin.
  • Bileşik hatalar. Başlangıçta küçük bir hata, sonraki adımların tamamını yanlış yöne gönderebilir.
  • Maliyet ve gecikme. Her adım başka bir model çağrısı olabilir, dolayısıyla bir görev, tek bir istemden çok daha yavaş ve daha pahalı olabilir.
  • Tutarsızlık. Aynı hedef her çalıştırmada farklı bir yol izleyebilir ve bu da testi zorlaştırır.
  • Sorumluluk. İnsanlar sistemin yaptıklarından sorumlu olmaya devam eder, bu nedenle kayıt tutun.

Önemli olan korkuluklar

  1. En az ayrıcalık. Her temsilciye yalnızca ihtiyaç duyduğu araçları ve erişimi verin.
  2. Demomuzda olduğu gibi maliyetli, geri dönüşü olmayan veya harici herhangi bir şey için insan onayı.
  3. Adımlar, zaman ve harcama konusunda kesin sınırlar.
  4. Koddaki araç girişlerini doğrulayın ve model talimatlarına güvenmeyin.
  5. Her adımı günlüğe kaydedin böylece bir şeyin neden olduğunu görebilirsiniz. Bkz. izleme ve gözlemlenebilirlik.
  6. Başarısızlıklar da dahil olmak üzere gerçek senaryolarla test edin. Bireysel yanıtların yanı sıra nihai sonuçları da kontrol edin. Yapay zeka aracısı en iyi uygulamalarına ilişkin kılavuzumuz dağıtım konusunda daha da ileri gidiyor.

Bir aracı ne zaman kullanılmalı

Aşağıdaki durumlarda bir temsilci kullanın: Daha basit bir şey kullanın
Adımlar önceden bilinemez Adımlar hep aynı
Görevin birkaç araca ihtiyacı var Bir istem işi yapabilir
Sonuçlar bundan sonra olacakları değiştirir Sabit bir iş akışı işe yarayacaktır
Hatalar ucuzdur veya gözden geçirilebilir Hatalar maliyetlidir ve geri alınması zordur

Kodlama asistanları, dosyaları okuyabildikleri, testleri çalıştırabildikleri, hataları görebildikleri ve sonuçları bir insan tarafından inceleyerek yeniden deneyebildikleri için günümüzün en olgun örneklerinden biridir. Bir test paketi onlara net bir başarı sinyali veriyor. Hızlı mühendislik kılavuzumuz aynı zamanda iyi temsilci talimatlarının yazılması için de geçerlidir. İşe yarayabilecek en basit şeyle başlayın, çünkü iyi yönlendirilmiş tek bir arama çoğu zaman karmaşık bir temsilciyi geride bırakır.

Son sözler

Bir yapay zeka aracısı göründüğünden daha az gizemlidir: bir model, bazı araçlar ve sınırları olan bir döngü. İşin zor kısmı güvendir, kod değil. Nasıl davrandıklarını öğrenmek için küçük döngümüzü alın, onu salt okunur araçlarla gerçek bir modele bağlayın ve günlükleri çalışırken izleyin. Yakında nerede parladığını ve nerede bir insana ihtiyaç duyduğunu göreceksiniz.

Sık sorulan sorular

Basit kelimelerle yapay zeka ajanı nedir?

Yalnızca tek bir yanıt vermek yerine, eylemleri seçerek, araçları kullanarak ve sonuçları bir döngü içinde kontrol ederek bir hedefe doğru çalışan bir yazılımdır.

Bir sohbet robotu ile bir yapay zeka aracısı arasındaki fark nedir?

Bir chatbot esas olarak her mesaja yanıt verir. Bir temsilci birkaç adımı planlayabilir, araçları arayabilir ve yol boyunca olup bitenlere göre rotayı değiştirebilir.

Yapay zeka aracılarının geniş bir dil modeline ihtiyacı var mı?

Çoğu modern olan, kararlar için Yüksek Lisans (LLM) kullanır, ancak yazılım aracılarının daha geniş fikri daha eskidir ve kuralları veya diğer yapay zeka yöntemlerini kullanabilir.

Yapay zeka ajanları güvenli mi?

Yanlış eylemler ve hızlı enjeksiyon dahil olmak üzere gerçek riskler taşırlar. İzinlerini sınırlayın, riskli adımlar için onay isteyin, katı sınırlar belirleyin ve her şeyi günlüğe kaydedin.

Bir yapay zeka aracısı bir geliştiricinin veya testçinin yerini alabilir mi?

Genel olarak bugün değil. Pek çok iyi tanımlanmış görevi yerine getirebilirler, ancak insanların yine de hedefler belirlemesi, çıktıyı gözden geçirmesi ve sonucun sorumluluğunu alması gerekir.

Öğrenmeye devam et

Stack Quora ile çalışın

Test, WordPress veya SEO konusunda yardıma mı ihtiyacınız var?

Ekiplerin daha iyi yazılımlar sunmasına ve sitelerini büyütmesine yardımcı oluyoruz. Bize ne üzerinde çalıştığınızı söyleyin, biz de bir sonraki adım için net bir öneride bulunalım.

Okumaya devam et

Daha fazla kılavuz test, yapay zeka ve modern geliştirme

Bu makaleyi beğendiniz mi? Bir konu seçin ve doğrudan en yeni eğitimlerimize geçin.

Yapay zekâ

Yapay Zeka Halüsinasyonları Açıklandı: Dil Modelleri Neden İşleri Düzeltiyor ve Nasıl Azaltılabilir?

Yapay zeka halüsinasyonları açıkladı: ne olduklarını, dil modellerinin bunları neden ürettiğini, yaygın türlerini, temellendirme ve yönlendirmelerle…

Makaleyi okuyun →
DevOps

Açıklanan Ortam Değişkenleri: .env Dosyaları, Sırlar ve Yapılandırma Doğru Yapıldı

Çalıştırdığımız Python örnekleriyle açıklanan ortam değişkenleri: bunları okumak ve ayarlamak, neden her değerin bir dize olduğu, .env dosyaları, sü…

Makaleyi okuyun →
Yazılım geliştirme

API Hız Sınırlamasının Açıklaması: Algoritmalar, Başlıklar ve 429 Hatalarının Ele Alınması

API hızı sınırlaması, çalıştırdığımız bir simülasyonla açıklanmıştır: belirteç kümesi, sabit pencere, kayan pencere, 429 yanıt, hız sınırı başlıklar…

Makaleyi okuyun →
Test otomasyonu

Python'da alay etme: Unittest.mock, patch ve Testleri Yalan Yapan Hatalar

Unittest.mock ile Python'da alay etme, test edildi: Sahte ve dönüş_değeri, yan_etki, bir adın kullanıldığı yerde yama uygulama, spesifikasyon ve oto…

Makaleyi okuyun →
Yazılım testi

Kod Kapsamının Açıklaması: Hat ve Şube Kapsamı ve %100'ün Gerçek Anlamı

Kod kapsamı gerçek bir kapsama.py çalışmasıyla açıklanmıştır: hat, şube ve durum kapsamı, bir raporun okunması, %100 kapsamın neden hâlâ hataları ka…

Makaleyi okuyun →
Veritabanları ve SQL

SQL'de DELETE vs TRUNCATE vs DROP: Farklılıklar, Geri Alma ve Her Biri Ne Zaman Kullanılmalı

DELETE vs TRUNCATE vs DROP test edilmiş SQL ile açıklandı: her birinin neyi kaldırdığı, geri aldığı, tetiklediği, kimlik sıfırlaması, hızı ve Postgr…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL Görünümleri: Örneklerle Tuzakları Oluşturun, Kullanın ve Önleyin

Çalıştırdığımız sorgularla açıklanan SQL görünümleri: görünüm oluşturma, canlı sonuçlar, sütunları gizleme, performans, güncellenebilir ve gerçekleş…

Makaleyi okuyun →
Yazılım geliştirme

TypeScript Arayüzü ve Tür: Gerçek Farklılıklar, Derleyiciyle Test Edildi

TypeScript arayüzü ve türü, gerçek derleyiciyle kontrol edildi: her ikisinin de yapabileceği, yalnızca birinin yapabileceği, bildirim birleştirme, g…

Makaleyi okuyun →
Yazılım geliştirme

Python *args ve **kwargs'ın Açıklaması: Açık Örneklerle Esnek Fonksiyonlar

Python *args ve **kwargs çalıştırdığımız kodla açıklanmıştır: paketleme ve paketten çıkarma, parametre sırası, yalnızca anahtar kelime ve yalnızca k…

Makaleyi okuyun →
Yazılım geliştirme

Python Lambda İşlevleri: Söz Dizimi, Gerçek Kullanımlar ve Ne Zaman Kullanılmaması Gerektiği

Çalıştırdığımız kodla açıklanan Python lambda işlevleri: sözdizimi, anahtarla sıralama, harita ve filtre, kapatmalar, geç bağlama tuzağı ve normal b…

Makaleyi okuyun →
Yapay zekâ

Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

Yapay zeka ajanları nedir? Aracı döngüsüne, araçlara, belleğe ve korkuluklara ilişkin basit bir kılavuz, çalıştırdığımız küçük bir Python döngüsü, g…

Makaleyi okuyun →
DevOps

İzleme ve Gözlemlenebilirlik: Günlükler, Metrikler ve İzlerle Gerçek Fark

İzleme ve gözlemlenebilirliğin açıklanması: bilinen ve bilinmeyen arızalar, günlükler, ölçümler ve izler, ödeme olayının gözden geçirilmesi, altın s…

Makaleyi okuyun →
DevOps

Docker Birimleri ve Bağlama Bağlantıları: Konteyner Verilerini Doğru Şekilde Kalıcılaştırın

Docker birimleri ile bağlama bağlamaları arasındaki karşılaştırma açıklandı: kapsayıcı verilerinin neden kaybolduğu, adlandırılmış birimler, bağlama…

Makaleyi okuyun →
Test otomasyonu

TDD ve BDD: Temel Farklılıklar, Her İki Şekilde Geliştirilmiş Bir Özellik ve Her Birinin Ne Zaman Kullanılacağı

TDD ve BDD, her iki yönde de oluşturulmuş bir indirim özelliğiyle açıklandı: çalıştırdığımız kodla kırmızı-yeşil-refactor, Verilen-Ne Zaman-O Zaman …

Makaleyi okuyun →
Yazılım geliştirme

Git merge vs rebase: farklar, örnekler ve hangisi ne zaman kullanılır

Git merge vs rebase; gerçek log çıktısı, karşılaştırma tablosu, rebase'in altın kuralı ve güvenli bir ekip iş akışıyla anlatılıyor.

Makaleyi okuyun →
Yazılım geliştirme

Python Liste Üreteci (List Comprehension): Sözdizimi, Örnekler ve Kaçınılacak Durumlar

Python list comprehension anlatımı: sözdizimi, filtreleme, if-else, iç içe döngüler, ölçülmüş süreler ve düz for döngüsünün daha iyi olduğu durumlar.

Makaleyi okuyun →
Veritabanları ve SQL

SQL JOIN Örneklerle Açıklama (Inner, Left, Right, Full)

SQL JOIN'leri örnek tablolar ve sorgularla adım adım öğrenin: INNER, LEFT, RIGHT, FULL, CROSS ve SELF; yaygın hatalar ve performans ipuçları.

Makaleyi okuyun →