60 puan yazan ragingwind 2026-04-28 | 11 yorum | WhatsApp'ta paylaş

Bu, Addy Osmani'nin derlediği “Harness Engineering” üzerine bir analizdir. Ona göre son iki yıldır sektörün ilgisi yalnızca “hangi yapay zeka modeli daha akıllı” sorusuna kilitlenmiş durumda. GPT'nin daha temiz kod yazıp yazmadığı, Claude'un daha az halüsinasyon üretip üretmediği üzerine bitmeyen karşılaştırmalar yapıldı; ancak onun iddiasına göre gerçek kodlama yapay zekasının performansı, modelin kendisinden çok modeli çevreleyen harness tarafından belirleniyor. Harness, model dışındaki her şeyi kapsayan bir kavram: yapay zekaya işi yaptıran sistem prompt'u, kullanabildiği araçlar ve harici sunucular, bağlam yönetimi politikaları, çalışma sırasında otomatik devreye giren denetim mekanizmaları (hook'lar), güvenli yürütme alanı (sandbox), yardımcı yapay zekalar (sub-agent'lar), geri bildirim döngüleri ve iş tıkandığında toparlanmayı sağlayan akışların tamamı buna dahil. Viv Trivedy bu kavramı “AI agent = model + harness” cümlesiyle formüle etti; Anthropic mühendislik ekibi, HumanLayer ve Simon Willison gibi isimler de bu yaklaşımı daha rafine hale getiriyor. Osmani'ye göre bu akım artık başlı başına bir mühendislik alanı haline geldi.

Ana noktalar şöyle açılıyor.

  • Harness nedir? Yalnızca modelle işini tamamlayan bir yapay zeka ortaya çıkmaz. İlerleme durumunu hatırlayan, araç çalıştıran, sonucu görüp yeniden karar veren ve yapılmaması gereken şeyleri engelleyen kodlar ile ayarlar eklendiğinde ancak “çalışan yapay zeka” ortaya çıkar. Claude Code, Cursor, Codex, Aider, Cline gibi ürünlerin tamamı birer harness'tir; içlerindeki model aynı olsa bile bizim deneyimlediğimiz davranışı harness belirler. Simon Willison'ın ifadesiyle AI agent, “bir hedefe ulaşmak için araçları tekrar tekrar çalıştıran sistem”dir; bu araçları ve yineleme yapısını nasıl tasarladığınız, yetkinliğin özünü oluşturur.

  • Sorun modelde değil, ayarlardadır bakışı Mühendisler, yapay zeka tuhaf bir şey yaptığında çoğu zaman modeli suçlar ve “bir sonraki sürümü bekleyelim” sonucuna gider. Harness engineering bu tepkiyi reddeder. HumanLayer'ın ifadesiyle, “bu bir model sorunu değil, ayar sorunu (skill issue)”dur. Aynı Claude Opus 4.6 modeli kullanılsa bile, varsayılan harness olan Claude Code içinde Terminal Bench 2.0'da alt sıralarda kalırken, elde düzenlenmiş bir harness'e taşındığında üst sıralara çıkabildiği örnekler var. Viv'in ekibi yalnızca harness'i değiştirerek aynı modeli 30'lu sıralardan ilk 5'e taşımayı başardı. Bu da modelin potansiyelinin çoğu zaman harness tarafından köreltildiği anlamına geliyor.

  • Hataları kurala dönüştüren “ratchet” ilkesi Yapay zekanın bir kez bile yaptığı hata, rastlantısal bir kaza olarak geçiştirilmez; kalıcı bir sinyal olarak kabul edilir. Bir dahaki sefere aynı hata olmasın diye kural dokümanına bir satır eklenir, otomatik engelleyici bir mekanizma kurulur ya da inceleme yapan yardımcı bir yapay zeka eklenir. Örneğin yapay zeka test kodunu yorum satırına aldıysa, bir sonraki sürümün kural dokümanına “testleri yorum satırına alma; sil ya da düzelt” maddesi eklenir ve commit öncesi denetim aşamasına bu kalıbı yakalayacak bir kontrol eklenir. İyi bir kural dokümanındaki her satırın geçmişte yaşanmış somut bir başarısızlıkla bağlantılı olması gerekir. Bu yüzden harness engineering, hazır bir framework'ü olduğu gibi almak değil; kendi codebase'inizin hata geçmişi boyunca büyüttüğünüz bir “disiplin”e daha yakındır.

    Reklam
  • İstenen davranıştan geriye doğru tasarlamak Viv'in önerdiği en faydalı düşünme biçimlerinden biri, “şu davranışı istiyorum → bunu mümkün kılan harness bileşenleri nelerdir?” sırasıyla tersine tasarlamaktır. Bir bileşenin hangi davranış için var olduğunu tek cümleyle açıklayamıyorsanız, onu çıkarmak daha iyidir. Somut olarak bakıldığında; dosya sistemi ve Git, yapılan işi kalıcı tutmak ve geri almak içindir; bash ve kod yürütme, her şeyi denemeye yarayan genel amaçlı araçlardır; sandbox, işler bozulsa da ana sisteme etki etmeyen güvenli yürütme alanıdır; memory dosyaları ile web arama ve MCP araçları, yeni öğrenilen bilgiyi biriktirme kanalıdır; özet sıkıştırma, araç çıktısının ayrıştırılması ve skill özellikleri, yapay zekanın hafıza sınırlarını genişletir; Ralph loop ile planlayıcı/değerlendirici ayrımı ise günler süren uzun işleri sonuna kadar götürmenin yoludur.

  • Context rot sorunu Yapay zekanın bir seferde okuyabileceği metin miktarı sınırlıdır ve bu sınıra yaklaştıkça karar kalitesi gözle görülür biçimde düşer. Bu nedenle harness aynı zamanda sınırlı alanın nasıl verimli kullanılacağına dair bir mekanizma paketidir. Birincisi, sınır dolmaya başladığında eski içerik akıllıca özetlenip sıkıştırılır. İkincisi, 2.000 satırlık log gibi büyük çıktılarda gövde kısım dosyaya ayrılır, yalnızca baş ve son bölüm tutulur; gerektiğinde yeniden okunur. Üçüncüsü, araçlar ve talimatlar baştan itibaren tamamen gösterilmez; o işte gerçekten gerektiği anda açığa çıkarılan bir “kademeli ifşa” yöntemi kullanılır. Çok uzun işlerdeyse yeni bir pencerede yalnızca devir teslim dokümanıyla en baştan tekrar başlamak da mümkündür. Anthropic'in işaret ettiği gibi, “uzun işlerde yalnızca özet sıkıştırma yetmez; bazen yapılandırılmış bir devir teslim belgesiyle yeniden başlamak gerekir.” Bu, insanlarda yeni bir çalışana işi devrederken düzenli bir doküman bırakmaya benzer.

  • Uzun işleri sürdüren kalıplar Günümüz modellerinin zayıflıklarından biri işi erken bitirmeye eğilimli olmaları, büyük problemi yeterince küçük parçalara bölememeleri ve context window değiştiğinde akışın kopmasıdır. Harness bu zayıflıkları telafi etmelidir. Ralph loop, model işi bitirmeye kalktığında hook'un araya girip asıl hedefi yeni context window'a yeniden enjekte etmesiyle işi sürdürmeyi sağlayan basit bir tekniktir. Her yineleme temiz bir durumdan başlar ama bir önceki çalışmanın sonucu dosya sistemi üzerinden aktarılır. Diğer yandan Anthropic, “üretimden sorumlu” yapay zeka ile “değerlendirmeden sorumlu” yapay zekanın ayrılması gerektiğini vurgular. Çünkü yapay zeka kendi çıktısını kendisi değerlendirince cömert puan verme eğilimindedir. Buna ek olarak, “bitmiş” olmanın hangi durum anlamına geldiğini işe başlamadan önce netleştiren “sprint contract” deseni, işin ortasında hedefin fark ettirmeden genişlemesini engellemede etkilidir.

  • Hook'un rolü “Yapay zekaya öyle yapmasını söylemek” ile “sistemin bunu zorunlu kılması” farklı şeylerdir. Hook, bu farkı kapatan otomatik mekanizmadır; araç kullanılmadan önce, dosya değiştirildikten sonra, commit öncesinde ya da oturum başlarken araya girip çalışır. Her kod değişikliğinde otomatik olarak sözdizimi kontrolü, lint ve test çalıştırmak; rm -rf ya da git push --force gibi tehlikeli komutları engellemek; PR açılmadan önce insan onayı istemek buna örnektir. Temel ilke “başarı sessiz, hata gürültülü olsun”dur. Kontrol geçerse yapay zeka hiçbir şey duymaz; başarısız olursa hata mesajı doğrudan akışa enjekte edilir ve kendisinin düzeltmesi sağlanır. Normalde neredeyse hiç maliyet yaratmazken, sorun çıktığı anda tam hedefe yönelik yardım sağlayan bir yapıdır.

    Reklam
  • Kural dokümanları ve araç seçimi kısa ve net olmalı Proje köküne konan AGENTS.md, her turda sistem prompt'una giren en etkili ayar dosyasıdır. HumanLayer bu dokümanın 60 satırın altında tutulmasını önerir. Uzadıkça her satırın ağırlığı azaldığı için, gündelik stil rehberi gibi değil, bir pilotun kontrol listesi gibi yalnızca gerçekten gerekli maddeleri bırakmak gerekir. Araçlarda da aynı mantık geçerlidir; ad, açıklama ve şema her istekte prompt içine gömüldüğü için birbirine benzeyen 50 araç yerine iyi tasarlanmış 10 araç daha iyidir. HumanLayer güvenlik tarafına da dikkat çeker. Araç açıklaması doğrudan yapay zekanın okuduğu metin olduğu için, doğrulanmamış harici MCP sunucuları eklemek, yapay zekaya birilerinin önceden yazdığı talimatları gizlice enjekte etme kanalı haline gelebilir.

Öne çıkan avantajlar şöyle.

  • Efor harcanacak nokta netleşiyor Modeli değiştirmeden de davranışın ciddi biçimde iyileştirilebildiği noktanın harness olduğu benchmark verileriyle görülüyor. Bu, “bir sonraki modeli bekleyelim” gibi belirsiz bir beklenti yerine, hemen bugün müdahale edilebilecek somut bir alan olduğu anlamına geliyor.
  • Bilginin birikmesini sağlayan yapı Hataları kurala dönüştüren ratchet yaklaşımı sayesinde bir kez öğrenilen ders takımın varlığı olarak kalıyor. İnsanlar değişse bile kural dokümanları ve hook'lar yerinde durarak bir sonraki kişiyi koruyor.
  • Hazır harness'lerin yükselişi (HaaS) Viv'in “Harness-as-a-Service” dediği akım hızla yerleşiyor. Claude Agent SDK, Codex SDK ve OpenAI Agents SDK gibi; iş döngüsü, araçlar, bağlam yönetimi, hook'lar ve sandbox'ı önceden bir araya getiren ürünler sayesinde her şeyi sıfırdan kurmak yerine kendi alan bilginize odaklanabiliyorsunuz.

Zorlayıcı tarafları da var.

Reklam
  • Sahip çıkılması gereken alan geniş Talimatlar, araçlar, güvenli yürütme alanı, otomatik kontroller ve log gözlemi dahil her şeyden doğrudan siz sorumlusunuz. Asıl kritik nokta, bunun model sağlayıcısının otomatik olarak halledeceği bir alan olmaması.
  • Model ile harness'in birbirine bağımlı olma riski Günümüz modelleri belirli harness'ler içinde sonradan işlenerek eğitildiği için, başka bir harness'e taşındıklarında performans aniden düşebiliyor. Araç adındaki tek bir değişiklik ya da argüman formatındaki küçük bir fark bile sonucu sarsabiliyor. Gerçekten genel amaçlı bir model, araç adından etkilenmemeli; ancak birlikte eğitilme yapısı nedeniyle bir tür aşırı uyum oluşuyor.
  • Harici araçların güvenlik riski MCP sunucularında araç açıklamaları doğrudan yapay zekaya okutulduğu için, doğrulanmamış bir araç bağlandığı anda kullanıcı daha tek karakter girmeden dışarıdan gelen metin yapay zekayı etkilemeye başlıyor.

Ayırt edici bakış açıları da şunlar.

  • Model merkezli söylemden uzaklaşmak Daha akıllı bir GPT beklemek yerine, bugün elinizdeki modelin sınırlarını mühendislik yoluyla nasıl yukarı taşıyabileceğinizi gösteriyor. Bugün gördüğümüz yapay zeka sınırlamalarıyla modelin gerçekte sahip olduğu kapasite arasındaki farkın büyük kısmı, bir harness farkı olarak okunuyor.
  • Harness yok olmaz, sadece yer değiştirir Model geliştikçe bazı harness bileşenleri gereksiz hale gelir. Örneğin Opus 4.6, Claude Sonnet 4.5'te sık görülen “context bitmek üzere, o yüzden çabuk toparlayayım” türü aceleciliği neredeyse ortadan kaldırdı; bu sayede o dönemde kullanılan bazı güvenlik destekleri tamamen ölü koda dönüştü. Ancak modelin erişebildiği yeni alanlarda yeni zayıflıklar belirir ve bunları kapatacak yeni harness'ler tekrar gerekir. Anthropic'in “harness'in her bileşeni, modelin tek başına neyi yapamadığına dair bir varsayım taşır” sözü buna çok uyuyor.
  • Model ile harness arasındaki öğrenme döngüsü Viv'in işaret ettiği bir başka akım, harness tasarımı ile model eğitimi arasındaki geri besleme döngüsü. Harness içinde yararlı kalıplar bulunduğunda bunlar standartlaşır; sonraki nesil modeller bu kalıplara göre eğitilir; ardından bu modeller üzerinde yeni harness kalıpları üretilir. Bu nedenle “iyi harness”, modelin üzerinde eğitildiği harness değil; kendi işinize göre yeniden şekillendirdiğiniz harness'tir sonucuna varılır.
  • Sektör benzer bir şekle yakınsıyor Claude Code, Cursor, Codex, Aider ve Cline gibi kodlama yapay zekaları, içlerindeki modeller farklı olsa da harness yapısı bakımından giderek birbirine benziyor. Modeller farklıyken harness'lerin benzeşmesi, bu alanın nereye oturduğunu gösteren bir işaret olarak okunuyor.

Osmani'nin yazısı, kodlama yapay zekalarının rekabet gücünün model seçiminden çok, onu çevreleyen harness'in tasarımına bağlı olduğunu; harness'in de bir kez ayarlanıp bırakılan sabit bir ayar dosyası değil, hata geçmişine göre sürekli güncellenen canlı bir sistem olduğunu savunuyor. Model iyileştikçe harness ortadan kalkmıyor; yalnızca ele alınan problemin seviyesi bir kat yukarı taşınıyor ve yeni harness bu boşluğu dolduruyor. Onun alıntıladığı Viv'in sözüyle, “iyi bir agent yapmak yinelemenin sanatıdır; ilk sürüm yoksa yineleme de yoktur.” Bu da, bu alanda yarışın kimin daha hızlı başlayıp daha sık iyileştirme yaptığıyla ilgili olduğunu düşündürüyor. Sonuç olarak mühendislerin zaman ayırması gereken yer, her seferinde gündemdeki modeli değiştirmek değil; kendi işlerine uygun harness'i durmaksızın geliştirerek modelin ulaşabildiği tavanı adım adım yükseltmek olmalı.

11 yorum

 
kimjoin2 2026-04-28

Gittikçe sadece pazarlama terimleri aşırı çoğalıyormuş gibi geliyor.

 
dongho42 2026-04-28

Ama promptta “A’yı yap, B’yi yapma” dediğimizde bunu gerçekten iyi anlayabiliyorsa böyle bir yaklaşım geçerli gibi görünüyor; ancak yapay zeka sunucusunun durumuna göre promptu olasılıksal olarak yerine getiriyorsa böyle bir yaklaşım yine de geçerli olur mu?

 
dongho42 2026-04-28

Eskiden prompt’a “A’yı yap” diye açıkça yazmama rağmen belirli bir olasılıkla bunu sürekli yerine getirmediği için mrkdwn bold ile vurgulamayı, iki kez yazmayı, İngilizce yazmayı, başı sonu birbirine bağlayarak yazmayı, XML olarak yazmayı akla gelen her türlü şeyi denedim ama yine de belirli bir olasılıkla prompt’u görmezden geliyordu...

 
kurthong 2026-04-28

Ben de Osmani’nin anlattığına benzer her şeyi doldurup
uygulama yaparken bu konu açıldı diye biraz acele ettim ama,
Osmani de sadece konuşmakla kalmayıp
Google Antigravity’ye kendi söylediklerini ekleseydi daha iyi olmaz mıydı diye düşünüyorum.
Kapathy için de aynı şey geçerli; artık doğrudan bir şey yapmayı düşünmeyip sadece ortaya bir yazı atıp bırakma tavrı bana göre pek öyle değil!dir

https://github.com/hang-in/tunaFlow

 
tangokorea 2026-05-01

Model ve harness arasında hangisinin daha iyi olduğu bakış açısından bir adım geri çekilip, hangi modele hangi harness’in daha uygun olduğuna bakmayı nasıl bulursunuz?

 
jimmy2056 2026-04-29

Model ne kadar iyi olursa, harness tasarımı üzerindeki yük de o kadar azalır.

 
akapwhd 2026-04-29

Böyle şeyler uygulansa da gerçek kodlama sırasında bakınca pek büyük bir faydası olmuyor gibi... Geliştirme zorluk seviyesi codex planını koyup ajan çalıştırma düzeyinde olduğu için öyledir herhalde haha

 
blackfabric 2026-04-28

3 maddelik özet

  • Başarıyı modelden çok sistem (harness) belirliyor: Yapay zekanın performansı, GPT veya Claude gibi modelin kendisinden ziyade, onu çevreleyen promptlar, araçlar, sandbox, geri bildirim döngüleri gibi harness adı verilen çalışma ortamının tasarımına bağlıdır.
  • Hataları kurala dönüştüren Ratchet ilkesi: Yapay zekanın hatalarını basit birer kaza olarak görmek yerine, bunları kural belgelerine (AGENTS.md gibi) veya hook'lara hemen yansıtıp sistemin zamanla daha sağlam hale gelmesini sağlayacak şekilde yönetmek gerekir.
  • Sorun modelin değil, yapılandırmanın (Skill) meselesi: Yapay zekanın iyi çalışmaması çoğu zaman model zekasının yetersizliğinden değil, harness tasarımının zayıf olmasından kaynaklanır; bu yüzden istenen çıktıdan geriye doğru giderek gerekli bileşenleri ve kısıtları tasarlayan mühendislik yaklaşımı şarttır.
 
yungoun 2026-04-28

Ama Harness geçen haftaya kadar deli gibi satıyordu, bu haftadan itibaren sessizleşti.. Sanırım Anthropic'in saçmalamaları ve Codex 5.5'in çok iyi olması yüzünden........

 
click 2026-04-28

SDD gibi şeylerin hype’ı zaten çoktan söndü; şimdi sıra harness’e gelmiş gibi görünüyor.
Harness tarafında biraz ilginç olan kısım şu: eğitim verisinde açıkça yok ama model harness diye bir kavramı çok hızlı anlıyor.
Belki zaten var olan bir kelimenin anlamını aynen kullandığı içindir; ben hiç bahsetmemiş olmama rağmen önce harness’i güncelleyelim gibi ifadeler de kullanıyor.

 
kurthong 2026-04-28

Pek de özü olmayan bir şeyi kulağa makul gelecek şekilde anlatan kıdemli bir geliştiricinin yazısını, üstelik analiz ederek ele alan bir içerik olmuş (kişisel olarak Google'dan hoşlanmadığım için kusura bakmayın). Elbette olguya dair bir anlayış geliştirmeye dönük yaklaşımın iyi bir deneme olduğunu düşünüyorum.