Kodlama Ajanımın Talimatlarını A/B Test Ettim. Çoğu Boşuna Para Ödettirdi

Oct 6, 2026 tarihinde Štefan Moravík tarafından yayınlandı.
AI Agents Token Optimization Claude Code Developer Tools
Bu sayfada 9 dakika okuma
  1. 1Kısa özet
  2. 2Neden yaptım
  3. 3Test
  4. 4Maliyet
  5. 5Kalite
  6. 6Planlama aşaması
  7. 7grain-ponytail ne yaptı
  8. 8İncelemelerin hâlâ yakaladıkları
  9. 9Ne değiştirdim
  10. 10Bundan çıkarılacak dersler
  11. 11Yöntem

Kısa özet

  • FlowHunt backlog’undan gerçek bir issue aldım ve Claude Code’a Opus 5.5 üzerinde yedi farklı talimat kurulumu altında 13 kez uygulattım. Her çalıştırma aynı commit’ten, kendi klonu ve kendi veritabanıyla başladı ve gerçek GitHub CI’mızdan geçti. İki kör Opus incelemesi her sonucu puanladı.
  • Deponun 33 KB’lık CLAUDE.md dosyası ölçülebilir bir kalite sağlamadı. Onunla yapılan çalıştırmalar inceleme başına 2.0 blocker ve major bulgu aldı. Hiç talimat dosyası olmayan bir çalıştırma da aynı sonucu aldı. 5.5 KB’lık bir dosya 1.0 aldı.
  • Ayrı bir planlama aşaması işleri daha kötü yaptı. Önce planlama prompt’u sonra uygulama prompt’u çalıştıran her iki kurulum da düz prompt’lu eşlerinden daha pahalıya geldi ve 26 incelemenin tamamındaki beş blocker’ın dördünü ürettiler.
  • Kazanan; 8 KB’lık bir CLAUDE.md, üç skill, Sonnet worker’lar ve düz bir prompt oldu. İki çalıştırması API liste fiyatıyla ortalama 6.68 dolar tuttu. Pipeline prompt’lu tam kurulum ise ortalama 11.49 dolar, yani yaklaşık 1.7 katı, ve daha fazla bulgu üretti.
  • Kurduğum onca yapıdan geriye kalan brief oldu: ana modelin daha ucuz bir worker için yazdığı, bir iş diliminin kısa ve karara bağlanmış tanımı. Ana modelin kendisi için yazılan planlar karşılığını vermedi. Model kendi başına gayet iyi planlıyor.

Bu yazı, kodu kimin yazması gerektiğini ölçen architect deseni yazısının devamı niteliğinde. Bu yazı ise ana modelin başlamadan önce ne kadar bilgilendirilmesi gerektiğini soruyor.

Neden yaptım

Monorepomuz epeyce ajan talimatı biriktirmişti. Kök CLAUDE.md 33 KB’tı: build komutları, test sıklığı, kod stili, mimari, kritik yollar, güvenlik kuralları, izin ve kredi kuralları, iki ajan yüzeyi, issue açma, PR gelenekleri. .claude/skills/ altında on skill duruyordu. Üstüne bir de CI pipeline’ımız (adı harnext) bir issue’yu bir tagger, bir triage adımı, planı issue yorumu olarak yazan bir planlama adımı ve planı geri okuyup kodu yazan bir uygulama adımından geçiriyordu; her birinin kendi uzun system prompt’u vardı.

Bunların her satırı bir sebeple, genelde bir ajan bir şeyi yanlış yaptıktan sonra eklenmişti. Kimsenin sormadığı soru ise hâlâ işe yarayıp yaramadığıydı. Bir CLAUDE.md her oturuma yüklenir ve her turda yeniden gönderilir. Model zaten doğru olanı yapacaksa, o token’lar bir vergidir ve bir bağlam penceresinin maliyeti yazısında anlatıldığı gibi, her tura binen bir vergi göründüğünden hızlı birikir.

FlowHunt Logo

İşinizi büyütmeye hazır mısınız?

Bugün ücretsiz denemenizi başlatın ve günler içinde sonuçları görün.

Test

Issue, yeni kaydolanlar için zamanlanmış bir e-posta dizisiydi: bir yönetici “0. gün: hoş geldin” ve “5. gün: deneme süreniz yakında bitiyor” gibi adımlar tanımlar, bir arka plan görevi her hesaba doğru günde e-posta gönderir, kişi ücretli bir plan satın alınca durur ve lansmandan önce oluşturulmuş hesapları atlar. Bir migration, bir repository, bir service, bir Celery beat görevi, REST endpoint’leri, ajanlar için MCP araçları ve 11 dilde bir konsol arayüzü gerektiriyor. Bu, gerçekçi bir ilk hafta özelliği ve kolayca atlanabilecek birkaç edge case içeriyor.

Her çalıştırma, kendi klonuna ve veritabanına sandbox’lanmış, headless bir Claude Code oturumuydu; bir script commit’i draft PR’a gönderiyor ve CI sonucunu oturuma geri besliyordu, en fazla üç tur. Maliyet, ana oturumun ve tüm subagent’ların Claude Code’un kendi total_cost_usd değeri, API liste fiyatından. Ben abonelik ödüyorum, yani bu bir iş ölçüsü, faturanın ölçüsü değil.

Yedi kurulum:

KurulumÇalıştırma
ATam 33 KB CLAUDE.md ve on skill, pipeline prompt’ları (önce planla, sonra uygula)2
BTam CLAUDE.md ve skill’ler, düz prompt3
CCLAUDE.md yok, skill yok, düz prompt2
DTam CLAUDE.md artı architect skill’i, düz prompt2
E8 KB CLAUDE.md, architect, grain-ponytail ve unslop, pipeline prompt’ları1
F5.5 KB CLAUDE.md, skill yok, düz prompt1
G8 KB CLAUDE.md, architect, grain-ponytail ve unslop, düz prompt2

Önce A’dan D’ye yapıldı. E’den G’ye ise onların gösterdiklerinden inşa edildi ve üçüncü B çalıştırması kontrol olarak yanlarında yer aldı. 8 KB’lık dosya, 5.5 KB’lık dosya artı skill’lerin kısa bir listesi ve ne zaman yüklenecekleri ile architect skill’inin Sonnet’e delege etmesini sağlayan model yönlendirme kurallarından oluşuyor.

Ardından her sonuç, yalnızca bir harf, diff, depo ve issue’yu gören iki Opus incelemecisine gitti. İncelemeciler onaylamadan önce isteyecekleri her değişikliği listeledi, blocker, major, minor veya nit olarak derecelendirdi ve her kabul kriterini bir dosya ve satırla karşılaştırdı.

Maliyet

Kuruluma göre çalıştırma başına maliyet: skill’li ve architect’li ince $6.68, architect’li tam $8.70, tam $9.61, pipeline prompt’lu ince $10.13, skill’siz ince $10.71, talimatsız $11.45, pipeline prompt’lu tam $11.49

Kazanan kurulum G, 5.96 ve 7.39 dolar tuttu. Pipeline prompt’lu tam kurulum A ise 11.12 ve 11.85 dolar. Fark büyük ölçüde tur sayısı ve her turun taşıdığı yük. A’nın ana oturumları Opus üzerinde 172 ve 144 tur attı ve 24 ila 28 milyon input token kullandı. G’ninki 79 ve 95 tur attı, 13 ila 16 milyonla ve yaklaşık 60 tur daha Sonnet worker’lara devretti; bunlar ücretin çok küçük bir kısmından faturalanıyor. G ayrıca işini A’nın 45 dakikasına karşılık yaklaşık 21 dakikada bitirdi.

Bu grafikte iki şey beni şaşırttı. Hiç talimat olmamak ucuz seçenek değil: iki çalıştırması 7.32 ve 15.58 dolar tuttu ve pahalı olanı CI’dan da geçemedi, testin en büyük diff’ini yazdı. Skill’siz 5.5 KB’lık dosya F ise tam kurulumdan daha ucuz değildi. Daha fazla kod yazdı, 1.601 ürün satırı, ve bunun bedelini ödedi. G’deki tasarruf yalnızca kısa dosyadan gelmiyor. Kısa dosya artı işin nasıl yapıldığını değiştiren iki skill’den geliyor.

Kalite

Kuruluma göre inceleme başına blocker ve major bulgular: skill’li ve architect’li ince 1.0, architect’li tam 3.2, tam 2.0, pipeline prompt’lu ince 3.0, skill’siz ince 1.0, talimatsız 2.0, pipeline prompt’lu tam 3.0

En ucuz kurulum aynı zamanda en az ciddi bulguya sahipti: hiç blocker yok ve iki çalıştırmasında inceleme başına 1.5 ve 0.5 major. Tam CLAUDE.md’li B ise üç çalıştırmasının hepsinde 2.0 major’daydı; yani hiç CLAUDE.md olmamasıyla aynı.

En çok önemsediğim sonuç bu. Dosyada güvenlik, izinler ve krediler üzerine uzun bölümler var; bir ajan bir zamanlar bunları atladığı için yazılmışlar. Dosya olsa da olmasa da incelemeciler aynı sayıda ciddi sorun buldu ve kurulumlar arasında aynı türler geri geldi: kaydolup ödeme yapan ve sonra iptal eden biri, bir worker yarı yolda çöktüğünde kaybolan ya da iki kez gönderilen bir e-posta, gösteremediği içeriğin üzerine yazan bir editör. Bunlar zaman içindeki durumla ilgili akıl yürütme boşlukları. CLAUDE.md’deki hiçbir kural listesi bunları kapsamıyordu, çünkü henüz düşünmediğiniz bir edge case için kural yazamazsınız.

Bunları kapsayan şey, turlar arasında architect skill’inde yapılan bir değişiklikti. Ana model artık herhangi bir brief yazmadan önce bir tablo yazıyor: her kabul kriteri, bağlı olduğu durum zaman içinde değiştiğinde ne olacağı ve kararlaştırılan davranış. Her satır ardından adı konmuş bir testle birlikte brief’e giriyor. G’nin çalıştırmaları 774 ve 818 test satırı yazdı; B’de bu 510 ila 670 arasındaydı.

Planlama aşaması

A ve E, CI pipeline’ımızın prompt’larını çalıştıran iki kurulum: bir plan yazan planlama prompt’u, ardından planı okuyup uygulayan bir uygulama prompt’u. Her birini, onun yerine düz prompt alan eşiyle karşılaştırın. A çalıştırma başına 11.49 dolar tuttu, B’nin 9.61 dolarına karşılık, ve B’de hiç blocker yokken onda blocker’lar vardı. E 10.13 dolar tuttu, G’nin 6.68 dolarına karşılık, ve G’de hiç yokken incelemelerinin her birinde bir blocker vardı.

Sebebin şu olduğunu düşünüyorum: bir plan, modelin kendisi için yazdığı ve sonra dışarıdan bir talimat gibi geri okumak zorunda kaldığı bir belge. İkinci oturum planı bir şartname gibi ele alıyor, yanlış olduğu yerde ona uyuyor ve kodu okurken bulduklarıyla uzlaştırmak için tur harcıyor. Bu kadar yetenekli bir model, işi yapacak olan oturumun içinde, plan ve kodun aynı bağlamda olduğu yerde daha iyi planlıyor.

Planlamadan geriye kalan kısım brief oldu. Ana model bir dilimi bir Sonnet worker’a devrettiğinde, worker boş bir bağlamla başlar ve tam olarak kendisine söyleneni inşa eder. Bu devir teslimin yazılı ve karara bağlanmış bir tanıma ihtiyacı var: hedef, dosyalar, yansıtılacak kalıp, edge case’ler, yazılacak test. Kendiniz için plan yapmak bir ek yük. Başkası için yazılan brief ise işin karşı tarafa geçmesinin tek yolu.

grain-ponytail ne yaptı

Çalıştırma başına eklenen ürün satırları: grain-ponytail skill’iyle yapılan çalıştırmalar 1.068 ile 1.353 satır yazdı, en büyük iki diff olan 1.601 ve 1.752 skill’siz çalıştırmalardan geldi

mevcut dokuya uygun kod yazısındaki skill, modele en yakın mevcut örneği yansıtmasını ve işleyen en az kodu göndermesini söylüyor. Onu yüklemiş her çalıştırma 1.068 ile 1.353 ürün satırı arasında yazdı. En büyük iki diff, 1.601 ve 1.752, skill’siz çalıştırmalardan geldi. Skill’siz bir çalıştırma 1.280’de kaldı, yani skill boyutu tek başına belirlemiyor, ama kuyruğu ortadan kaldırdı.

Aynı zamanda hangi tür talimatın hâlâ karşılığını verdiğinin en net örneği. “En yakın örneği yansıt” modelin yazdığı her dosyada ne yaptığını değiştirir. “Fonksiyonlar için snake_case kullan” ise zaten yaptığı bir şeyi tekrar eder.

İncelemelerin hâlâ yakaladıkları

Kazanan çalıştırma temiz değildi. Testten sonra G2’nin işini main üzerine rebase ettim ve tam PR kontrolümüzden geçirdim; bu kontrol diff’i inceliyor, her bulguyu başarısız bir testle kanıtlıyor ve değişikliği gerçek bir tarayıcıda sürüyor. Şunu buldu: bir yönetici MCP üzerinden oluşturulmuş bir adımı düzenlediğinde adım editörü ilk HTML bloğu dışındaki her bloğu düşürüyordu ve başarısız bir claim release bazı kullanıcılara iki kez e-posta gönderebiliyordu. İkisi de PR insan incelemesine çıkmadan önce, testleriyle birlikte düzeltildi.

Kör incelemeciler ayrıca architect çalıştırmalarında tam talimatlı olanlara göre daha fazla aşırı mühendislik işaretledi: G için inceleme başına 2.5 madde, A ve B’nin çalıştırmaları için 0 ile 1.0 arası. Daha az ciddi bulgu, daha çok nit. Bu takası kabul ederdim, ama bu bir takas.

Ne değiştirdim

  • 33 KB’lık CLAUDE.md, Codex’in de okuduğu 12 KB’lık bir AGENTS.md oldu ve CLAUDE.md artık yalnızca onu import ediyor. İçinde komutlar, test sıklığı, mimari ve modelin koddan çıkaramayacağı kurallar kalıyor; örneğin hangi yolların kritik olduğu ve iki ajan yüzeyinin uyum içinde kalması gerektiği.
  • Planlama aşaması pipeline’dan çıktı. Triage issue’yu doğrudan, prompt’u altı adıma inmiş bir uygulama aşamasına veriyor: issue’yu oku, branch aç, architect ve grain-ponytail skill’lerini yükle, test et, commit’le, draft PR aç.
  • Architect skill’i edge-case tablosunu, brief’te bir Tests alanını ve tüm diff’i brief’ler yerine issue’ya karşı kontrol eden bir son geçişi kazandı. O sürüm github.com/LivinTribunal/architect-skill adresinde herkese açık.

Depo değişikliği bu yazının kaleme alındığı sırada incelemede.

Bundan çıkarılacak dersler

CLAUDE.md’niz her seferinde bir olayla büyüdüyse, büyük olasılıkla modelin zaten uyduğu kurallar için para ödüyorsunuz. Onu modelin kodu okuyarak bulamayacağı şeye indirin ve daha fazla yönlendirmenin daha güvenli olduğuna güvenmek yerine gerçek bir görevde öncesini ve sonrasını ölçün.

İşin nasıl yapıldığını değiştiren talimatları koruyun: kodu kim yazıyor, bir dilimin brief’i nasıl veriliyor, hangi mevcut kalıp kopyalanacak. Ana modeliniz güncel bir frontier modelse, önce-planla-sonra-uygula pipeline’ını bırakın. Worker’lar için brief yazın, kendiniz için plan değil.

Yöntem

5 Ekim 2026’da Claude Code 2.1.289 ile 13 headless çalıştırma; ana model Opus 5.5, architect skill’inin delege ettiği yerlerde worker’lar Sonnet 5.5. Tüm çalıştırmalar FlowHunt monorepo’sunun tek bir commit’inden başladı, her biri kendi Postgres veritabanına sahip bir APFS klonunda, diğer çalıştırmalardan ve deneyin kendi dosyalarından sandbox’lanmış halde. Bir broker her çalıştırmanın commit’ini dondurulmuş bir base branch’e karşı draft PR’a gönderdi ve oturumu CI sonucuyla sürdürdü, en fazla üç tur. Maliyet, oturum başına maksimum total_cost_usd değerinin ana oturum ve subagent’ları üzerinden toplanmasıdır. Ürün satırları, testler, çeviriler ve migration’lar dışındaki boş olmayan eklenen satırlardır.

Her sonuç, tek bir rubrikle Opus tarafından iki kör inceleme aldı: doğruluk, kabul kriterleri, doku uyumu, private alanlar ve gizli durum, aşırı mühendislik, güvenlik ve izinler, testler, migration’lar. Adaylar harfler altında karıştırıldı ve incelemeciler depoyu okuyabiliyor ama hiçbir şey çalıştıramıyordu. İnceleme başına bulgular, bir kurulumun çalıştırmalarının ortalaması alınarak hesaplanır. Kurulum başına bir ila üç çalıştırmayla tek bir kurulumun ortalamasını gürültülü kabul edin. Yukarıdaki sonuçlar, her iki turda da geçerli kalanlardır.

Sıkça sorulan sorular

Štefan, FlowHunt'ı geliştiren bir yapay zeka ve yazılım mühendisidir. Ürünün kendisinin ötesinde, geliştirme maliyetlerini düşürürken kod kalitesini artıran geliştiriciler için agentic yazılım mühendisliği iş akışları tasarlar.

Štefan Moravík
Štefan Moravík
Yapay Zeka & Yazılım Mühendisi

Her Ajana Yalnızca İşinin Gerektirdiği Bağlamı Verin

FlowHunt, bir planlama ajanını daha ucuz worker ajanlara bağlamanıza, her birine tüm kural kitabı yerine kısa bir brief vermenize ve her adımın maliyetini görmenize olanak tanır.