AI Agents

Araç Çağırma Sanatı: Otonom Yapay Zeka Ajanlarının Motoru

Basit büyük dil modeli (LLM) sohbet botlarından yetenekli, otonom ajanlara geçiş, kritik bir mekanizmaya dayanır: araç çağırma. Erken dönem üretken yapay zeka iterasyonları metin üretimine mahkûmken, modern ajanlar harici sistemlerle etkileşime girmeli, veritabanlarına sorgu göndermeli, kod çalıştırmalı ve fiziksel veya dijital dünyayı manipüle etmelidir. Araç çağırma, bir LLM'nin olasılıksal çıkarımı ile yazılımın deterministik çalıştırması arasındaki köprüdür.

Mekanizmanın Tanımlanması

Temelinde, araç çağırma yapılandırılmış bir çıktı protokolüdür. LLM, bir eylem gerektiğini belirlediğinde serbest biçimli bir dize üretmek yerine, belirli bir JSON şeması çıkarması için yönlendirilir. Bu JSON nesnesi genellikle çağrılacak aracın adını ve çalıştırması için gereken argümanları içerir.

Bu süreç, LLM'yi bir "üretici"den bir "orkestratör"e dönüştürür. Model, kullanıcının niyeti hakkında çıkarım yapar, gerekli adımları belirler ve çalıştırmayı belirli bir işlevine devreder. İşlev çalıştırıldıktan sonra, sonuç LLM'nin bağlam penceresine geri beslenir; bu da modelin bir sonraki adımı belirlemesine veya nihai bir cevap oluşturmasına olanak tanır.

Araçların ve Şemaların Tanımlanması

Bir ajanın araçları kullanabilmesi için, bu araçların açıkça tanımlanmış olması gerekir. Bu genellikle, işlevin amacını, parametrelerini ve türlerini LLM'ye hassas bir şekilde tanımlayan bir JSON Şeması ile yapılır. Bu tanımlardaki netlik hayati önem taşır; şemadaki belirsizlik, halüsinasyon argümanlarına veya başarısız çalıştırmalara yol açar.

Basit bir hava durumu aracını düşünün. Şema, girdinin bir konumu temsil eden bir dize olduğunu açıkça tanımlamalıdır. Şema belirsizse, LLM şehir adı beklenirken koordinat geçebilir veya tam tersi olabilir.

Uygulama: Bir Python Örneği

Aşağıda, bir aracın nasıl tanımlandığını ve çağrıldığını göstermek için OpenAI Python kütüphanesini kullanan kavramsal bir örnek bulunmaktadır. Not: Üretim ortamında hata durumlarını ve yeniden denemeleri ele almanız gerekir.

import json
import openai

# 1. LLM'nin kullanabileceği işlevi tanımlayın
def get_current_weather(location: str) -> str:
    """
    Belirli bir konumdaki mevcut hava durumunu getirir.
    """
    # Gerçek bir uygulamada bu, harici bir API'yi çağırırdı
    return f"{location} şehrindeki hava durumu güneşli, 72F."

# 2. LLM için araç şemasını tanımlayın
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Belirli bir konumdaki mevcut hava durumunu getirir",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "Şehir ve eyalet, örn. San Francisco, CA"
                    }
                },
                "required": ["location"]
            }
        }
    }
]

# 3. Kullanıcı isteğini LLM'ye gönderin
response = openai.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "user", "content": "Paris'te hava durumu nasıl?"}
    ],
    tools=tools,
)

# 4. Araç çağrısını işleyin
message = response.choices[0].message
if message.tool_calls:
    for tool_call in message.tool_calls:
        function_name = tool_call.function.name
        function_args = json.loads(tool_call.function.arguments)
        
        # Yerel işlevi çalıştırın
        if function_name == "get_current_weather":
            result = get_current_weather(**function_args)
        
        # Sonucu LLM'ye geri gönderin
        messages = [
            {"role": "user", "content": "Paris'te hava durumu nasıl?"},
            message,
            {"role": "tool", "tool_call_id": tool_call.id, "content": result}
        ]
        
        # Nihai cevabı alın
        final_response = openai.chat.completions.create(
            model="gpt-4o",
            messages=messages,
        )
        print(final_response.choices[0].message.content)

Zorluklar ve En İyi Uygulamalar

Araç çağırma işlevini etkili bir şekilde uygulamak, birkaç zorluğu ele almayı gerektirir:

  • Gecikme: Araç çağrıları API'ye birden fazla gidiş-dönüş gerektirir. Mümkün olduğunda asenkron çalıştırma için tasarım yapın.
  • Hata Yönetimi: Bir araç başarısız olursa, hata mesajı, LLM'nin düzeltilmiş argümanlarla yeniden denemesine veya kullanıcıyı bilgilendirmesine olanak tanıyacak şekilde LLM'ye geri döndürülmelidir.
  • Güvenlik: LLM'ye asla rastgele kodu doğrudan çalıştırmaya izin vermeyin. Tüm araçlar kum havuzunda (sandbox) izole edilmeli ve sıkı bir şekilde tanımlanmalıdır.
  • Bağlam Penceresi Yönetimi: Uzun araç çağrısı zincirleri bağlam penceresini aşabilir. Ara adımlar için kırpma stratejileri veya özetleme uygulayın.

Sonuç

Araç çağırma, yapay zeka ajanlarının konuşmanın ötesine geçip eyleme geçmesini sağlayan temel teknolojidir. Net araç şemalarının tasarımını, sağlam çalıştırma ortamlarını ve akıllı hata yönetimini ustalaşarak, geliştiriciler yalnızca zeki değil, aynı zamanda güvenilir ve güvenli sistemler inşa edebilir. Modeller iyileştikçe, orkestra edebilecekleri araçların karmaşıklığı artacak ve bu mekanizmanın derinlemesine anlaşılması, her yapay zeka mühendisi için vazgeçilmez hale gelecektir.

Share: