Sorun: Bilgi sohbetin içinde kalıyor
Bir kodlama ajanıyla bir saat çalıştın. Neyi neden yaptığınızı, hangi dosyalara dokunduğunuzu, hangi yolun işe yaramadığını konuştunuz. Sonra kullanım sınırın doldu ya da işin kalanını daha ucuz bir modele vermek istedin. Yeni ajan bunların hiçbirini bilmiyor.
Syntax’ın 1051. bölümü dinleyici sorularına ayrılmıştı ve ilk soru tam buydu. Wes Bos ve Scott Tolinski’nin cevabı kısaca şu: Önemli olan her şeyi sohbetten çıkarıp projenin içine yaz.
Aynı fikir tek bir ajanla çalışırken de işe yarıyor: Araştırmayı ve planı dosyaya yazıp temiz bir oturumla devam etmeyi bağlam mühendisliği yazısında anlattık.
Üç yol, küçükten büyüğe
1. Devir notu (handoff). En basit yol, ajana “kaldığımız yeri anlatan bir not yaz” demek. Scott, sınır dolmak üzereyken ajandan kopyalayıp yapıştırabileceği kısa bir devir prompt’u istiyor: hangi dosyalara bakıyordu, hangi adımdaydı. Bunun için hazır skill’ler de var, ama Scott’ın şikâyeti şu: Not ya geçici bir klasöre gidiyor ve uzun yolunu elle vermen gerekiyor, ya da projede unutulup kalan bir dosyaya dönüşüyor. Wes ise kalıcı olması gereken bilgiyi markdown dosyasına ya da kodun yanına yorum olarak yazdırıyor. Yorum, kod değiştiğinde güncellendiği sürece en iyi bağlam taşıyıcılarından biri.
2. Görev dosyası. Her ajanın kendi yapılacaklar listesi var ve bu liste o ajanın içinde kalıyor. Scott bunun yerine görevleri depoda tutan dex’i kullanıyor. Sentry’nin kurucusu David Cramer’ın yazdığı bu açık kaynak araçta her görevin bir açıklaması, bağlamı (neden, nasıl, nelere dikkat) ve bittiğinde yazılan bir sonucu var. Görevler satır başına bir kayıt olan JSONL dosyasında duruyor, yani git’e girebiliyor. Yeni bir oturumda ajana “sıradaki görevi al” demen yetiyor, çünkü gereken bağlam zaten görevin içinde. Aynı fikrin daha büyük bir örneği olan Beads’i vibe coding yazımızda anlatmıştık. Scott’a göre dex daha hafif.
3. GitHub issue’ları. Wes planlama aşamasında ucuz bir ajana yapılacakları araştırtıp her biri için bir issue açtırıyor. Böylece işler tek bir sohbete sıkışmıyor: Üç dört ajanı aynı anda farklı issue’lar üzerinde çalıştırabiliyor, sonra açılan PR’ları birleştirme işini de başka bir ajana veriyor.
Yapay zekânın yazdığı skill’ler işe yarıyor mu?
Skill, ajana bir işi nasıl yapacağını anlatan küçük bir klasör (Agent skill nedir?). Wes’in kuralı şu: Bir işi ajanla uzun uzun konuşarak çözdüysen ve aynı şekilde tekrarlamak istiyorsan, o noktada ajandan sonucu bir skill’e dönüştürmesini iste. Sıfırdan “bana şunu yapan bir skill yaz” dersen gereksiz şeylerle dolu bir dosya çıkıyor.
Scott’ın andığı araştırma büyük ihtimalle SkillsBench. Şubat’ta yayımlanan ilk sürümünde, uzmanların hazırladığı skill’ler ajanların başarı oranını ortalama 16 puan artırıyor, ama modelin görevden önce kendi yazdığı skill’ler ortalamada hiçbir fayda sağlamıyordu. Makalenin son sürümünde öne çıkan bir bulgu da şu: En fazla üç parçalı, odaklı skill’ler, her şeyi anlatan büyük paketlerden daha iyi sonuç veriyor.
İkisinin pratik önerileri de buna uyuyor:
- Skill’i script’e çevir. Skill klasörü sadece metin değil, çalıştırılabilir betikler de içerebiliyor. Wes’in skill’lerinin çoğunda betik kısmı metinden ağır. Her seferinde aynı şekilde yapılan bir iş, ajanın yorumuna bırakılmamalı.
- Ne yüklendiğini bil. Scott bir projede hiç istemediği hâlde ajanın SvelteKit önerdiğini anlattı. Sebep, unuttuğu bir global talimat dosyasıymış. Bir anda 18 skill yüklüyse ve bazıları birbiriyle çelişiyorsa, ajan sadece söyleneni yapıyor. Talimatları ve skill’leri arada bir temizlemek, yenilerini eklemekten daha çok işe yarayabiliyor.
Aynı fikir ajanın kendisi için de geçerli. Scott, küçük tutulmuş açık kaynak kodlama ajanı Pi’de eklentileri ihtiyaç duydukça eklemeyi öneriyor. Ona göre katalogdaki her paketi kurmak işleri iyileştirmiyor.
Bölümde ayrıca uygulamaların ajanlarla konuşma yolları karşılaştırıldı. Tarayıcıya gömülü yaklaşımı WebMCP yazımızda, CopilotKit ekibinin olay tabanlı AG-UI protokolünü de üretken arayüz yazımızda anlatmıştık.
Düşün
- Şu an açık olan ajan sohbetin kapansa, kaybolacak en önemli bilgi ne? O bilgi neden henüz bir dosyada değil?
- Yüklü skill’lerinden hangisi aslında her seferinde aynı adımları izliyor ve bir betik olabilirdi?
Videoyu izle
Kaynaklar (7, İngilizce)
- Syntax #1051: Mourning the Death of Code (yeni sekmede açılır)
- Syntax: Mourning the Death of Code (video) (yeni sekmede açılır)
- dex: Task tracking for AI agents (yeni sekmede açılır)
- GitHub: dcramer/dex (yeni sekmede açılır)
- SkillsBench: Benchmarking How Well Agent Skills Work Across Diverse Tasks (arXiv, v1) (yeni sekmede açılır)
- SkillsBench (arXiv, son sürüm) (yeni sekmede açılır)
- Agent Skills: Specification (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.