Çoğu kişi AI agent'ları yanlış katmanda düzeltmeye çalışıyor.
Bir agent hata yaptığında prompt'u baştan yazıyorlar. Tekrar hata yaptığında daha fazla talimat ekliyor, modeli değiştiriyor, context penceresini büyütüyor ya da başka bir araç bağlıyorlar.
Sonra aynı sorunlar geri dönüyor.
Agent önemli bir kararı unutuyor. Yanlış aracı kullanıyor. Üç adım önce ne olduğunu gözden kaçırıyor. Sonucu kontrol etmeden görevin tamamlandığını iddia ediyor. Bütçe tükenene kadar başarısız olan aynı eylemi tekrar tekrar deniyor.
Sorun her zaman model değil.
Sorun, modelin etrafındaki ortam.
İşte bu ortama harness diyoruz.
Harness Engineering (Kontrol Ortamı Mühendisliği), bir modelin etrafına kurulan ve onun ne görebileceğine, ne yapabileceğine, neyi hatırlayacağına, başarının nasıl tanımlanacağına ve bir şeyler ters gittiğinde ne olacağına karar veren sistemi inşa etme pratiğidir.
Daha iyi bir prompt tek bir yanıtı iyileştirebilir.
Daha iyi bir harness ise her çalıştırmayı iyileştirir.
AI agent'ları, otomasyon ve production sistemleri hakkında daha fazla pratik analiz için Substack hesabımı takip edin:
1. Model, Agent'ın Kendisi Değildir
Bir model akıl yürütebilir, üretebilir, karşılaştırabilir ve seçim yapabilir.
Bu onu güvenilir bir agent yapmaz.
Gerçek bir agent'ın ayrıca doğru context'i bulması, araçları kullanması, state'i koruması, izinlere uyması, kendi işini doğrulaması ve ortam beklendiği gibi davranmadığında toparlanması gerekir.
Model yalnızca akıl yürütme motorudur.
Harness ise o akıl yürütmeyi gerçek bir uygulamaya dönüştüren her şeydir.
1KULLANICI TALEBİ2 |3 v4+-----------------------------+5| HARNESS |6| |7| sözleşme context |8| araçlar state |9| politika doğrulama |10| izler kurtarma |11+-----------------------------+12 |13 v14 MODEL15 |16 v17GERÇEK ORTAM
Aynı modeli bir sohbet kutusuna koyun, soruları yanıtlar.

Onu terminal erişimi, testler, tarayıcı araçları, proje hafızası, kontrollü izinler ve bir inceleme döngüsü olan bir repository içine koyun; gerçek işleri tamamlayabilir.
Model değişmedi.
Değişen harness oldu.
2. Her Talebi Bir Sözleşmeye Dönüştürün
Doğal dil esnektir.
Otonom yürütme ise esnek olmamalıdır.
Şöyle bir talep:
Kullanıcıya ilk deneyim akışını (onboarding) iyileştir.
modelin yanında bir insan oturuyorsa gayet uygundur.
Ancak production ortamında bir talimat olarak felakettir.
Agent harekete geçmeden önce talebi sınırları belli bir görev sözleşmesine dönüştürün.

1objective: onboarding terk oranını düşür23inputs:4 - ürün özeti5 - analitik verileri6 - repository78constraints:9 - kimlik doğrulamayı koru10 - veritabanı şemasını değiştirme11 - mevcut mobil davranışı koru1213deliverable:14 - incelenebilir pull request1516done_when:17 - testler başarılı18 - analitik olayı doğru tetikleniyor19 - masaüstü akışı incelemeyi geçiyor20 - mobil akış incelemeyi geçiyor2122approval_required:23 - production dağıtımı
Buradaki kritik kısım done_when'dir.
O olmadan agent, sorunun biraz daha kolay bir versiyonunu çözüp görevin tamamlandığını büyük bir özgüvenle söyleyebilir.
Onunla birlikte tamamlanma ölçülebilir hale gelir.
Agent şunu sormamalıdır:
Sırada ne yapmalıyım?
Şunu sormalıdır:
Hangi eylem mevcut ortamı sözleşmedeki sonuca yaklaştırır?
Bu çok daha güçlü bir döngüdür.
3. Agent'a Dev Bir Context Penceresi Değil, Bir Harita Verin
Agent hatalarına verilen yaygın tepki, modele daha fazla context vermektir.
Daha fazla dokümantasyon.
Daha fazla konuşma geçmişi.
Daha fazla dosya.
Daha fazla araç çıktısı.
Sonunda agent her şeyi alır ama daha az anlar.
Context bir depolama alanı değildir.
Bir dikkat bütçesidir.

Her çalıştırmada tüm projeyi agent'ın önüne yığmak yerine, ona faydalı bilgilerin nerede olduğuna dair küçük bir harita verin.
1PROJE HARİTASI23ürün kuralları -> docs/product/4mimari -> docs/architecture.md5frontend -> apps/web/6backend -> services/api/7testler -> tests/8komutlar -> docs/commands.md9güvenlik -> docs/security.md
Sonra sadece gerektiğinde genişletin.
1GÖREV2 |3 v4PROJE HARİTASI5 |6 v7İLGİLİ SİSTEM8 |9 v10TAM DOSYALAR11 |12 v13YEREL TALİMATLAR
Kaynak materyal bunu aşamalı ifşa (progressive disclosure) olarak tanımlıyor: harness, sırf bilgi mevcut olduğu için değil, görev gerektirdiği için daha fazla bilgi yüklemelidir.
Hedef maksimum context değildir.
Hedef maksimum faydalı sinyaldir.
4. Model ile Araçları Arasına Bir Geçit Koyun
Yirmi araca sahip bir model otomatik olarak yirmi kat daha yetenekli olmaz.
Sadece hata yapmak için yirmi yeni yolu olabilir.
Her aracın bir sözleşmesi olmalıdır.
1ARAÇ: edit_file23GİRDİLER4path5patch67ÖN KOŞULLAR8path mevcut9path workspace içinde1011BAŞARI12patch uygulandı13diff döndürüldü1415HATA16yapılandırılmış hata17kısmi üzerine yazma yok1819RİSK20geri alınabilir
Böylece yürütme yolu şu hale gelir:
1MODEL ÖNERİR2 |3 v4GEÇİT DOĞRULAR5 |6 v7POLİTİKA YETKİLENDİRİR8 |9 v10ARAÇ ÇALIŞTIRIR11 |12 v13HARNESS SONUCU KAYDEDER
Model hangi eylemi istediğine karar verir.
Harness ise o eylemin geçerli, izinli ve güvenli olup olmadığına karar verir.

Araçlar mesaj gönderebildiğinde, production ortamını değiştirebildiğinde, para harcayabildiğinde veya veri silebildiğinde bu ayrım kritik hale gelir.
İyi bir araç geçidi ayrıca zaman aşımları ekleyebilir, argümanları doğrulayabilir, dosya yollarını kısıtlayabilir, hataları standartlaştırabilir ve yeniden denemeleri güvenli hale getirebilir.
İyi araçlar, modelin tahmin etmek zorunda kaldığı şeylerin sayısını azaltır.
5. Hafızayı Konuşmanın Dışına Taşıyın
Konuşma, sistemin kayıt defteri olmamalıdır.
Uzun süre çalışan agent'lar eninde sonunda context limitlerine takılır, çöker, yeniden başlar veya işi başka bir oturuma devreder.
Eğer her önemli karar yalnızca konuşma dökümünün içinde varsa, iş akışı kırılgandır.
Kalıcı state'i ayrı bir yerde saklayın.

1{2 "task_id": "feature_042",3 "status": "verifying",4 "current_step": "mobile_check",56 "completed": [7 "implementation",8 "unit_tests",9 "desktop_check"10 ],1112 "decisions": [13 "reuse existing export endpoint",14 "preserve current date format"15 ],1617 "artifacts": [18 "export.csv",19 "desktop-after.png"20 ],2122 "open_risks": [23 "mobile toolbar may overflow"24 ],2526 "next_action": "render mobile viewport"27}
Faydalı bir sistem hafızayı dört kategoriye ayırır:
1GERÇEKLER2değişmeyen bilgi34KARARLAR5neyin ve neden seçildiği67STATE8mevcut çalıştırmanın neresinde olunduğu910DERSLER11gelecekteki çalıştırmaları etkilemesi gereken hatalar
Bir sonraki agent oturumu, önceki konuşmanın sıkıştırılmış bir özetini değil, işin mevcut state'ini devralmalıdır.
6. Tamamlanmanın Kapısını Kanıta Dayandırın
Bir agent'ın "bitti" demesi, işin gerçekten bittiğinin kanıtı değildir.

Bu sadece bir başka model çıktısıdır.
Harness'in gözlemlenebilir kanıta ihtiyacı vardır.
1İDDİA KANIT23"hata düzeltildi" hata veren test artık başarılı45"sayfa çalışıyor" tarayıcı akışı tamamlandı67"veri doğru" değerler kaynakla eşleşiyor89"migration güvenli" dry run + rollback başarılı1011"görev tamamlandı" tüm kabul testleri başarılı
Önce deterministik kontrolleri kullanın.
1sözdizimi2 |3 v4tipler5 |6 v7odaklı testler8 |9 v10entegrasyon testleri11 |12 v13görsel / anlamsal inceleme14 |15 v16insan onayı
Bir derleyicinin, testin, şemanın veya veritabanı sorgusunun kanıtlayabileceği bir şey için başka bir modele sormayın.
Modelleri değerlendirme için kullanın.
Gerçekler için deterministik sistemleri kullanın.
Model ürünü yaratır.
Ortam, o ürün hakkında kanıt üretir.
Harness ise kanıtın yeterli olup olmadığına karar verir.
7. İnşa Eden ile Doğrulayanı Ayırın
Kendi kendini incelemenin bir başka sorunu daha var.
Hatayı yapan agent, genellikle aynı varsayımları incelemeye de taşır.

Daha güçlü bir mimari, işçi ile doğrulayıcıyı birbirinden ayırır.
1İNŞA EDEN2 |3 v4adayı oluşturur5 |6 v7DOĞRULAYICI8 |9 +-- sözleşmeyi kontrol eder10 +-- eksik durumları arar11 +-- desteklenmeyen iddiaları test eder12 +-- sonucu bozmaya çalışır13 |14 +------ BAŞARILI ------> KABUL ET15 |16 +------ HATA ------> KANITI GERİ GÖNDER
Doğrulayıcı şunu sormamalıdır:
Bu iyi görünüyor mu?
Şunu sormalıdır:
Bunu kabul edilemez kılacak şey nedir?
Bu, incelemeyi bir onaylama sürecinden çıkıp bir çürütme girişimine dönüştürür.
Kaynak materyal, doğrulamaya kendi ret kriterlerini ve ilk sonucu üreten varsayımlara meydan okuyabilecek kadar bağımsızlık verilmesini açıkça tavsiye ediyor.
8. İzinleri Modelin Dışına Taşıyın
Bazı kurallar asla modelin onları hatırlamasına bağlı kalmamalıdır.
1onay almadan asla yayınlama2secret'ları asla açığa çıkarma3harcama limitini asla aşma4workspace dışına asla yazma5çalıştırılmadıkça testlerin geçtiğini asla iddia etme
Bunlar prompt önerileri değildir.

Bunlar politikadır.
Basit bir izin merdiveni:
1DÜŞÜK RİSK23oku4ara5incele67-> otomatik89GERİ ALINABİLİR1011workspace düzenle12test çalıştır13taslak oluştur1415-> otomatik + iz kaydı1617DIŞ ETKİ1819gönder20dağıt21satın al2223-> onay gerekli2425GERİ ALINAMAZ / HASSAS2627veri sil28kimlik bilgilerini yenile29global olarak yayınla3031-> katı geçit veya yasaklı
Sonuç ne kadar ciddiyse, kontrol de o kadar sıkı olmalıdır.
Model eylemi önerebilir.
Harness buna yetki verir.
Araç ise uygular.
Otonomi, kontrolün yokluğu değildir.
Belirlenmiş sınırlar içindeki özgürlüktür.
9. Körü Körüne Yeniden Denemeyi Bırakın
En kötü kurtarma politikalarından biri şudur:
Bir şey başarısız oldu. Tekrar dene.
Hiçbir şey değişmezse, sistem sadece aynı hatayı yeniden üretmek için para harcıyordur.
Önce hatalar sınıflandırılmalıdır.

1ARAÇ ZAMAN AŞIMI2-> gecikmeli yeniden dene34GEÇERSİZ ARGÜMANLAR5-> araç çağrısını düzelt67EKSİK CONTEXT8-> eksik kaynağı getir910BAŞARISIZ TEST11-> hata veren davranışı incele1213İZİN REDDEDİLDİ14-> onay iste1516ÇELİŞEN GEREKSİNİMLER17-> üst seviyeye aktar1819DEĞİŞMEYEN TEKRARLANAN HATA20-> dur
Faydalı bir agent döngüsü şöyle görünür:
1GÖZLEMLE2 |3 v4KARAR VER5 |6 v7EYLEME GEÇ8 |9 v10ÖLÇ11 |12 +---- KABUL ET13 |14 +---- DÜZELT15 |16 +---- AKTAR17 |18 +---- DUR
Her döngünün deneme sayısı, süre, harcama ve yıkıcı etki kapsamı açısından sınırları olmalıdır.
Güvenilir bir agent nasıl devam edeceğini bilmelidir.
Ayrıca yeni bir denemenin ne zaman artık değmeyeceğini de bilmelidir.
10. Tekrarlanan Talimatları Altyapıya Dönüştürün
Diyelim ki prompt şunu içeriyor:
Her zaman formatlayıcıyı çalıştır.
Formatlayıcı otomatik çalışırsa bu kural çok daha güçlü olur.
Diyelim ki talimatlar şöyle diyor:
UI kodu doğrudan veritabanına erişemez.
Bu kural ihlal edildiğinde hata veren bir mimari testi olarak çok daha güçlüdür.
İlerleme şöyle görünür:
1AÇIKLAMA2 |3 v4KONTROL LİSTESİ5 |6 v7ŞABLON8 |9 v10OTOMATİK KONTROL11 |12 v13UYGULANAN POLİTİKA
Prompt değerlendirmeyi açıklamalıdır.
Harness ise değişmez kuralları uygulamalıdır.
Tekrarlayan her hata, bu merdivende biraz daha aşağı inmeli.
Sonunda modelin o dersi hatırlamasına gerek kalmaz.
Ortam, onu model adına hatırlar.
11. Çalıştırmayı Kaydedin
Kusursuz bir nihai ürün, berbat bir yürütme yolunu gizleyebilir.
Belki agent yanlış kaynağa erişti.
Belki başarısız bir komutu görmezden geldi.
Belki harici bir eylemi iki kez tekrarladı.
Belki beklenen bütçenin on katını harcadı.
Belki doğru cevabı yanlış sebeple buldu.
Ne olduğunu yeniden yapılandıracak kadar bilgi kaydedin.
109:14 görev sözleşmesi oluşturuldu209:15 architecture.md yüklendi309:17 checkout.ts düzenlendi409:18 odaklı test başarısız oldu509:21 uygulama düzeltildi609:22 odaklı test başarılı oldu709:24 entegrasyon testi başarılı oldu809:25 dağıtım engellendi: onay gerekli
Faydalı izler; context kaynaklarını, araç çağrılarını, state değişikliklerini, doğrulama sonuçlarını, yeniden deneme nedenlerini, onay kararlarını, maliyeti ve gecikmeyi içerir.
Amaç eğlence olsun diye log toplamak değil.
Amaç hatayı yerel tutmak.
- adımda bir şey kırılırsa, sadece 18. adımı düzeltebilmelisiniz.
Tüm çalıştırmayı baştan oynatmak zorunda kalmamalısınız.
12. Her Çalıştırmaya Bir Makbuz Verin
İnsanı kırk mesajlık bir dökümü incelemeye zorlamayın.
Sonucu küçük bir makbuza dönüştürün.
1HEDEF23Kuponun çift uygulanması hatasını düzelt.45DEĞİŞTİRİLENLER67checkout doğrulaması8regresyon testi910DOĞRULANANLAR1112lint başarılı13birim testleri başarılı14entegrasyon testi başarılı1516DOĞRULANMAYANLAR1718production ödeme sağlayıcısı1920RİSKLER2122eski mobil istemci kullanılamıyor2324ONAY GEREKLİ2526staging'e dağıtım
Bu, modelin gerçekleştiğini iddia ettiği şeylerin bir özeti değildir.
Harness'in gerçekleştiğini kanıtlayabildiği şeylerin bir özetidir.
Bu ayrım, makbuzu inceleme, devir teslim ve gelecekteki agent oturumları için faydalı kılar.
13. Her Hatanın Harness'i İyileştirmesini Sağlayın
Çoğu ekip başarısız olan çıktıyı düzeltir.
Daha iyi yaklaşım, o hataya izin veren sistemi düzeltmektir.
1EKSİK CONTEXT2-> proje haritasını iyileştir34YANLIŞ ARAÇ5-> yönlendirmeyi veya araç sözleşmesini iyileştir67KÖTÜ ÇIKTI8-> doğrulayıcı ekle910TEKRARLAYAN DÖNGÜ11-> yeniden deneme sınırı ekle1213GÜVENSİZ EYLEM14-> izin geçidi ekle1516KAYIP KARAR17-> state'i kalıcı hale getir1819BİLİNMEYEN HATA20-> izlemeyi iyileştir
Harness engineering'in bileşik getiri sağlamaya başladığı yer burasıdır.
Düzeltilen bir çıktı tek bir çalıştırmaya yardımcı olur.
Düzeltilen bir harness ise ondan sonraki her çalıştırmayı iyileştirir.
En iyi agent sistemleri daha güvenilir hale gelir çünkü hatalar geride bir altyapı bırakır.
14. En Küçük Faydalı Harness ile Başlayın
Başlamak için devasa bir orkestrasyon platformuna ihtiyacınız yok.
Katman katman inşa edin.
1SEVİYE 023prompt4model56SEVİYE 178görev sözleşmesi9proje haritası10araçlar1112SEVİYE 21314yapılandırılmış state15doğrulama16sınırlı döngü1718SEVİYE 31920izinler21izler22kurtarma23insan geçitleri
Kısa bir araştırma görevi sadece bir prompt ve bir inceleme gerektirebilir.
Dosya erişimi, ağ erişimi ve dağıtım yeteneği olan altı saatlik bir kodlama görevi çok daha fazlasını gerektirir.
Karmaşıklığı, hata yüzeyi bunu hak ettiğinde ekleyin.
Agent mimarisi havalı göründüğü için değil.
Harness Engineering Kontrol Listesi
Bir agent'a anlamlı bir otonomi vermeden önce şunları sorun:
1[ ] Başarı, yürütmeden önce tanımlandı mı?23[ ] Agent her şeyi yüklemeden doğru context'i4 bulabiliyor mu?56[ ] Her aracın net bir amacı, şeması ve hata durumu var mı?78[ ] Önemli kararlar konuşmanın dışında saklanıyor mu?910[ ] Tamamlanma kanıt gerektiriyor mu?1112[ ] Riskli eylemler politikayla korunuyor mu?1314[ ] Her döngünün bir yeniden deneme sınırı var mı?1516[ ] Çalıştırma kesinti sonrası devam edebiliyor mu?1718[ ] Her önemli eylemi yeniden yapılandırabiliyor musunuz?1920[ ] Hata bir kuralı, aracı, testi, haritayı veya izni iyileştiriyor mu?2122[ ] Son değişiklik geri alınabilir mi?
Cevapların birkaçı hayır ise, daha güçlü bir model agent'ı otomatik olarak güvenilir kılmaz.
Sadece hatanın daha hızlı ve daha pahalı olmasını sağlayabilir.
Asıl Dönüşüm
Prompt engineering şunu sorar:
Modele ne söylemeliyim?
Context engineering şunu sorar:
Model şu an ne bilmeli?
Harness engineering şunu sorar:
Modelin harekete geçmesini, işini doğrulamasını, hatalardan kurtulmasını ve güvenli çalışmasını sağlayan sistem nedir?
1PROMPT2-> talimat34CONTEXT5-> çalışma görünümü67HARNESS8-> işletim ortamı910DÖNGÜ11-> yerel düzeltme1213GRAFİK14-> koordinasyon
Modeller değişmeye devam edecek.
Kalıcı avantaj onların etrafında yaşar.
Sözleşmeleriniz iyileşir.
Araçlarınız iyileşir.
Testleriniz iyileşir.
State'iniz temizlenir.
İzinleriniz güvenli hale gelir.
Kurtarma mantığınız akıllanır.
Hatalarınız altyapıya dönüşür.
Yetenekli modellerin güvenilir agent'lara dönüşme yolu budur.
İşte bu Harness Engineering'dir.
Buraya Kadar Okuduysanız
Bu rehberi yer imlerine ekleyin.
Beni X'te takip edin: x.com/0xjmori
Substack hesabıma abone olun: substack.com/@lunarresearcher
Bu makaleyi, her agent hatasını daha uzun bir prompt'la çözmeye çalışan birine gönderin.



![[Özür] Bağımsızlık İçin Freelance Çalışmayı Artık Tavsiye Etmiyorum.](/cdn-cgi/image/width=1920,quality=90,format=auto,metadata=none/https%3A%2F%2Fcms-assets.youmind.com%2Fmedia%2F1790615558140_ndvona_HTQ9s6laYAAX4J7.jpg)

