0Pricing
AI Agents · Ders

İdempotent Araçlar ve Yan Etkiler

Bir aracı yeniden deneyebilirsiniz; çağrının iki kez yapılmasının iki kez ücret kesmesine veya e-posta göndermesine yol açmaması için araçları tasarlayın.

İdempotent Araçlar ve Yan Etkiler, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.

İdempotentlik Neden Önemlidir

Ajan döngüsü yeniden deneme yapabilir. Bir araç e-posta gönderiyor veya kredi kartından ücret çekiyorsa yeniden denemek işlemi yineler. İdempotentlik, X zaten gerçekleşmişse "X'i tekrar yap" işlemini etkisiz hâle getirir.

İdempotentlik Nedir

Bir işlem, N kez çağrıldığında bir kez çağrılmasıyla aynı etkiyi oluşturuyorsa idempotent olarak adlandırılır. Örnekler:

  • "Kullanıcı durumunu etkin olarak ayarla" — idempotenttir (durumu yeniden etkin olarak ayarlamak hiçbir şey yapmaz)
  • "Sayacı 1 artır" — idempotent değildir (her çağrı 1 daha ekler)

İdempotentlik Anahtarları

İdempotent olmayan işlemler için (ödemeler, e-postalar) idempotentlik anahtarları kullanın:

import uuid

def create_payment(amount, idempotency_key):
    # Stripe accepts this header — returns the existing payment if key was used
    return stripe.Charge.create(
        amount=amount,
        currency='usd',
        source=token,
        idempotency_key=idempotency_key
    )

Anahtarları Niyetten Üretme

Aynı yeniden denemelerin aynı anahtarı yeniden kullanması için (araç adı, bağımsız değişkenler, çalıştırma kimliği) değerlerinin özetini kullanın:

import hashlib, json

def intent_key(tool_name, args, run_id):
    payload = json.dumps([tool_name, args, run_id], sort_keys=True)
    return hashlib.sha256(payload.encode()).hexdigest()

print(intent_key('transfer_money', {'to': 'acc2', 'amount': 100}, 'run-1'))

Yan Etki Envanteri

Hangi araçların yan etkisi olduğunu listeleyin:

  • SEND e-posta / SMS
  • CHARGE / refund
  • CREATE / DELETE veritabanı satırları
  • Durumu değiştiren harici API'lere POST

Salt okunur araçlar doğaları gereği idempotenttir. Yazma işlemlerine odaklanın.

Yan Etkili Araçları Sarmalama

Araç uygulamasına bir idempotentlik katmanı ekleyin:

def send_email(to, subject, body, run_id):
    key = intent_key('send_email', {'to': to, 'subject': subject, 'body': body}, run_id)
    if redis.set(f'sent:{key}', 1, nx=True, ex=86400):
        smtp.send(to, subject, body)
        return {'sent': True}
    return {'sent': False, 'reason': 'already-sent'}

İşlem Yapmadan Önce Onay Alma

Yüksek riskli işlemler için bir onay adımı ekleyin:

def transfer_money(from_acc, to_acc, amount, confirmed=False):
    if not confirmed:
        return {'pending': True, 'msg': 'Call again with confirmed=True to proceed.'}
    return {'pending': False, 'msg': f'Transferred {amount} from {from_acc} to {to_acc}.'}

print(transfer_money('acc1', 'acc2', 100))
print(transfer_money('acc1', 'acc2', 100, confirmed=True))

İki Aşamalı Araçlar

Araçları "taslak" ve "uygulama" aşamalarına ayırın:

def draft_email(to, subject, body):
    draft_id = save_draft(to, subject, body)
    return {'draft_id': draft_id, 'preview': body[:200]}

def send_draft(draft_id):
    return smtp.send(load_draft(draft_id))

Telafi İşlemleri

Bir yan etkiden kaçınamıyorsanız bir "geri alma" aracı tanımlayın:

def refund_payment(payment_id):
    return stripe.Refund.create(payment=payment_id)
# Now an erroneous create_payment can be undone.

Denetim Günlükleri

Her yan etkili araç şunları MUST günlüğe kaydetmelidir: işlemi kimin başlattığı, hangi bağımsız değişkenlerin kullanıldığı, zaman ve sonuç. Daha sonra sorgulayabileceğiniz yapılandırılmış günlükler kullanın.

Çalıştırma Başına Yan Etki Bütçesi

Bir güvenlik ağı olarak her çalıştırmadaki yan etkilerin sayısını sınırlayın:

if state.side_effect_count >= 5:
    return {'error': 'Side-effect budget exhausted for this run.'}

Deneme Çalıştırma Modu

Geliştirme sırasında kullanışlıdır: araçlar WOULD yapacakları işlemi günlüğe kaydeder, ancak işlemi gerçekten gerçekleştirmez:

import os
os.environ['DRY_RUN'] = '1'
DRY_RUN = os.getenv('DRY_RUN') == '1'

def send_email(to, subject, body):
    if DRY_RUN:
        print(f'would send email to {to}')
        return {'sent': False, 'dry_run': True}
    print(f'sending email to {to}')
    return {'sent': True, 'dry_run': False}

result = send_email('user@example.com', 'Hi', 'Hello there')
print(result)

Tanım

Bir araç için "idempotent" ne anlama gelir?

Özet

Yan etkileri belirleyin. İdempotentlik anahtarları kullanın. İki aşamalı araçlar ve telafi işlemleri oluşturun. Her şeyi denetleyin. Geliştirme sırasında deneme çalıştırması yapın.

Sıkça Sorulan Sorular

“İdempotent Araçlar ve Yan Etkiler” dersi ücretsiz mi?

Evet — “İdempotent Araçlar ve Yan Etkiler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.

“İdempotent Araçlar ve Yan Etkiler” dersinde ne öğreneceğim?

Bir aracı yeniden deneyebilirsiniz; çağrının iki kez yapılmasının iki kez ücret kesmesine veya e-posta göndermesine yol açmaması için araçları tasarlayın. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AI Agents öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“İdempotent Araçlar ve Yan Etkiler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İdempotent Araçlar ve Yan Etkiler
  2. Üstel Geri Çekilmeyle Yeniden Denemeler
  3. Zaman Aşımları ve Devre Kesiciler
  4. Araç Çıktılarını Doğrulama (Pydantic)
← AI Agents Sayfasına Dön