Prompt, context, loop ve graph mühendisliğinin her biri, aynı makinenin birer parçası olarak ortaya çıktı. Harness (çerçeve), bu parçaların nihayet birlikte yaşadığı yerdir.
Yapay zeka ile yapılan her geliştirme süreci kendi iş unvanını edindi. Prompt mühendisliği ilk sıradaydı; o zamanlar tüm hüner, doğru cümleyi bulmaktı.
Context mühendisliği, cümlenin kendisinden ziyade etrafına yüklenen her şeyin daha önemli olduğu anlaşıldığında geldi. Bu yazı loops (döngüler) dönemiydi, birkaç hafta sonra ise graphs (grafikler) ön plana çıktı.
Şu anda yayılan isim harness engineering (çerçeve mühendisliği) ve diğer tüm yaklaşımları açıklayan ilk kavram bu.

Bir harness, modelin etrafındaki her şeydir: çağırabileceği araçlar, her şeyden önce okuduğu dosyalar, yazmasına izin verilen dizinler, çıktısının geçmesi gereken kontroller, onu uyandıran zamanlayıcı ve çalışmayı sonlandıran kural.
Bu disiplinden önceki her alan, aslında bu çerçevenin ayrı ayrı inşa edilip kendi ismini almış tek bir bileşeni olduğunu kanıtladı.
Buna pratik bir nedenle dikkat etmeye başladım. Altta yatan model sürekli değişiyor, bazen tek bir güncellemede liderlik tablosunda on yedi sıra birden yükseliyor ve sistemde sizin kontrolünüzde kalan tek kısım harness oluyor.
1/ Yedi Mühendislik, Tek Makine
Disiplin
Cevapladığı Soru
Harness içindeki Konumu
Prompt mühendisliği
Tam olarak neyi soruyorum?
SKILL.md, ilk yüklenen görev spesifikasyonu
Context mühendisliği
Model her adımda ne görüyor?
Bağlam derleyici: kısıtlamalar, şemalar, getirilen sayfalar
Tool mühendisliği
Neye dokunabilir ve hangi formatta?
Tipli girdi ve çıktıları olan araç tanımları
Loop mühendisliği
Çalışmayı başlatan ve bitiren nedir?
Runner (çalıştırıcı): tetikleyiciler, durma koşulları, bütçeler
Graph mühendisliği
Ne hatırlıyor ve şeyler nasıl bağlanıyor?
Hafıza katmanı: düğümler, tipli kenarlar, takma adlar
Eval mühendisliği
Bir sonuç nasıl reddedilir?
Ajanın kontrolü dışındaki doğrulayıcı (verifier)
Harness mühendisliği
Yukarıdakilerin hepsini bir arada tutan nedir?
Çerçeve, izinler ve hook'lar (kanca noktaları)
Tabloyu yukarıdan aşağıya okursanız bir tarihçe görürsünüz. Aşağıdan yukarıya okursanız bir mimari: harness mühendisliği, diğer altı disiplininden her birinin nerede yaşayacağına karar verme işidir; böyle hiçbiri bir prompt'un içine gizlenmez.
Son nokta en büyük ağırlığı taşır.
Prompt, herhangi bir şeyi koymak için en kolay yerdir, bu yüzden her şey oraya kayar: çıktı formatı, durma kuralı, geçen haftaki düzeltmeler, ajanın asla dokunmaması gerekenlerin listesi. Yazdığınız modele mükemmel uyum sağlar, ancak sonraki model aynı paragrafı farklı okur.
2/ Bir Harness'in Anatomisi
Edindiğim en faydalı alışkanlık, hiçbir önemli detayın örtük kalmasını engellemek için tüm harness'i tek bir yapılandırma dosyasında yazmaktır:
1# harness.yaml2model: kimi-k3 # tek satır. aşağıdaki her şey bir değişikliğe dayanır3tools: [browser, fs, shell, search]4permissions:5 write: [./10-returns, ./20-graph, ./40-runs]6 ask_first: [send, publish, pay, delete]7context:8 always: [SKILL.md, CONSTRAINTS.md, SCHEMA.md]9 per_agent: return_schema10runner:11 trigger: cron "0 2 * * *" # siz uyurken gece çalışması12 stop: 40 verified nodes OR 3 passes with nothing new13 budget: { agents: 300, minutes: 45, retries: 2 }14memory:15 graph: ./20-graph16 aliases: ./aliases.csv17verify:18 - script: checks/schema.py19 - agent: reviewer, fresh context20hooks:21 pre_tool: hooks/pre_tool.sh22 post_run: append 40-runs/

O dosyadaki üç satır işin çoğunu halleder.
model: bilinçli olarak tek satırdır. Geri kalan her şey, o satırda ne yazdığından bağımsız olacak şekilde tasarlanır. Taşınabilirlik hikayesinin tamamı budur.
permissions:, tools:'den daha önemlidir, dosyada daha aşağıda olsa bile. Ajanın neleri değiştirebileceğini ve neler hakkında önceden sorması gerektiğini yazmak, gece boyunca çalıştırdığınız sistemi, başında beklediğiniz sistemden ayıran şeydir.
verify: iki giriş içerir, bunun bir sebebi var. Script maliyeti düşüktür ve mekanik hataları yakalar. Reviewer (inceleyen), ilkinin çalışmasını hiç görmemiş ikinci bir ajandır; çünkü kendi çıktısını değerlendiren bir ajan, onaylamak için her türlü bahaneyi bulur.
Diskte, harness tek bir klasördür ve tablodaki her mühendislik dalı için içinde kendi adresi bulunur.

3/ Neden Kimi K3 İçine Koyacağım Motor?
Harness'in İhtiyacı
Kimi K3'ün Sunduğu
Fan-out (dağıtma) yapabilen bir runner
Agent Swarm: Bir orkestratör yazmadan, aynı anda tek bir problem üzerinde çalışan 300'a kadar ajan
Kendi kontrollerini yazabilecek kadar güçlü kodlama
Frontend Code Arena'da 1.679 puanla #1 sırada, Fable 5 (1.631) ve GPT-5.6 Sol (1.618)'in önünde, 7 alandan 6'sında lider
Altınızda gelişen bir motor
Tek bir Temmuz güncellemesinde #18'den #1'e yükseliş
İlk satır göründüğünden daha önemli. Neredeyse her ev yapımı harness, bir noktada elle inşa edilmiş bir orkestratör geliştirir ve bu genellikle klasördeki en kırılgan dosyadır. Swarm ile fan-out, bütçe satırına dönüşür: agents: 300, ve harness sadece dönen sonuçlarla ilgilenmek zorundadır.
İkinci satır önemlidir çünkü bir harness, çoğunlukla modelin sizin için yazdığı koddur: hook scriptleri, şema kontrolleri, 40-runs'u okuyan küçük gösterge paneli. Frontend arenayı lider götüren bir motor, bunları ilk denemede çok daha sık doğru yapar.
Üçüncü satır, harness mühendisliğinin tek bir veri noktasındaki argümanıdır. Bir model bir gecede on yedi sıra tırmandığında, harness bu tırmanışı aynı gün işe yarar hale getirir, çünkü değiştirilmesi gereken tek satır model satırıdır.
4/ Hooks: Refleksler
Hook, model ne yapmaya karar verirse versin, harness'in sabit bir anda çalıştırdığı kısa bir scripttir. Hook'lar, harness'in bir klasör düzeninden çıkıp bir güvenlik sistemi gibi davranmaya başladığı yerdir.
Hook
Ne Zaman Tetiklenir
Ne Yapar
pre_tool
Herhangi bir araç çağrısından önce
İzin listesi dışındaki yazmaları engeller
post_tool
Her dönüşten sonra
Şema kontrolünü çalıştırır ve bozuk çıktıyı anında reddeder
pre_send
Makinadan herhangi bir şey çıkmadan önce
Siz onaylayana kadar bir kuyrukta bekletir
on_fail
Reddedilen bir sonuçtan sonra
Başarısızlık sebebini yeniden denemeye iliştirir
post_run
Durma koşulu sağlandığında
Çalışma kaydını 40-runs'a ekler ve grafiği karşılaştırır
İlk satırdaki pre_tool hook'u beş satıra sığar:
1# hooks/pre_tool.sh2case "$TARGET" in3 ./10-returns/*|./20-graph/*|./40-runs/*) exit 0 ;;4 *) echo "blocked: $TARGET is outside the write list"; exit 1 ;;5esac
Yalnızca on_fail hook'u, bir döngünün ekonomisini değiştirir. Son denemenin neden başarısız olduğunu taşıyan bir yeniden deneme, bir düzeltmedir. O sebep olmadan, döngü aynı hatanın bedelini ikinci kez öder.
5/ Bir Gece Nasıl Görünür?
Tüm parçaları bir araya getirin ve harness, kurallara uyan bir gece vardiyası gibi davranır. 02:00'de tetikleyici ateşlenir ve başlatma sorgusu, iş gerektiren her düğümü seçer. Swarm dağılır, her düğüm için bir ajan.
Şemayı kaçıran dönüşler, grafiğe ulaşmadan önce post_tool tarafından reddedilir ve her reddedilen düğüm, başarısızlık sebebi iliştirilmiş halde bir kez daha denenir. Bir ajan klasörü dışında bir yere yazmaya çalıştığında, pre_tool kimseyi uyandırmadan onu durdurur.
Birleştirilen düğümler ve tipli kenarlar 20-graph'a iner. Taslak bir e-posta pre_send'e ulaşır ve bekler. post_run kaydı ekler ve döngü, config'teki 45 dakikalık bütçenin çok altında kendi koşulunda durur.
07:30'da tek bir dosya okur ve iki karar verirsiniz. Loop mühendisliğini ve graph mühendisliğini bu şekilde çalıştırmanın sabah maliyetinin tamamı budur ve harness'in amacı tam olarak şudur: Sizin olmadan çalışabilen her şey çalıştı ve size ihtiyaç duyan az sayıda şey tek bir yerde sizi bekliyor.

6/ Değişim Testi
Herhangi bir ajan kurulumunun en hızlı denetimi: Model satırını değiştirin ve tekrar çalıştırın. Bozulan her şey, yanlış yerde yaşayan bir harness'tir.
Değişimden Sonra Ne Bozulur
Nerede Gizliydi
Nerede Olmalı
Çıktı formatı kayıyor
Prompt'ta "her zaman JSON olarak yanıtla" ifadesi
Bir dönüş şeması ve başka her şeyi reddeden bir script
Çalışmalar kendi kendine bitmeyi bırakıyor
"Detaylı olana kadar devam et" ifadesi
Sayılardan oluşan bir durma koşulu
Geçen haftaki düzeltmeler kayboldu
Sohbet geçmişi
CONSTRAINTS.md, her çalışmada yüklenir
Aynı şirket üç kez beliriyor
Modelin yargısı
aliases.csv, birleştirmeden önce kontrol edilir
Yazmaması gereken bir yere yazar
Prompt'taki kibar bir cümle
Bir izin listesi ve bir pre_tool hook'u
Değişim testini geçen bir kurulum taşınabilirdir ve taşınabilirlik, onu para eder kılan şeydir.

Maliyeti ve Getirisi
Şirketler dahili ajan platformlarına çeyrekler harcar. Çalışan bir harness, tek bir klasör, tek bir config dosyası ve beş kısa script'tir ve bir Kimi aboneliğinde çalışır. İşte fırsat bu farktır.
Kanal
Getirisi
Önce İhtiyacınız Olan
Küçük ekip için harness kurulumu
Onların iş akışının etrafındaki config, hook'lar ve doğrulayıcı için dört haneli tek seferlik ücret
Kendi schedule'ında çalışan, size ait bir harness
Yayın günü retainer'ı (danışmanlık)
Her büyük model sürümünde değişim testini yapmak ve ekibi lider modele taşımak için aylık ücret
Zaten 40-runs'a log atan müşteriler
Niş harness şablonu
Tek bir sektör için paketlenmiş klasör ve yaml: araştırma, işe alım, uyumluluk
İki farklı pazarda kanıtlanmış aynı harness
İkinci kanal, benim önce inşa edeceğim kanaldır. Her büyük sürüm liderlik tablosunu karıştırır, yalnızca K3 tek bir güncellemede on yedi sıra hareket etti ve harness'i olan her ekibin, yayın gününde değişim testini yapacak birine ihtiyacı var.
Kısa Versiyon
Prompt, context, tool, loop, graph ve eval mühendisliğinin hepsi, tek bir makinenin bileşenleri olarak ortaya çıkar ve harness mühendisliği, her birinin nerede yaşayacağına karar vermektir.
Modeli tek bir satırın arkasına koyun, izinleri araçların önüne alın ve doğrulayıcıyı ajanın dışına yerleştirin. Böylece bir sonraki liderlik tablosu sıçraması, bir yeniden inşa yerine bir config değişikliği olur.

Ve bunu faydalı bulduysanız:
- Bu makaleyi yer imlerinize ekleyin. Bağlantılar değişiyor ve yeni repolar her hafta ortaya çıkıyor, buna bir referans olarak ihtiyacınız olacak
- AI mimarisi, niceliksel işlem (quant trading) ve ajan ekonomisi üzerine haftalık derinlemesine analizler için beni takip edin: @polydao
- TG Kanalına Katılın: Buzzoni Notes - Burada X için henüz erken olan ham promptlarımı, özel yeteneklerimi ve alfamı paylaşıyorum





