33 puan yazan GN⁺ 2026-03-18 | 2 yorum | WhatsApp'ta paylaş
  • Stripe, Ramp, Coinbase gibi önde gelen mühendislik organizasyonlarının bağımsız olarak geliştirdiği kurum içi kodlama ajanları benzer mimari desenlerde yakınsıyor; Open SWE ise bunu açık kaynak olarak hayata geçiren framework
  • Deep Agents ve LangGraph üzerinde inşa edilerek, izole bulut sandbox'ları, küratörlü araç setleri, alt ajan orkestrasyonu ve geliştirici iş akışı entegrasyonu gibi temel bileşenleri sunuyor
  • Mevcut ajanı fork'lamadan composition yaklaşımıyla kurulduğu için, temel framework yükseltmeleri ile organizasyona özgü özelleştirmeleri aynı anda korumak mümkün
  • Sandbox sağlayıcısı, model, araçlar, tetikleyiciler, sistem prompt'u ve middleware dahil tüm ana bileşenler plug-in yapıda değiştirilebiliyor
  • Kurum içi kodlama ajanı kullanımını değerlendiren ekipler için prodüksiyonda doğrulanmış desenlere dayanan bir başlangıç noktası MIT lisansıyla sunuluyor

Prodüksiyon dağıtımlarında ortaya çıkan ortak desenler

  • Stripe'ın Minions, Ramp'in Inspect, Coinbase'in Cloudbot gibi kodlama ajanları bağımsız geliştirilmiş olsalar da benzer mimari kararlarda birleşiyor
  • İzole yürütme ortamı: Her görev özel bir bulut sandbox'ında çalışıyor ve sıkı sınırlar içinde tam yetki alıyor. Böylece üretim sistemlerinde yapılabilecek hataların etki alanı izole edilirken, her aksiyon için onay prompt'u gerekmeksizin komut çalıştırılabiliyor
  • Küratörlü araç seti: Stripe mühendislik ekibine göre ajan yaklaşık 500 araca erişiyor; ancak bu araçlar zamanla birikmiş değil, dikkatle seçilip bakımı yapılmış durumda. Araç sayısından çok kürasyon daha önemli
  • Slack öncelikli çağırma: Üç sistem de Slack'i varsayılan arayüz olarak entegre ediyor; böylece geliştiriciler yeni bir uygulamaya geçmeden mevcut iletişim iş akışları içinde erişebiliyor
  • Başlangıçta zengin bağlam: Linear issue'ları, Slack thread'leri ve GitHub PR'larından tam bağlam alınarak işe başlamadan önce sağlanıyor; bu da araç çağrıları üzerinden gereksinim keşfetme yükünü azaltıyor
  • Alt ajan orkestrasyonu: Karmaşık işler parçalanıp, her biri izole bağlam ve odaklı sorumluluğa sahip uzman alt ajanlara devrediliyor

Open SWE mimarisi

  • 1. Ajan harness'i: Deep Agents tabanlı composition

    • Mevcut bir ajanı fork'lamak ya da sıfırdan kurmak yerine, Deep Agents framework'ü üzerinde composition yaklaşımı benimseniyor. Bu, Ramp ekibinin Inspect'i OpenCode üzerine kurarken izlediği yaklaşıma benziyor
    • Composition'ın iki avantajı var:
      • Yükseltme yolu: Deep Agents iyileştirildikçe (daha iyi bağlam yönetimi, daha verimli planlama, optimize token kullanımı), özelleştirmeleri yeniden kurmadan bu iyileştirmeleri almak mümkün
      • Fork'suz özelleştirme: Organizasyona özgü araçlar, prompt'lar ve iş akışları; çekirdek ajan mantığını değiştirmek yerine konfigürasyon olarak korunabiliyor
    • Deep Agents'ın sunduğu altyapı: write_todos ile yerleşik planlama, dosya tabanlı bağlam yönetimi, task aracıyla yerel alt ajan başlatma ve deterministik orkestrasyon için middleware hook'ları
  • 2. Sandbox: izole bulut ortamı

    • Her görev kendi izole bulut sandbox'ında çalışıyor; tam shell erişimi olan uzak bir Linux ortamı sağlanıyor
    • Repository klonlanıp ajana tam yetki veriliyor; hatalar bu ortam içinde izole kalıyor
    • Varsayılan sandbox sağlayıcıları: Modal, Daytona, Runloop, LangSmith. İstenirse özel bir sandbox backend'i de geliştirilebiliyor
    • Temel davranışlar:
      • Her konuşma thread'i için kalıcı sandbox atanıyor ve sonraki mesajlarda yeniden kullanılıyor
      • Sandbox erişilemez hale gelirse otomatik olarak yeniden oluşturuluyor
      • Birden fazla görev, her biri kendi sandbox'ında paralel çalıştırılıyor
  • 3. Araçlar: birikim değil kürasyon

    • Open SWE, odaklı bir araç setiyle birlikte Deep Agents'ın yerleşik araçlarını sunuyor: read_file, write_file, edit_file, ls, glob, grep, write_todos, task
    • Küçük ve küratörlü bir araç seti; test, bakım ve muhakeme açısından daha elverişli. Kurum içindeki ek araçlar (dahili API'ler, özel deployment sistemleri, özel test framework'leri) açıkça eklenebiliyor
  • 4. Bağlam mühendisliği: AGENTS.md + kaynak bağlamı

    • Bağlam iki kaynaktan toplanıyor:
      • AGENTS.md dosyası: Repository kökünde varsa sandbox içinde okunup sistem prompt'una enjekte ediliyor. Konvansiyonlar, test gereksinimleri, mimari kararlar ve ekibe özgü desenler burada kodlanabiliyor
      • Kaynak bağlamı: Bir Linear issue'sunun tamamı (başlık, açıklama, yorumlar) veya Slack thread geçmişi birleştirilerek ajan başlamadan önce veriliyor; böylece ek araç çağrısı olmadan göreve özgü bağlam sağlanıyor
    • Bu, repository genel bilgisi ile göreve özgü bilgiyi dengeli biçimde birleştiren iki katmanlı bir yaklaşım
  • 5. Orkestrasyon: alt ajanlar + middleware

    • İki mekanizma birlikte kullanılıyor:
      • Alt ajanlar: task aracıyla çocuk ajanlar başlatılıyor. Ana ajan, bağımsız alt görevleri; kendi middleware stack'i, todo listesi ve dosya işlemleri olan izole alt ajanlara devrediyor
      • Middleware: Ajan döngüsünün çevresinde çalışan deterministik hook'lar
        • check_message_queue_before_model: Ajan çalışırken gelen takip mesajlarını (Linear yorumları, Slack mesajları) bir sonraki model çağrısından önce enjekte ediyor. Böylece ajan çalışırken kullanıcıdan ek girdi alınabiliyor
        • open_pr_if_needed: Ajan PR açmayı tamamlayamazsa, otomatik olarak commit ve PR oluşturan bir güvenlik ağı
        • ToolErrorMiddleware: Araç hatalarını zarif biçimde yakalayıp işliyor
    • Ajanik (model güdümlü) ve deterministik (middleware güdümlü) orkestrasyonun ayrılmasıyla güvenilirlik ile esneklik arasında denge sağlanıyor
  • 6. Çağırma: Slack, Linear, GitHub

    • Slack: Thread içinde bot mention'lanıyor. repo:owner/name sözdizimiyle çalışılacak repository belirtiliyor. Ajan, thread içinde durum güncellemeleri ve PR bağlantısıyla yanıt veriyor
    • Linear: Issue'ya @openswe yorumu bırakılıyor. Ajan tüm issue bağlamını okuyup 👀 ile onay veriyor, ardından sonucu yorum olarak paylaşıyor
    • GitHub: Ajanın oluşturduğu PR üzerindeki yorumlarda @openswe etiketiyle review geri bildirimi işleniyor ve düzeltmeler aynı branch'e push ediliyor
    • Her çağırma, deterministik bir thread ID'si üreterek aynı issue ya da thread'deki takip mesajlarının çalışmakta olan aynı ajana yönlendirilmesini sağlıyor
  • 7. Doğrulama: prompt tabanlı + güvenlik ağı

    • Ajana, commit atmadan önce linter, formatter ve testleri çalıştırması söyleniyor
    • open_pr_if_needed middleware'i bir backstop görevi görüyor: Ajan PR açmadan sonlanırsa middleware otomatik devreye giriyor
    • Deterministik CI kontrolleri, görsel doğrulama ve review gate'leri ek middleware ile genişletilebiliyor

Neden Deep Agents kullanılıyor?

  • Bağlam yönetimi: Uzun süreli kodlama görevlerinin ürettiği büyük miktardaki ara veriyi (dosya içerikleri, komut çıktıları, arama sonuçları) dosya tabanlı belleğe offload ederek her şeyi konuşma geçmişinde tutmuyor. Büyük kod tabanlarında bağlam taşmasını önlemede etkili
  • Planlama primitifi: Yerleşik write_todos aracı; karmaşık işleri parçalamayı, ilerlemeyi izlemeyi ve yeni bilgiye göre planı uyarlamayı yapılandırıyor. Özellikle uzun süreye yayılan çok adımlı işler için faydalı
  • Alt ajan izolasyonu: Ana ajan task aracıyla çocuk ajan başlattığında izole bağlam veriliyor. Farklı alt görevlerin konuşma geçmişleri birbirine karışmadığı için karmaşık işlerde daha net muhakeme mümkün oluyor
  • Middleware hook'ları: Ajan döngüsünün belirli noktalarına deterministik mantık enjekte edilebiliyor. Mesaj enjekte etme ve otomatik PR oluşturma gibi kararlı biçimde çalışması gereken davranışlar için kullanılıyor
  • Yükseltme yolu: Deep Agents bağımsız bir kütüphane olarak aktif biçimde geliştirildiğinden, bağlam sıkıştırma, prompt caching, planlama verimliliği ve alt ajan orkestrasyonundaki iyileştirmeler; özelleştirmeleri yeniden kurmadan Open SWE'ye yansıtılabiliyor

Organizasyona göre özelleştirme

  • Open SWE, tamamlanmış bir ürün değil; özelleştirilebilir bir temel olarak tasarlanmış. Tüm ana bileşenler plug-in yapıda:
    • Sandbox sağlayıcıları: Modal, Daytona, Runloop, LangSmith arasında geçiş yapılabiliyor. Dahili altyapı ihtiyaçlarına uygun özel bir sandbox backend'i geliştirilebiliyor
    • Modeller: Tüm LLM sağlayıcıları kullanılabiliyor. Varsayılan model Claude Opus 4; alt görev bazında farklı modeller tanımlanabiliyor
    • Araçlar: Dahili API'ler, deployment sistemleri, test framework'leri ve gözlemleme platformları için araçlar eklenebiliyor. Gereksiz araçlar kaldırılabiliyor
    • Tetikleyiciler: Slack, Linear ve GitHub entegrasyon mantığı değiştirilebiliyor. E-posta, webhook ve özel UI gibi yeni tetikleyici yüzeyleri eklenebiliyor
    • Sistem prompt'u: Varsayılan prompt ve AGENTS.md yansıtma mantığı özelleştirilebiliyor. Organizasyona özgü talimatlar, kısıtlar ve konvansiyonlar eklenebiliyor
    • Middleware: Doğrulama, onay kapıları, loglama ve güvenlik kontrolleri için özel middleware hook'ları eklenebiliyor

İç implementasyonlarla karşılaştırma

  • Stripe, Ramp ve Coinbase'in dahili sistemleriyle, herkese açık bilgiler temelinde yapılan karşılaştırmada temel desenler benzer görünüyor
  • Farklar daha çok uygulama ayrıntılarında, dahili entegrasyonlarda ve organizasyona özgü araçlarda ortaya çıkıyor; bu da framework'ün farklı ortamlara uyarlanmasında beklenen bir durum

Başlarken

  • Open SWE, GitHub'da MIT lisansı ile kullanılabiliyor: https://github.com/langchain-ai/open-swe
  • Installation Guide, GitHub App oluşturma, LangSmith kurulumu, Linear/Slack/GitHub tetikleyicileri ve prodüksiyon dağıtımı için rehber sunuyor
  • Customization Guide, sandbox, model, araç, tetikleyici, sistem prompt'u ve middleware değiştirme yöntemlerini anlatıyor
  • Fork'lama, özelleştirme ve dahili dağıtımın tamamı mümkün

2 yorum

 
sea715 2026-03-18

Herkesin düşünceleri gerçekten de birbirine oldukça benziyor.. tam anlamıyla bir Savaşan Devletler dönemi

 
xguru 2026-03-18

Artık herkes şirket içi coding agent’lar yapıyor, demek ki bunun için bir framework de çıkarmışlar. Herkes çok hızlı.

Bunu mutlaka kullanmaktan ziyade, içeride referans alınan çeşitli şirketlerin kalıplarına da göz atmak iyi olabilir