Ajanlar context değişse de böyle yoldan çıkmıyor: anchor, stepper ve conversation-cap
WORKFLOWTekrarlanabilir çalışma akışı.AI-DEVELOPMENTAI ile geliştirme pratiği.AGENTSAI ajanlarıyla çalışma yüzeyi.EVIDENCE-UIGörsel kanıtla anlaşılır.ANNOTATIONKonuşma anına bağlı işaret, numara, kutu veya ok.CONTEXT-FORESTÇok dokümanlı AI bağlam ormanı.ACTIVE-USEŞu an kullanılıyor.
On iki saattir çalışan bir ajanı hedefte tutan şey goal tek başına değil. Benim optionOS harness’ım üç ilişkiyi birlikte koruyor:
doğru kuralları seçmek
+ yapılan işi görünür bir planda taşımak
+ compact sonrasında değerli konuşmayı özetlemeden geri vermek
Aşağıdaki ajan, yaklaşık on iki saattir tek başına bir refactor üzerinde çalışıyor. Hâlâ preview veriyor, aktif adımını gösteriyor, konuşmada gördüğü rule anchor’larını yeniden açıyor ve kendi goal’unu sürdürmeye devam ediyor.
On iki saattir çalışan ajanın aktif goal, görünür plan, preview ve yeniden açılan rule anchor’ları aynı terminal görünümünde.
## Goal motor; yönü koruyan şey harness
Aynı anda yaklaşık 15 ajanla çalışıyorum. Görseldeki sentetik user, bunlardan yalnızca biri. Her ajan kendi işine başlamadan önce o işe uygulanacak kuralları seçiyor.
Bunun için kullandığım yapı anchor mimarisi. Bütün kuralları her seferinde ajanın context’ine dökmüyorum. Ajan bulunduğu aşamaya ve yapacağı işe göre gerekli anchor’ları çağırıyor; araç yalnızca ilgili rule block’larını ve onların ilişkilerini getiriyor.
Seçili ajan, anchor çağrısı, plan, stepper, aktif adım ve aşama değişince yinelenen rule routing aynı çalışma akışında.
## Rule başlığı aynı zamanda index
Her rule bir Markdown heading ile başlıyor. Başlıkta dört bilgi birlikte görünüyor:
[#rule-key] · evidence state · importance · ne zaman açılacağı
Anchor çağrıldığında yalnız başlık değil, altındaki rule content’i de geliyor. Rule başka anchor’lara referans veriyorsa closure takip ediliyor ve ilişkili rule block’ları da aynı context içine alınıyor.
Bu nedenle rule, tek başına duran bir prose parçası değil; diğer kurallarla ilişkileri olan adreslenebilir bir düğüm.
Bir rule heading’i ile gövdesindeki iki anchor ilişkisi aynı kaynak görünümünde sırayla inceleniyor.
## AGENTS.md bütün rule body’sini taşımıyor
AGENTS.md, full rule corpusunun ikinci bir kopyası değil. Ajan burada compact routing projection’ını görüyor: rule key ve hangi koşulda açılması gerektiği.
Gerçek rule content’i kendi authority’sinde kalıyor. Ajanın komutu ya da bulunduğu context hangi rule’u gerektiriyorsa anchor onu çağırıyor.
Böylece iki problem azaltılıyor:
1. Her görevde ilgisiz kurallarla context’i doldurmak. 2. Rule authority’sini birden fazla dosyaya kopyalayıp drift üretmek.
AGENTS.md içinde rule body yerine rule key ve açılma koşullarını taşıyan compact routing projection.
## Plan kritik; stepper konuşmadaki görünür state
Ajan çalışırken bir plan oluşturuyor. Plan yalnız yapılacakların listesi değil; ajanın davranışını hangi kapsam içinde sürdürdüğünü görünür kılan state.
Konuşmada ayrıca bir stepper gösteriyorum:
✓ kapananlar
▶ şu anki aktif darboğaz
○ gelecekte kalanlar
Örnekte ajan [2/8] konumunda ve üçüncü aşamaya ilerliyor. Önceki adımlar, bulunduğu nokta ve kalan bütün scope aynı yüzeyde görünüyor.
Bu kayıt compact sonrasında da önemini koruyor. Yeni context yalnız goal metnini değil, ajanın nerede kaldığını da okuyabiliyor. Her aşama değiştiğinde ajan gerekli rule anchor’larını yeniden çağırıyor.
## Compact planlı bir durdurma
Context dolduğu zaman Codex Context compacted durumuna geliyor. Benim PostCompact hook’um burada ajanı bilinçli olarak durduruyor.
Bunu yapmamın nedeni injection zamanlaması: ajan çalışmaya devam ederken verdiğim ek context geç düşebiliyor. Ajan durduğunda yeni context bir sonraki başlangıca doğru yerde eklenebiliyor.
Bu yüzden terminalde görünen Conversation interrupted satırı burada beklenmeyen bir arıza değil; devam zincirinin bilinçli sınırı.
Context compacted, PostCompact hook ve bilinçli conversation interruption aynı lifecycle sınırında.
## devam yeni context’i açıyor
Durdurmadan sonra iki yol aynı motoru kullanıyor:
- Ben devam yazabiliyorum.
- Aktif goal, stop sonrasında ajanı otomatik olarak yeniden çalıştırabiliyor.
Bir sonraki başlangıçta SessionStart hook’u devreye giriyor ve conversation-cap context’ini enjekte ediyor:
<<<optionos:conversation-cap>>>
selection: continuation-safe
… +1148 lines
conversation-cap bir LLM summary’si değil. Tamamen algoritmik bir selection/dump mekanizması.
Korunanlar:
- insan mesajları, - insanın tepkisini veya sonraki kararını değiştiren agent cevapları, - açık kararlar ve devamı etkileyen context, - gerekli lineage ve dosya yolları.
Atılanlar:
- disposable file-read çıktıları, - tekrarlı tool gürültüsü, - sonraki kararı değiştirmeyen ara taşıyıcılar.
Amaç bütün transcript’i sınırsız büyütmek değil; davranışı oluşturan sinyali, yeniden anlatmadan sonraki context’e taşımak.
Devam mesajı, SessionStart hook, continuation-safe selection ve geri taşınan ham konuşma satırları aynı başlangıçta.
## Goal’un buradaki işi hafıza olmak değil
Goal’un temel rolü, stop sonrasında ajanın yeniden çalışmasını sağlamak. Tam hedef context’i zaten konuşmanın içinde yaşıyor.
Dolayısıyla zincirdeki roller farklı:
goal → devam motoru
plan + stepper → ajanın nerede kaldığı
rules + anchor → şu anda hangi sınırların geçerli olduğu
conversation-cap → kararı oluşturan geçmiş context
Bunlardan yalnız biri kaldığında ajan çalışabilir; fakat yönünü koruyacağı garanti edilemez. Harness, bu dört parçanın aynı devam anında yeniden buluşmasını sağlıyor.
## On iki saat sonra ne görüyorum?
Uzun çalışan ajan hâlâ:
- kendi preview’ını gösteriyor,
- [5/6] konumunu taşıyor,
- konuşmadaki [#kural:onizleme] gibi rule işaretlerini görüyor,
- gerektiğinde rule aracını yeniden çağırıyor,
- Pursuing goal (12h 15m) durumunda ilerliyor.
Bu, ajanın hiç sapmayacağını ispatlamıyor. Fakat context reset’lerinden sonra goal, plan, rules ve insan konuşmasını yeniden birleştirerek sapma riskini düşürüyor.
Token kullanımını azalttığına dair henüz ölçümüm yok. Tahminim, ajanın aynı araştırmayı baştan yapmasını engellediği için toplam yükü azaltabileceği yönünde; bunu ölçülmüş gerçek gibi yayınlamayacağım.
## Bu benim mevcut optionOS harness’ım
Bu sistemi sürekli geliştiriyor ve paylaşılabilir hâle getiriyorum. Paylaşımın önünde iki temel engel var:
1. Proof: Mekanizmanın farklı ajanlarda gerçekten çalıştığını gösterebilmek. 2. Invisible dependencies: Benim bilgisayarımda var olup başka bir kurulumda bulunmayan görünmez bağımlılıkları kaldırmak.
Bu parçalar çözüldükçe harness’ın bileşenlerini optionOS ekosistemi içinde yayınlayacağım. Şimdilik bu Guide, çalışan mevcut mekanizmayı ve sınırlarını gösteren bir draft/evidence yüzeyi.