Araç Çağrılarını ve Girdileri ve Çıktıları Günlükleme
Her adımda yakalanacakları öğrenin: araç adı, girdi bağımsız değişkenleri, çıktı, gecikme, hata ve üst yayılım kimliği.
Araç Çağrılarını ve Girdileri ve Çıktıları Günlükleme, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 2. 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.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Her Adımda Neler Günlüğe Kaydedilmeli?
Her span için şunları kaydedin:
- Adım adı (LLM çağrısı, araç çağrısı, getirme)
- Girdiler (iletiler, araç bağımsız değişkenleri, sorgu)
- Çıktılar (yanıt, araç sonucu)
- Üst veriler (model, gecikme, belirteç sayıları, maliyet)
- Başarısız olduysa hata bilgileri
Elle Yazılmış span Yardımcısı
Bir çerçeve olmadan kullanılabilecek en küçük yardımcı:
from contextlib import contextmanager
import time, uuid
@contextmanager
def span(name, trace_id, parent_id=None):
span_id = str(uuid.uuid4())
start = time.time()
record = {'trace_id': trace_id, 'span_id': span_id, 'parent_id': parent_id, 'name': name, 'start': start}
try:
yield record
except Exception as e:
record['error'] = str(e)
raise
finally:
record['duration_ms'] = (time.time() - start) * 1000
save_span(record)Using It
trace_id = str(uuid.uuid4())
with span('llm_call_planner', trace_id) as s:
s['model'] = 'gpt-4o-mini'
s['messages_in'] = messages
response = client.chat.completions.create(model='gpt-4o-mini', messages=messages)
s['response'] = response.choices[0].message.content
s['tokens_in'] = response.usage.prompt_tokens
s['tokens_out'] = response.usage.completion_tokensspan'leri İç İçe Yerleştirme
span'lerin bir ağaç oluşturması için üst kimliği aşağıya aktarın:
with span('agent_step', trace_id) as parent:
with span('llm_call', trace_id, parent_id=parent['span_id']):
...
with span('tool_call:search', trace_id, parent_id=parent['span_id']):
...Araç Çağrılarını Günlüğe Kaydetme
Özellikle araç çağrıları için şunları günlüğe kaydedin:
- Araç adı
- Bağımsız değişkenler (JSON)
- Sonuç (JSON, gerekirse kısaltılmış)
- Gecikme
- Hata (varsa)
Büyük Yükleri Kısaltın
Bazı araç sonuçları çok büyüktür (200 KB HTML). Depolamadan önce kısaltın:
def safe_payload(obj, max_chars=8000):
s = json.dumps(obj)
return s if len(s) <= max_chars else s[:max_chars] + '...[truncated]'PII Redaksiyonu
Depolamadan önce kişisel bilgileri çıkarın:
import re
EMAIL_RE = re.compile(r'[\w\.-]+@[\w\.-]+')
def redact(text):
return EMAIL_RE.sub('[email]', text)
print(redact("Contact me at alice@example.com for details."))
Yapılandırılmış Günlük Çıktısı
Her span için bir JSON kaydı üretin — ELK, Loki, Datadog veya BigQuery'ye aktarın:
import json
import sys
def save_span(record):
print(json.dumps(record), file=sys.stderr, flush=True)
demo_record = {'span': 'call_llm', 'duration_ms': 120, 'ok': True}
save_span(demo_record)
print("Logged span:", json.dumps(demo_record))
Kullanıcı Oturumlarıyla İlişkilendirme
Daha sonra trace kayıtlarını kullanıcıya göre filtreleyebilmeniz için her span kaydına bir session_id ve user_id ekleyin.
Örnekleme
Yüksek hacimli ajanlarda örnekleme yapın:
import random
def should_trace(user_id):
return random.random() < 0.10 # 10% of traces
# Always trace errors and slow runs.
random.seed(42)
sampled = sum(should_trace(i) for i in range(1000))
print(f"Traced {sampled} out of 1000 calls (~10% target)")
Trace Kayıtlarından Yeniden Çalıştırma
İyileştirmeleri sınamak için bir trace kaydını yeni bir istemle yeniden çalıştırabilmeniz amacıyla tüm girdileri (mesajlar, araçlar, bağımsız değişkenler) kaydedin. Bu, değerlendirme odaklı geliştirmenin temelidir.
Büyük Veri Yükleri Kısaltılsın mı?
Günlüklerdeki büyük araç çıktılarını neden kısaltmalısınız?
Özet
Her adım, her girdi, her çıktı — yapılandırılmış, iç içe ve örneklenmiş. Gözlemlenebilirlikteki diğer her şeyin ham maddesi budur.
Yapay zeka eğitmeniyle AI Agents öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 60
- Dersler
- 239
Sıkça Sorulan Sorular
“Araç Çağrılarını ve Girdileri ve Çıktıları Günlükleme” dersi ücretsiz mi?
Evet — “Araç Çağrılarını ve Girdileri ve Çıktıları Günlükleme” 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.
“Araç Çağrılarını ve Girdileri ve Çıktıları Günlükleme” dersinde ne öğreneceğim?
Her adımda yakalanacakları öğrenin: araç adı, girdi bağımsız değişkenleri, çıktı, gecikme, hata ve üst yayılım kimliği. 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 2. dersidir.
“Araç Çağrılarını ve Girdileri ve Çıktıları Günlükleme” 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
- Aracılar için İzleme Neden Gereklidir
- Araç Çağrılarını ve Girdileri ve Çıktıları Günlükleme
- Adım Başına Gecikme ve Maliyet
- Aracı Çalışmalarını Görselleştirme (Langfuse, LangSmith)