12İzEylemde
Çalışırken adımları göster
Sessiz çalışan ajanın neyi neden yaptığı ne iş sürerken ne bittikten sonra görünüyor, kullanıcı hatanın kaynağını bulamıyor. Her eylemi aracı, hedefi, nedeni ve sonucuyla kaydeden, iki düzeyde gösterilen bir iz bu boşluğu kapatır.
- Kimlik
- TD-069
- Seviye
- Ajan AI kullanıcı adına iş yapıyorsa gerekli.
- Yüzey
- Arka plan ajanı, Sohbet, Yan panel
- Dayanak
- Ürün örneği
- Son inceleme
- 27 Ekim 2026
Ajanına ver
Claude Code, Cursor ya da Codex'e yapıştır. Metinlerin tamamı aşağıda, Ajanına ver bölümünde.

30 saniyede dene
Bu anı kendi ürününde yarat ve ne olduğuna bak.
- Ajanına durum değiştiren küçük bir iş ver, bir klasördeki eski dosyaları arşive taşımak ya da bir listedeki yinelenen satırları silmek gibi.
- İş sürerken ekrana bak. Ajanın o an hangi dosyaya ya da kayda dokunduğunu ve bunu neden yaptığını görebiliyor musun?
- İş bitince taşınan ya da silinen bir öğe seç. Ona dokunan eylemi girdisiyle ve sonucuyla bulabiliyor musun?
- Ajana bir adımı neden attığını sor. Cevap bir kayda mı dayanıyor, yoksa ajan o an yeni bir açıklama mı kuruyor? Kayıt yoksa bu desen ürününde eksik.
Sorun
Kullanıcı ajana müşteri listesindeki yinelenen kayıtları temizlemesini söylüyor. Ajan iki dakika çalışıyor, ekranda bir sayaç dönüyor ve sonunda tek satır kalıyor: 14 işlem yapıldı, liste düzenli. Ertesi gün kullanıcı iki ayrı şirketin kaydının tek kayıtta birleştiğini fark ediyor. Ajanın hangi kayıtları neye bakarak birleştirdiğini bulmak istiyor. Bakacak bir yer yok.
Ajana soruyor. Ajan cevap veriyor, ama bu cevap bir kayıt sayılmaz. Model o an makul bir açıklama kuruyor: e-posta adresleri aynı olduğu için birleştirmiş olmalı. İşlem anında neye baktığı hiçbir yerde yazılı olmadığı için kullanıcı bu açıklamayı hiçbir şeyle karşılaştıramıyor.
Sessiz çalışan ajan iki yerde pahalı. İş sürerken kullanıcı ajanın yanlış yöne saptığı anı göremiyor ve araya giremiyor. İş bittikten sonra bir hata çıktığında hatanın hangi adımda, hangi girdiyle, hangi nedenle doğduğunu bulamıyor.
Ajanın yaptığını göremeyen kullanıcı onu denetleyemez, yalnız ona güvenmeyi ya da güvenmemeyi seçer.
Neden atlanıyor
Ajan çerçeveleri izi zaten tutuyor, yalnız kullanıcı onu görmüyor. OpenAI'ın Agents SDK'sı izlemeyi varsayılan olarak açık getiriyor ve bir çalıştırmadaki model üretimlerini, araç çağrılarını ve devirleri1 kaydediyor. Bu kayıt geliştiricinin panosuna gidiyor. Ekip hata ayıklarken izi okuyor, kullanıcının ekranına ise yalnız son cevap düşüyor. Ekip izi kendi ihtiyacı için kuruyor ve kullanıcının da aynı soruyu soracağını hesaba katmıyor.
İkinci neden kalabalık korkusu. Ham araç çağrısı okunmuyor: JSON girdiler, uzun çıktılar, yüzlerce satır. Ekip bunun kullanıcıyı boğacağını düşünüyor ve haklı, ama izi tümden gizliyor. Her eylemi okunur tek bir satıra çeviren ara katman ayrı bir iş ister ve ilk sürümde hep sonraya kalır.
Üçüncü neden modelin kendisi. Ajan sorulunca neden yaptığını akıcı bir dille anlatabildiği için ekip ayrıca bir kayda gerek görmüyor. OpenAI'ın ajan yönetişimi üzerine yayımladığı çalışma bu varsayıma karşı çıkıyor. Yazarlara göre ajandan davranışını sonradan gerekçelendirmesini istemek büyük olasılıkla uydurma bir akıl yürütme üretir2. Gerekçe işlem anında yazılmadıysa sonradan gelen cevap bir yeniden kurgu olarak kalır.
Desen
Ajan her eylemi yaparken arkasında bir satır bırakır: hangi araç, hangi girdi, hangi hedef, neden ve sonuç. Bu iz iş sürerken kullanıcının önünde akar, iş bittikten sonra da yerinde durur.
- Kaydı araç katmanı tutsun. Eylemin kaydını model yazmaz, aracı çağıran kod yazar. Böylece ajanın atladığı ya da unuttuğu adım olmaz. OpenTelemetry'nin üretken AI kuralları bu kaydın biçimini de tarif ediyor: her araç çalıştırması
execute_tooladlı ayrı bir aralık3 olarak, aracın adı, çağrı kimliği, girdisi ve sonucuyla yazılıyor. Kurallar henüz geliştirme aşamasında, alanları bugün kullanabilirsin. - Beş alanı doldur. Araç (ne yaptı), girdi (hangi değerle), hedef (hangi kayıt, dosya, kişi), neden (bu adımı neden attı) ve sonuç (ne döndü, ne değişti). Nedeni ajan eylemden önce tek cümleyle yazar. Sonradan sorulunca kurulan gerekçe bu alanın yerini tutmaz.
- İki düzeyde göster. Ekranda her eylem tek satır olur: fiil, nesne, sonuç. Satıra tıklayınca girdi, ham çıktı ve süre açılır. Claude Code bu ayrımı yapıyor. Bazı satırlar varsayılan olarak tek satıra katlanıyor, Ctrl+O ile açılan dökümde ayrıntılı araç kullanımı, zaman damgası ve modelin adı4 görünüyor.
- İzi iş bitince silme. Kullanıcı hatayı çoğu zaman ertesi gün bulur. İz oturumdan, sohbetten ve ajanın kendisinden uzun yaşar. Değişen bir kayıttan ona dokunan eyleme tek tıkla gidilir.
- Değeri maskele, eylemi bırak. Araç girdileri parola, anahtar ya da kişisel veri taşıyabilir. Alanın değerini gizle, eylemin satırını koru. OpenTelemetry girdi ve sonuç alanlarını bu yüzden isteğe bağlı tutuyor ve hassas bilgi taşıyabileceklerini yazıyor3.
Ajan zaten araç çağırıyor, çerçeve zaten kaydediyor. Desen o kaydı kullanıcının okuyacağı yere taşıyor ve her satıra nedenini ekliyor.
Önce ve sonra
Aynı temizlik işi, iki ekran. Soldaki ajan iş bitince işlem sayısını veriyor, kullanıcı sorunca nedeni tahmin ediyor. Sağdaki ajan her birleştirmeyi kaydıyla, nedeniyle ve sonucuyla yazıyor, emin olmadığı eşleşmeyi ayrı bir satırda kullanıcıya bırakıyor.
Kullanıcı ajandan müşteri listesindeki yinelenen kayıtları temizlemesini istiyor. Ajan kayıtları birleştiriyor ve fazlalarını arşive taşıyor.
Ajan · müşteri listesi temizliği
- Kullanıcı: Müşteri listesindeki yinelenen kayıtları temizle.
- Temizlik tamamlandı (tamamlandı)14 işlem · 2 dk 10 sn
- AI: Yinelenen kayıtları birleştirdim, liste artık düzenli.
- Kullanıcı: Kaya Ahşap'ın kaydı başka bir şirketle birleşmiş. Neye bakarak birleştirdin?
- AI: Büyük olasılıkla e-posta adresleri aynı olduğu için birleştirmişimdir. Hangi kayıtlara dokunduğumun ayrıntılı listesi bende yok.
- Ekranda yalnız işlem sayısı ve süre var. Ajanın hangi kayıtları, hangi araçla, neye bakarak birleştirdiği hiçbir yerde yazmıyor.
- Kullanıcı sorunca ajan nedeni o an yeniden kuruyor. Kullanıcının bu tahmini karşılaştıracağı, işlem anında yazılmış bir kayıt yok.
Ajan · müşteri listesi temizliği
- Kullanıcı: Müşteri listesindeki yinelenen kayıtları temizle.
- Yinelenenler arandı · müşteri tablosu (tamamlandı)2.140 kayıt tarandı · 37 grup · neden: aynı e-posta ya da aynı vergi no
- Birleştirildi · Deniz Yapı (3 kayıt → 1) (tamamlandı)neden: e-posta ve vergi no aynı · sonuç: 2 kayıt arşive taşındı
- Birleştirilmedi · Kaya Ahşap ve Kaya Mimarlık (durduruldu)neden: e-posta aynı, vergi no farklı · karar sana bırakıldı
- Sırada · 34 grup (bekliyor)her biri bu listeye ayrı satır olarak düşecek
- AI: Emin olmadığım eşleşmeleri birleştirmiyorum, ayrı satırda sana bırakıyorum. Her satırın girdisi ve ham sonucu tıklayınca açılıyor.
- Tam izi açDurdur
- Her satır hangi aracın hangi kayda neden dokunduğunu ve ne olduğunu söylüyor. Neden alanı eylemden önce yazılıyor, sonradan sorulunca kurulmuyor.
- Ajanın emin olmadığı eşleşme ayrı satırda duruyor ve kullanıcı oradan araya giriyor. İz iş bittikten sonra da açılıyor, ertesi gün bulunan bir hata tek satıra kadar izleniyor.
Örnek ekran. Ürün, ad ve sayılar kurgusal.
Piyasada
GitHub'ın kodlama ajanı her oturum için bir günlük tutuyor. Günlük Copilot'ın iç akıl yürütmesini ve kullandığı araçları5 gösteriyor, kullanıcı ilerlemeyi oturum sürerken izleyebiliyor. Oturum bittikten sonra Copilot Chat aynı günlüğe dayanarak bir değişiklik için neyin değiştiğini, neyin doğrulandığını ve nedenini6 cevaplayabiliyor. GitHub'ın belgesi sınırı da yazıyor: günlük kullanıcının kendi incelemesinin ve testinin yerini tutmuyor.
Google'ın kodlama ajanı Jules çalışırken gerçek zamanlı bir etkinlik akışı tutuyor. Akış tamamlanan her adımı, ne yapıldığını, çıktıları ve karşılaşılan hataları7 yazıyor. Kod değişince küçük bir fark görünümü de akışın içine düşüyor.
Zapier'in ajanları aynı işi kod dışındaki işlerde yapıyor (şirket bu ürünü AI by Zapier'a taşıyor). Her çalıştırmanın ayrıntısında ajanın hangi bilgiyi kullandığı ve isteklere nasıl karşılık verdiği8 görünüyor. Aynı belge bir zayıflığı da söylüyor. Ajan silinince bütün etkinlik kaydı da siliniyor, iz ajanla birlikte gidiyor.
Anthropic'in ajan rehberi üç temel ilkesinden birini bu konuya ayırıyor ve ajanın planlama adımlarını açıkça göstermesini9 istiyor.
Kanıt
OpenClaw, Şubat 2026. Summer Yue'nin paylaştığı ekran görüntülerinde ajanın her komutu sohbete ayrı bir satır olarak düşüyor ve bazı satırlar komutun yanında ajanın kendi notunu taşıyor. Yue ajana ne yaptığını sorduktan sonra gelen satırlardan biri şu: “Nuclear option: trash EVERYTHING in inbox older than Feb 15”10. Satır eylemin nedenini eylemle aynı anda gösterdi ve Yue bir dakika içinde “Do not do that” yazdı. Aynı ekran görüntüsünde satırlar komutu ve notu gösteriyor, komutun sonucunu göstermiyor. Kaç e-postanın çöpe gittiği satırlardan okunmuyor. Ajan bunu sonradan kendi cümlesiyle anlattı: yüzlerce e-postayı çöpe atmış ve arşivlemişti11. Yue'nin durma mesajlarına rağmen ajanın devam etmesi ayrı bir desenin konusu.
Replit, Temmuz 2025. Kod dondurma sırasında ajan canlı veritabanını sildi. Kullanıcının paylaştığı gerekçe, ajanın silmeden sonra yazdığı açıklama. Ajan veritabanını boş görmüş, Drizzle'ın “No changes detected” çıktısını güvenli saymış ve paniklemişti12. Bu açıklama ajanın kendi anlatımı. İşlem anında yazılmış bir kayıt yerine geçmez, çünkü OpenAI çalışmasının uyardığı gibi sonradan istenen gerekçe uydurmaya açık.
Aynı çalışma desenin gerekçesini de yazıyor. Kullanıcı ajanın eylemlerini ve akıl yürütmesini ne kadar görürse, iş sürerken de bittikten sonra da bir şeylerin ters gittiğini fark edip araya girmesi o kadar kolaylaşıyor. Yazarlar kullanıcıya ajanın yaptığı eylemlerin bir defterini2 vermeyi öneriyor.
Bu kaynakların hiçbiri eylem izinin etkisini sayıyla ölçmüyor. Dayanak, ürünlerin ortak uygulaması ve iki olayın gösterdiği boşluk. Etkiyi kendi ürününde aşağıdaki sinyallerle ölç.
- 23 Şubat 2026OpenClaw üç “dur” mesajına rağmen gelen kutusundaki e-postaları çöpe atmayı sürdürdü
- 18 Temmuz 2025Replit'in ajanı kod dondurma sırasında canlı veritabanını sildi
Ölçüm
- İzden bulunan kök neden. Kullanıcının ya da destek ekibinin bir hatanın nedenini izden bulduğu vakaların payı. Desen yerindeyse bildirilen sorunların çoğu izdeki tek bir satıra bağlanıyor.
- Boş neden. Durum değiştiren eylemlerin kaçında neden alanı boş ya da “görev gereği” gibi içi boş bir cümle? Örneklemle oku. Hedef sıfıra yakın.
- İz ile gerçek arasındaki fark. Rastgele oturumlarda izi sistemlerin kendi günlükleriyle (veritabanı, e-posta sunucusu, dosya sistemi) karşılaştır. İzde görünmeyen bir değişiklik bulunmamalı.
- Araya girme anı. Kullanıcının ajanı durdurduğu ya da düzelttiği anlarda bunu hangi satırı gördükten sonra yaptığına bak. Araya girmeler iz satırlarının hemen ardından geliyorsa iz okunuyor.
- Sonradan sorulan “neden”. Kullanıcının iş bitince ajana “bunu neden yaptın” diye yazdığı mesajlar. İz işini yapıyorsa bu mesajlar azalır.
Ajanına ver
Üç metin var. Denetim promptu ürünündeki ajanın araç çağrılarını ve bunların kaydını bulur, kullanıcının bu kaydı görüp görmediğini, kaydın neden ve sonuç taşıyıp taşımadığını raporlar, hiçbir dosyayı değiştirmez. Uygulama promptu araç katmanına beş alanlı bir eylem kaydı ekler ve onu iki düzeyli bir iz ekranına bağlar. Önce planı gösterir, onayınla uygular ve araç katmanını atlayan bir çağrıyı yakalayan bir test ekler. Kural kodlama ajanının kendi işi için. Senin deponda çalışırken o da neyi neden yaptığını adım adım yazsın.
Bu depoda kullanıcı adına araç çağıran bir AI ajanı var (dosya, veritabanı, e-posta, takvim, dış API). Görevin, ajanın yaptığı eylemlerin kullanıcıya iş sürerken ve iş bittikten sonra görünüp görünmediğini denetlemek. Hiçbir dosyayı değiştirme, yalnız rapor yaz.
1. Ajanın araçları çağırdığı yeri bul: araç tanımları, ajan döngüsü, araç çağrısını yapan fonksiyon. Her araç çağrısı bir yere kaydediliyor mu (günlük, izleme, veritabanı tablosu, OpenTelemetry aralığı)?
2. Kayıtta hangi alanlar var: araç adı, girdi, hedef (hangi dosya, kayıt, kişi), neden, sonuç, süre, hata? Eksik olanları yaz. Neden alanı varsa eylemden önce mi yazılıyor, sonradan mı üretiliyor?
3. Bu kayıt kullanıcının ekranına ulaşıyor mu, yoksa yalnız geliştirici panosuna ya da sunucu günlüğüne mi gidiyor? Arayüzde eylemleri listeleyen bir bileşen var mı?
4. Kayıt iş bittikten sonra da okunabiliyor mu? Oturum kapanınca, sohbet silinince ya da ajan silinince kayıt da siliniyor mu? Değişen bir öğeden (dosya, kayıt, gönderilen e-posta) ona dokunan eyleme giden bir bağ var mı?
5. Ajan kullanıcıya "şunları yaptım" ya da "bunu şu yüzden yaptım" dediğinde bu cümle araç kaydından mı geliyor, modelin o anki beyanından mı?
6. Kayıtta parola, anahtar, kişisel veri gibi hassas değerler açık mı duruyor? Maskeleme varsa eylemin kendisini de siliyor mu?
7. Kaydın dışında kalan eylem yolu var mı: araç katmanını atlayıp doğrudan kabuk komutu, HTTP isteği ya da veritabanı sorgusu çalıştıran kod?
Rapor biçimi: önce bugün bir eylemin hangi alanlarla nereye kaydedildiğinin kısa tarifi. Sonra her bulgu için dosya ve satır, ne olduğu, kullanıcının neyi göremediği (örnek: ajan iki müşteri kaydını birleştiriyor, kullanıcı hangi kayıtları ve nedenini göremiyor) ve önerdiğin düzeltme. Kaydın dışında kalan eylem yollarından başla.
Bu depodaki AI ajanına "çalışırken adımları göster" desenini uygula. Önce planı göster, onayımı aldıktan sonra kodu değiştir.
Hedef davranış:
1. Ajanın her araç çağrısı araç katmanında bir eylem kaydı üretsin: araç, girdi, hedef, neden, sonuç, süre, hata. Kaydı model değil, aracı çağıran kod yazsın.
2. Nedeni ajan eylemden önce tek cümleyle versin (araç çağrısına eklenen kısa bir gerekçe alanı). Gerekçe yoksa kayıtta "gerekçe yok" yazsın, sonradan doldurulmasın.
3. Arayüzde eylemler iş sürerken tek satır olarak aksın: fiil, nesne, sonuç ("Birleştirildi · Deniz Yapı (3 kayıt → 1)"). Satıra tıklayınca girdi, ham çıktı, süre ve gerekçe açılsın.
4. İz iş bittikten sonra da açılsın. Oturum, sohbet ya da ajan silinse de iz belirlediğin saklama süresince dursun. Değişen her öğeden ona dokunan eyleme bir bağ olsun.
5. Hassas değerleri (parola, anahtar, kart, kimlik numarası) kayıtta maskele, eylemin kendisini silme.
6. Durum değiştiren eylemleri (yazma, silme, gönderme, ödeme) yalnız okuyanlardan ayır. Uzun işlerde okuma eylemlerini tek satırda topla.
Uygularken:
- Ajan çerçevesi izleme sunuyorsa (OpenTelemetry, SDK'nın kendi izlemesi) aynı kaydı kullan, ikinci bir kayıt sistemi kurma. Kullanıcı ekranındaki satırı bu kayıttan üret.
- Araç katmanını atlayan eylem yollarını kapat ya da onları da kayda bağla.
- Bir test ekle: sahte araçları çağıran bir ajan işi çalıştır ve her çağrının arayüze girdi, hedef, neden ve sonuçla düştüğünü doğrula. Araç katmanını atlayan bir çağrı denendiğinde testin düştüğünü de göster.
## Çalışırken adımları göster
- Durum değiştiren her eylemden önce tek cümleyle ne yapacağını ve nedenini yaz: hangi araç, hangi hedef, neden.
- Eylemden sonra sonucu yaz: ne döndü, ne değişti, kaç öğe etkilendi.
- Bir adımı neden attığın sorulursa kayda bak. Kayıt yoksa bunu söyle, yeni bir gerekçe kurma.
- Okuma adımlarını topla, yazma, silme ve gönderme adımlarını tek tek göster.
- Kayda parola, anahtar ya da kişisel veri yazma, değerini maskele.
Sınır
Yalnız okuyan, tek adımlık işlerde eylem izi gerekmez. Bir soruyu cevaplayan ya da bir metni özetleyen AI için kaynağı göstermek yeter. Bu desen ajanın araç kullandığı ve bir şeyi değiştirdiği işler için.
İz kalabalıklaşırsa okunmaz. Yüzlerce eylemlik bir işte her okumayı ayrı satırda gösterme. Okumaları topla, yazma, silme ve gönderme eylemlerini tek tek göster, geri dönüşü olmayanları öne çıkar.
İz modelin içini göstermez. Araç, girdi, hedef ve sonuç alanlarını kod yazar, bu yüzden güvenilir. Neden alanını model yazar ve o da bir üretim. OpenAI'ın çalışması modellerin akıl yürütmelerine her zaman dayanmadığını2 hatırlatıyor. İz ajanın ne yaptığını kesin, neden yaptığını yaklaşık söyler.
İz kullanıcının yerine dikkat etmez. Kimse satırları okumuyorsa iz yalnız sonradan inceleme işine yarar. Ajanı yolda durdurmak ve geri dönüşü olmayan adımda onay istemek ayrı desenlerin işi.