Agentic Harness Nedir: OpenRig ile Yazılım Takımlarında Ajan Koordinasyonu
Agentic Harness Nedir: OpenRig ile Yazılım Takımlarında Ajan Koordinasyonu
Bu haftanın ilk üç günü, farklı ölçekte ve konumda ajanlar yönetmek için tasarlanmış harness’leri gördük. Buzz sosyal protokolle ajan keşfini ve etkileşimi ele aldı. Hermes, denetlenebilir bellek ve araç envanteri ile tek makineye özel ajan çalıştırma çerçevesi sağladı. Cloudflare Agents SDK, global ölçekte, binlerce veya milyonlarca ajan örneğini kapsayacak şekilde tasarlandı.
Bugün başka bir problem çözülüyor: Yazılım geliştirme ekibinde, bir insanla birlikte, birden fazla kodlama ajanı aynı projede çalışmalı. Kodlar yazılmalı, gözden geçirilmeli, testler çalıştırılmalı. Hepsi aynı git reposundan. Peki, bunu nasıl organize edersiniz?
OpenRig, bu sorunun harness’idir.
Sorun: Yazılım Geliştirmede Ajan Kaosu
Yazılım projelerinde tipik sahne şöyledir:
Sabah, developer’ın ekranında çok sayıda terminal penceresi vardır. Her biri bir ajanı veya işlemi temsil eder:
- Terminal 1: Claude Code bir özellik yazıyor.
- Terminal 2: Codex test yazıyor.
- Terminal 3: GitHub Actions otomatik build’i çalıştırıyor.
- Terminal 4: İnsan bir seçeneği araştırıyor.
- Terminal 5: Lint hataları düzeltiliyor.
Bu “terminal sprawl” (terminal çeşitlemesi), sorunun kaynağıdır. Makiney yeniden başlarsa, terminal pencerleri kapanır ve kontekst kaybı olur. Hangi ajan neydi yapıyordu? Dün ne yapmıştı? Bir hata oluştursa, kayıt var mı?
OpenRig, bu kaosu düzenli bir sistem haline getirir.
OpenRig’in Mimarisi
OpenRig’in temelinde bir fikir vardır: her ajan bir “pod” (kapsül), ve podlar bir “rig” (takım) oluştururlar. Takım YAML’da tanımlanır, version control’de saklanır ve tmux aracılığıyla çalıştırılır.
Basit bir örnek:
rig:
name: "blog-engine"
pods:
- name: "writer"
harness: Claude Code
model: Claude 3.5 Sonnet
context: 200k
- name: "editor"
harness: Codex
model: Claude 3.5 Sonnet
context: 100k
- name: "test"
harness: pytest-runner
context: 50k
edges:
- from: "writer"
to: "editor"
channel: "review-feedback"
- from: "editor"
to: "test"
channel: "approved-code"
Şu komutla başlarsınız:
rig up blog-engine --cwd .
rig tui
OpenRig, tmux oturumlarını başlatır. Her pod kendi terminal pane’ini alır. Aralarında tanımlanmış kanallar aracılığıyla veri akışı olur. YAML dosyası git’te kaydedilir; takım yapısı tarihçelenir.
Neden Yazılım Geliştirme İçin Özel
OpenRig’i diğer harness’lerden farklı kılan şey, yazılım geliştirme ekiplerinin ihtiyaçları için özel olarak tasarlanmış olmasıdır:
1. Durum Kalıcılığı (State Persistence): Bir ajan çalışırken kapatırsanız, onun konteksti (chat history, yapılan işler, kütüphaneler, veri) kaydedilir. Saatler veya günler sonra açarsanız, kaldığı yerden başlar. Hermes’in hafızası gibi, ama ekip düzeyinde.
2. Terminal Görünürlüğü: Tmux’un sağladığı görsel terminal yönetimi sayesinde, hangi ajanın ne yaptığını canlı olarak izleyebilirsiniz. Bir ajan uzun süre sessizse, hangisi olduğunu bilirsiniz.
3. Kanallar ve Akış Yönetimi: Podlar arasında tanımlanmış çıkış ve girişler vardır. Writer’ın çıktısı doğrudan Editor’a gider. Test sonuçları geri feedback’i tetikler. Akış açık, belgelenmiş.
4. İzlenebilirlik (Auditability): Her ajanın adımı, çıktısı, hata mesajı kayıt altındadır. Bir hafta sonra “bu özellik kim kodladı, test neden başarısız oldu?” sorusu, git ve OpenRig loglarından cevap bulur.
5. YAML Tabanlı Kod: Takım yapısı kod olarak tanımlanır. Yeni bir ajan ekleme, çıkarma, bağlantıları değiştirme—hepsi YAML düzenleme, commit, push ile olur. Dokümantasyon ve kod aynı yerdir.
Senaryo: Yazılım Takımının Bir Günü
Öğleden sonra, bir blog motoru geliştiriyorsunuz. İki ajan var:
- Writer Pod: Yeni bir özelliğin kodunu yazıyor.
- Editor Pod: Yazılı kodu inceliyor ve test başarısının doğrulanmasını isteniyor.
OpenRig TUI açarsınız:
┌─ rig: blog-engine ─────────────────────┐
│ writer [ACTIVE] | editor [WAITING] │
│ │
│ context: 45k token | context: 0 │
└────────────────────────────────────────┘
Writer’a bir görev gönderirsiniz:
rig send writer "Write a function to parse markdown frontmatter"
Writer başlıyor. Kodunu yazıyor. OpenRig, çıktısını kaydediyor.
Bittikten sonra:
rig forward writer editor
OpenRig, writer’ın çıktısını editor’un giriş kanalına koyar. Editor, kodu gözden geçirir. Eğer uygun görürse, test pod’una yönlendirir. Testler geçerse, master branch’e merge edilir.
Makine yeniden başlarsa, rig kalitesiyle durumunu geri yükler. Kimse hiçbir kontekst kaybetmez.
Organizasyonda Ajan Koordinasyonu
Yazılım şirketinde, 5 veya 10 farklı yazılım ajanı çalıştırıyor olabilirsiniz. OpenRig olmadan, her biri bağımsız terminal sürecidir. OpenRig ile, hepsi tek bir rig olarak tanımlanabilir, hepsi aynı kod deposunda, hepsi görünür ve izlenebilir.
Proje yöneticisinin soruları:
- Hangi ajan hangi işin sahibi?
- Bir işin durumu nedir?
- Bir ajan başarısız oldu—geçmiş nedir?
OpenRig cevapları YAML (takım tanımı) ve loglar (işlemler) ile sağlar.
Diğer Harness’lerle Karşılaştırma
- Buzz: Sosyal protokol, ajan keşfi.
- Hermes: Genel amaçlı, bellek tabanlı, araç yönetimi.
- Cloudflare Agents SDK: Global ölçek, milyonlarca ajan.
- OpenRig: Yazılım takımları, terminal koordinasyonu, yerel/self-hosted.
OpenRig’in gücü, development ekiplerinin doğal iş akışına uyması. Kod yazma, review, test—tmux tabanlı, YAML tanımlanmış, durum kalıcı.
Sınırı ise kapsam: Cloudflare’nin global ölçeği yoktur, Hermes’in kadar genel amaçlı değildir. Ama yazılım ekiplerinin günlük iş akışında, bu özellikleri tam olarak sağlar.
Sonuç: Dört Harness, Dört Sorun
Dört gün, dört açık kaynak harness gördük. Hepsi ajan çalıştırmakla ilgili, ama farklı problemleri çözüyor:
- Buzz: Ajanların sosyal keşfi ve etkileşimi.
- Hermes: Bellek, araçlar, denetim—tek makine, genel amaçlı.
- Cloudflare Agents SDK: Global ölçek ve durable execution.
- OpenRig: Yazılım geliştirme takımlarında koordinasyon ve görünürlük.
Bu dört harness’ten hangisini seçmek, ekibinizin sorunundan kaynaklanır. Ama seçtikten sonra, daha büyük bir soru ortaya çıkabilir: bu ajanlar, organizasyon şemanızda nasıl yer alacak? Hangi politikalarla çalışacak? Birbirleriyle nasıl koordine edecek?
Bu sorunun cevabı agentic-organization’da bulunur—self-hosted, dosya-tabanlı platform olarak, ajanları organizasyon üyeleri gibi yönetir. OpenRig’in sağladığı yazılım takım koordinasyonu ve Buzz’ın sosyal keşfi, Hermes’in yönetimi ve Cloudflare’nin ölçeği, agentic-organization’da bir organizasyon yapısına bağlanır. Ajanlar zaman aşımına uğramayan araçlar olmaktan çıkıp, kurumsal varlık haline gelirler.