Tenet - Röportajdan DAG yürütmeye, 3 katmanlı critic'ten steer mesajlarına kadar uzun süreli bir yapay zeka kodlama harness'i
(github.com/JeiKeiLim)Merhaba.
Uzun süreli otonom çalıştırma yapabilen bir AI coding agent harness'i olan Tenet'i geliştiriyorum; paylaşmak istedim.
AI kodlama ajanlarını kullandığınızda kısa işler oldukça iyi gidiyor, ancak birkaç saati aşan geliştirmelere geçildiğinde işler hızla belirsizleşebiliyor.
Spesifikasyon bulanıklaşabiliyor, testler çalışsa da yeterli olup olmadıkları belli olmuyor, arada yön değiştirmek de zorlaşıyor ve oturum koparsa bağlam da onunla birlikte kayboluyor.
Tenet, bu sorunları azaltmak için yaptığım bir harness'tir.
Sadece “uzun süre çalışan bir ajan” olmaktan ziyade, uzun süre çalışsa da yönünü ve kalitesini koruyan bir yapıya daha yakındır.
Kabaca şu akışla çalışır.
-
Interview
- Önce gereksinimleri bir röportaj/interview ile somutlaştırır.
- Gerekirse teknik araştırmayı da birlikte yapar.
-
Visuals / Architecture
- Mimari diyagramlar veya UI mockup'ları oluşturur.
- UI işi ise birden fazla varyasyon üretir ve hangi yöne gidileceğinin önce seçilebilmesini sağlar.
-
Spec / Harness / Scenarios
- Uygulama spec'i, test/doğrulama harness'i ve senaryoları belge olarak bırakır.
- Yalnızca “ne yapılacağı” değil, “hangi ölçütle başarılı sayılacağı” da birlikte sabitlenir.
-
DAG decomposition
- İşi bir dependency graph'e böler.
- Bağımsız job'lar paralel çalıştırılabilir.
-
Autonomous execution loop
- Her job'u yürütür ve bitince değerlendirme ekler.
- Bu döngü uzun süre çalışabilecek şekilde tasarlanmıştır.
Değerlendirme yöntemi
Her job, bitti denilip hemen sonrakine geçmez; 3 critic'ten geçmesi gerekir.
- code critic: implementasyonun spec niyetiyle uyumlu olup olmadığı
- test critic: mevcut testlerin gerçekten bu job'u doğrulamak için yeterli olup olmadığı
- Playwright e2e eval: gerçek kullanıcı bakış açısından çalışıp çalışmadığı
Burada özellikle önem verdiğim nokta, bu critic'lerin mümkün olduğunca yazarı bağlamından ayrılmış fresh context içinde bakmasıydı.
Kodu yazan ajanın kendi çıktısını fazla kolay onaylamasını azaltmak istedim.
README'de de yazdım ama özellikle test tarafında, “test var mı” sorusundan çok test gerçekten doğru şekilde doğruluyor mu sorusunun daha önemli olduğunu düşünüyorum.
Ara steer
Uzun süre çalıştırırken bazen insan arada yönü biraz değiştirmek isteyebilir.
Tenet'te bunun için yürütmeyi baştan yeniden açıklamak yerine,
yalnızca bir steer message bırakmanız yeterli; bunu kaydedip sonrasında ilgili job'larda yansıtacak şekilde tasarladım.
Yani,
- o anda tüm döngüyü kesmeniz gerekmez
- ilgili aşamada tekrar pickup edilmesini sağlayan bir yöntemdir.
Dokümantasyon ve iz bırakma tarafını önemli gördüm
Bunu geliştirirken benim için özellikle önemli olan şey,
yalnızca sonucu bırakmak değil karar alma sürecini ve iş izlerini de birlikte bırakmaktı.
.tenet/ altında şunlar kalır.
- interview
- spec
- harness
- visuals
- knowledge
- journal
- steer
- status
- SQLite state
Bu yüzden tek sefer çalışıp biten oturum tipi bir ajandan çok,
sonraki işlerde de yeniden başvurulabilecek geliştirme kayıtlarını sürekli biriktiren bir yapı hedefliyor.
Hissiyat olarak,
“freelancer'a veya dış kaynak ekibe iş devrederken gereken dokümantasyon/doğrulama/handover yapısını”
AI agent tarafına taşımaya yönelik bir denemeye daha yakındır.
Mevcut durum
Henüz erken aşamada.
Buna rağmen temel akış zaten uygulanmış durumda ve şu anda aşağıdakiler bulunuyor.
- Claude Code / OpenCode / Codex adaptörleri
- MCP sunucusu + CLI
- DAG tabanlı job orchestration
- SQLite + WAL tabanlı kalıcı state
- orphan job recovery
- 3-critic değerlendirme pipeline'ı
- steer message işleme
.tenet/doküman yapısı
Bunu gerçekten kullanıp oldukça uzun süre çalıştırdım ve
6 saatten fazla insan müdahalesi olmadan çalıştıktan sonra hemen kullanılabilir sonuç verdiğini doğruladım.
Şu anda benim her gün kullandığım uygulamalardan biri de tenet kullanılarak ortaya çıktı.
Bu hâlâ erken aşama bir proje olduğu için pürüzlü yanları çok.
Her türlü geri bildirimi rahatlıkla paylaşırsanız sevinirim.
Henüz yorum yok.