Blog

Yapay zekâ ajanım ne yaptı? Kanıtla yanıtlanacak dört soru

Her yapay zekâ ajanı görevinde kimin yaptığını, neyin değiştiğini, neyin atlandığını ve nedenini, “bitti” yorumu yerine kontrol edebileceğin kanıtlarla görmelisin.

Weft, tek kişilik kurucular ve küçük ekipler için yapay zekâ görev yöneticisidir.

Tüm yazılar

Yazan Andrei Finogeev ·

Yapay zekâ ajanının ne yaptığını bilmek için onun özetiyle başlama. Dört şeyi kontrol et: işi hangi bağlantı yaptı, ne değişti (kendin açabileceğin bir şeyle gösterilmiş olarak), ne yapılmadan kaldı ve ne kararlaştırıldı, neden. Bu dördünden biri yalnızca ajanın sözüne dayanıyorsa elindeki bir kayıt değil, bir anlatı.

Weft’i biz geliştiriyoruz. Diğer ürünlerle ilgili bilgiler, 27 Ekim 2026’da kontrol edilen resmî sayfalarından alındı.

Neden "bitti" diyen bir yorum yeterli değil?

Bir yorum, ajanın kendi işini anlatmasıdır. Pekâlâ doğru olabilir, ama yorum bunu gösteremez, çünkü yazarı tam da kontrol etmeye çalıştığın taraftır. Bir ajanın bir göreve dokunduğunu bilmek kim sorusunu yanıtlar. İşin düşündüğün iş olup olmadığını yanıtlamaz.

Hypertask’ın yapay zekâ işinin atfedilmesi hakkındaki yazısı haklı bir noktaya değiniyor: ajan işi, kimsenin okumadığı bir terminal günlüğüne değil, insan işiyle aynı panoya düşmeli. Hypertask ajanlara hizmet hesabı olarak kendi kimliklerini de veriyor; böylece yazılanlar sana değil ajana atfediliyor. Görev kanıtı ve kiralamaları da var, ama belgeleri bunların tasarım gereği MCP araçları değil, yalnızca REST uç noktaları olduğunu söylüyor. Ayrıldığımız nokta, kaydın neyi içermesi gerektiği. Ajanın çıktısını içeren bir yorum dizisi, ajanın ne söylediğinin günlüğüdür. Biz kaydın kanıt tutmasını istiyoruz.

Bu rehberde anket rakamları yok. Dört soruyu bu öğleden sonra kendi panonda test edebilirsin; bu sana bir sektör ortalamasından daha fazlasını söyler.

Dört soru nedir?

Bir ajanın geçen hafta bitirdiği herhangi bir görevi seç. Bunların her birini ajana sormadan ya da sohbetini açmadan bir dakikadan kısa sürede yanıtlayabilmelisin:

  1. Kim yaptı? Görevi hangi istemcinin, hangi bağlantıyla sahiplenip bitirdiği.
  2. Ne değişti? Sonuç, artı ajana güvenmeden kontrol edebileceğin artefaktlar: bir commit hash’i, bir URL, bir dosya, bir mesaj id’si.
  3. Ne yapılmadı? Atladığı kısımlar ve emin olmadığı şeyler.
  4. Ne kararlaştırıldı ve neden? Yol boyunca yapılan her seçim, tartılan seçeneklerle birlikte ve işi geri gönderdiğin her an.
SoruZayıf yanıt: "bitti" diyen bir yorumGüçlü yanıt: kontrol edebileceğin kanıt
Kim yaptı?Her değişiklikte "Ajan" ya da kendi adın, çünkü bütün araçlar tek bir anahtarı paylaşıyorGörevi sahiplenip bitiren bağlantı, istemcinin kaydolurken kullandığı adla; her günlük olayı kişi ya da MCP olarak ve istemci id’siyle etiketli
Ne değişti?"Auth modülü yeniden düzenlendi, testler geçiyor"Bir commit hash’i, bir PR ya da sayfa URL’si, sha256’sıyla bir dosya, bir mesaj id’si: kendin açtığın bir şey
Ne yapılmadı?Hiçbir şey söylenmemiş, sen de hiçbir şeyin atlanmadığını varsayıyorsunBir notDone listesi ("staging’de migration çalıştırılmadı") ve bir unknowns listesi ("eski uç noktanın başka çağıranı olmadığından emin değilim")
Ne kararlaştırıldı ve neden?Çoktan kaydırılıp gitmiş bir sohbete gömülüTartılan seçenekleri ve yeniden ele alma koşulunu içeren bir karar kaydı, artı görevin neden geri gönderildiği dahil karar geçmişi

Hangi ajanın yaptığını nasıl bilirim?

Weft, yapay zekâ istemcilerine Model Context Protocol üzerinden tek bir uç noktada bağlanır: https://letsweft.com/api/mcp. Her OAuth istemcisi ve her kişisel erişim belirteci ayrı bir aktördür. Bir görev onu hangi istemcinin oluşturduğunu kaydeder; pano da o istemcinin girişte kaydolurken kullandığı adı ve bir simgeyi gösterir. Görevin günlüğündeki her olay, bir kişiden mi yoksa MCP üzerinden mi geldiğini ve hangi istemcinin gönderdiğini saklar.

Tam günlük (full modunda get_task_history) her olay için ham istemci id’sini gösterir: bir OAuth istemci id’si ya da mcp-token ve ardından belirtecin id’si. Okunaklı bir ad değil, ama kesin; aynı üründen gelseler bile iki bağlantıyı birbirinden ayırır.

İş sırasında sahiplik de açıktır. Bir ajan start_task çağırır; bu, görevi 20 dakikalık bir kiralamayla sahiplenir ve Doing’e taşır. report_progress kiralamayı yeniler. Aynı görevi deneyen ikinci bir ajan already_claimed alır ve süresi dolan bir kiralama görevi başkası için serbest bırakır. Sahiplenme döngüsü rehberi bunu adım adım anlatıyor; çok istemcili durumu da tek panoda birkaç ajan çalıştırmak yazısı ele alıyor.

Pratik bir kural: her araca kendi bağlantısını ver. İki istemci tek bir erişim belirtecini paylaşırsa pano tek bir aktör görür ve kim sorusu yanıtsız kalır.

Ne değişti ve bunu ajana sormadan kontrol edebilir miyim?

Bir ajan bitirdiğinde complete_task çağırır. Yalnızca görev id’si zorunludur; geri kalan her şey isteğe bağlıdır ve çağrı kanıt eksik diye asla başarısız olmaz. Bu bilinçli bir tercih: bitmiş işi kaybetmek onu doğrulanmamış olarak kaydetmekten daha kötüdür. Bir makbuzun taşıyabilecekleri:

  • outcome: neyin yapıldığı ve sonucun nerede durduğu hakkında en fazla 1.000 karakter.
  • artifacts: her biri bir tür (url, file, message, commit vb.), bir konum ve isteğe bağlı olarak bir sha256 özeti olan en fazla 20 girdi.
  • claims: ajanın yaptığını öne sürdüğü şeyler; doğrulanmış gerçekler olarak değil, iddialar olarak saklanır.
  • notDone ve unknowns: bir sonraki bölümde ele alınıyor.
  • nextStep: kabul edersen ajanın bir sonra yapacağı şey.
complete_task({
  "id": "<task id>",
  "runId": "<from start_task>",
  "leaseToken": "<from start_task>",
  "outcome": "Rate limiting added to /login; PR open, not merged.",
  "artifacts": [
    { "kind": "commit", "uri": "<repo>/commit/<hash>" },
    { "kind": "url", "uri": "<repo>/pull/<number>" }
  ],
  "notDone": ["Did not change the signup endpoint"],
  "unknowns": ["Limit of 5 per minute is a guess; no traffic data"],
  "nextStep": "Merge the PR to main"
})

Sonuç satırı hâlâ bir anlatıdır. Artefaktlar kontrol edebileceğin kısımdır. Bir commit hash’i deponda ya vardır ya yoktur. Bir URL ya açılır ya açılmaz. Bir dosyanın sha256’sı ya eşleşir ya eşleşmez. Bir makbuzda sonuç var ama artefakt yoksa onu ajanın bildirdiği iş olarak gör, çünkü öyledir. Web’de Done kartları bir görevin Doğrulandı mı yoksa Ajana göre mi olduğunu gösterir.

Ajan neyi yapmadı?

Çoğu kaydın atladığı ve iki hafta sonra başına dert açan soru bu. complete_task’ta bunun için her biri 500 karakterlik en fazla 20 girdi alan iki liste var: ajanın bilerek dışarıda bıraktıkları için notDone, emin olmadıkları için unknowns. Aracın kendi açıklaması ajanlardan yapmadıklarını açıkça söylemelerini istiyor. Güvenebileceğin bir sonucu, yeniden çıkarmak zorunda olduğun bir sonuçtan ayıran şey budur.

Önce bu listeleri oku. "Testler staging veritabanına karşı çalıştırılmadı", bir sonraki adımını değiştirir. Büyük bir görevde hiç notDone girdisi olmayan bir makbuz da kendi başına sorulmaya değer.

Ne kararlaştırıldı ve neden?

Sohbette verilen kararlar sohbet kaydırılıp gittiğinde kaybolur. record_decision onları iki şekilde tutar:

  • Bağımsız bir karar kaydı: bir başlık, sonuç, bağlam, gerçekten tartılan seçenekler, sonuçları ve kararın yeniden ele alınacağı koşul. Kayıtlar değiştirilemez; birini değiştirmek, onun yerine geçen yeni bir karar kaydetmek demektir ve eskisi yerinde, yerine geçildi olarak işaretli kalır.
  • Hüküm aktarımı: bir ajana sohbette "kabul", "X ile yeniden yap", "bırak" ya da "şimdi değil" dediğinde, bu hükmü notunla birlikte göreve kaydeder.

get_task_history bunu üç modda geri okur: summary (kart, son makbuzu ve sayımlar), decisions (görevle ilgili her karar, neden geri gönderildiği dahil; bu, sonraki bir kabulden sonra da kalır) ve full (ham günlük, en fazla 100 olay). get_context canlı kararları bir token bütçesi içinde bir sonraki ajana verir; böylece bir sonraki çalışma sıfırdan değil, kararlaştırılandan başlar. Bu konuda daha fazlası yapay zekâ sohbetlerindeki kararlar neden kaybolur yazısında.

Nerede incelerim ve neye tıklarım?

Varsayılan olarak tamamlanan görev doğrudan Done’a gider. Görev inceleme gerektirdiğinde ya da bir doğrulama kontrolü başarısız olduğunda Gelen kutunda durur. Orada makbuzu ve dört düğmeyi görürsün: Kabul et, Yeniden yap, Sonra ve Bırak. Yeniden yap bir not ister ve o not ajana geri gider.

Ajan bir nextStep verdiyse o, Kabul et düğmesinin üstünde görünür ve kabul etmek tam olarak o adımı onaylar. Onay 72 saat geçerlidir ve ajana get_my_work ya da start_task üzerinden, sıradaki tek adım olarak geri döner. Bir ajanın request_input ile sorduğu sorular da aynı Gelen kutusuna, web’de ve iOS ile Android uygulamalarında, bir mobil bildirimle düşer.

Gelen kutusunun bilerek konmuş bir sınırı var: tek kişilik çalışma alanı için bekleyen 5 öğe, ekip için 10 ya da tahmini 45 dakikalık inceleme süresi, hangisi önce gelirse. Dolduğunda start_task attention_queue_full ile reddeder; böylece ajanlar kontrol etmen için daha fazla iş yığmak yerine işi bitirir ya da netleştirir.

Görev türüne göre hangi kanıtı istemeliyim?

Ajan hangi kanıtı beklediğini bilsin diye bunları görev açıklamasına yaz:

  • Kod: artefakt olarak commit hash’i ve PR URL’si. notDone, çalıştırılmayan testleri, uygulanmayan migration’ları ve bilerek dokunulmayan dosyaları adlandırmalı.
  • İçerik: yayımlanmış URL ya da henüz yayında değilse sha256’sıyla taslak dosya. unknowns, ajanın doğrulayamadığı bilgileri listelemeli.
  • Araştırma: her önemli iddia için bir kaynak URL’si ve not dosyası. unknowns, bir kaynağın söylediğini ajanın çıkarımından ayırmalı.
  • Erişim / iletişim: gönderilen her mesajın mesaj id’si ve dosya olarak alıcı listesi. notDone, kimlerle iletişime geçilmediğini ve nedenini listelemeli.

Bir ajanın en baştan neler yapabileceğini nasıl kontrol ederim?

Sonradan atfetme, öncesinde konan sınırlarla en iyi şekilde çalışır. Weft’te her OAuth bağlantısının, onay ekranında ya da sonradan Ayarlar → Bağlı yapay zekâ istemcileri bölümünde ayarlanan üç izin düzeyinden biri vardır:

  • full (varsayılan): 32 aracın hepsi.
  • write: üç yıkıcı araç (trash_task, archive_done_tasks, complete_sprint) dışında her şey.
  • read: yalnızca 11 salt okunur araç.

Kontrol her çağrıda çalışır. Bağlantıyı kesmek, bağlantının yenileme belirteçlerini iptal eder ve kesintiden önce verilmiş her belirteci bir sonraki çağrısında reddeder. OAuth desteklemeyen istemciler için kişisel erişim belirteçlerinin kapsamı yoktur: tek bir belirteç 32 aracın hepsine ulaşır ve iptal etmek bir sonraki çağrıda etkili olur. Ajanlar görevleri 30 günlük çöp kutusuna taşıyabilir ama kalıcı olarak silemez; çöp kutusundan geri yükleme bir Pro özelliğidir.

Weft burada neyi yapmıyor?

  • GitHub ya da Slack entegrasyonu yok; yani Weft commit’lerini ya da mesajlarını senin için aramaz. Artefaktı sen açarsın.
  • Makbuzları başka sistemlere göndermek için herkese açık REST API’si, webhook’ları ya da CLI’ı yok. JSON ve Markdown dışa aktarma var.
  • Model adımlarını izlemez. Model katmanında istemleri, token’ları ve gecikmeyi kaydeden araçlar farklı bir iş yapar; bir tane de onlardan isteyebilirsin.
  • Ajanlar kendi makbuzlarını yazar. Weft iddia ile kanıt arasındaki boşluğu görünür kılar; bir ajanı dürüst yapamaz.

Ajanların bir REST API üzerinden hizmet hesabı olarak yönetilmesini, CI betikleri için bir CLI ya da görev yazma ve önceliklendirme gibi yerleşik yapay zekâ özellikleri istiyorsan Hypertask buna daha uygun. Hypertask alternatifi sayfamız ikisini yan yana karşılaştırıyor.

Ajanımın ne yaptığını bilmek için git geçmişi yetmez mi?
Git kodda neyin değiştiğini gösterir. Ajanın neyi atladığını, neden emin olmadığını ya da iki seçenek arasında hangisini seçtiğini göstermez. Commit hash’ini görevde bir artefakt olarak kullan, geri kalanını makbuzda ve karar kaydında tut.
Bir ajan bir artefaktı uyduramaz mı?
Herhangi bir metin gönderebilir. Artefaktın amacı onu açabilmendir: arayabileceğin bir hash, yükleyebileceğin bir URL, bulabileceğin bir mesaj id’si. Uydurulmuş olan, kontrol ettiğin anda çöker; bir yorum ise asla çökmez. Bir görev bir doğrulama kontrolü taşıyorsa ve engelleyici bir kontrol başarısız olursa görev Done’ın dışında kalır.
Bitmiş her görev incelememi mi bekliyor?
Hayır. Varsayılan olarak tamamlanan görev Done’a gider. Yalnızca görev inceleme gerektirdiğinde ya da bir doğrulama kontrolü başarısız olduğunda Kabul et, Yeniden yap, Sonra ya da Bırak için Gelen kutunda bekler.
Hangi yapay zekâ istemcileri Weft’e makbuz yazabilir?
Herhangi bir MCP istemcisi. ChatGPT’de Weft, Free dahil her planda yayımlanmış bir eklenti. Claude Code claude mcp add --transport http weft https://letsweft.com/api/mcp ile bağlanır. Claude.ai ve Claude Desktop özel bağlayıcı kullanır. Claude Code, ChatGPT, Cursor ve Codex gibi 33 istemci için kurulum sayfaları var.
Bunun maliyeti ne?
Free ayda 50 görev ve 200 yapay zekâ çağrısını kapsar. Pro koltuk başına ayda $7 ya da yılda $60. Weft’te yapay zekâ kredisi yok: düşünme işi kendi yapay zekâ istemcinde olur. Fiyatlandırmaya bak.