Tek runtime üstünde dört ürün.
Goddo, GoPeople, GoVista, GoTrack — üretici AI, WhatsApp üzerinden İK, dijital ekran CMS, perakende görüntü işleme. Dört farklı kategori, dört farklı müşteri tipi, altta tek bir çoklu-ajan runtime. İşte mimari, kararlar ve neyin neredeyse bizi kırdığı.

Atakan Özalan
Kurucu ortak & mühendislik lideri, GOGOGO LLC

Müşteriler GOGOGO LLC'nin dört ürününü gördüğünde — Goddo, GoPeople, GoVista, GoTrack — çoğu bunların dört ayrı kod tabanı olduğunu varsayıyor. Değiller. Altta tek bir çoklu-ajan runtime, dört ürün yüzeyi var. Bu, küçük bir kurucu takımın üç yıl içinde dört üretim AI ürünü yayımlamasını mümkün kılan mimari karar. Aynı zamanda neredeyse bizi iki kere kıran karar.
Neden tek runtime
Okan ile 2023'te şirketi planlamaya oturduğumuzda dört ürün fikrimiz vardı. Naif yol dört ayrı stack inşa etmekti: Goddo için görüntü üretim motoru, GoPeople için WhatsApp router, GoVista için signage CMS, GoTrack için görüntü işleme pipeline'ı. Dört kod tabanı. Dört runtime. Dört eval seti. Dört on-call rotasyonu.
İki kişilik bir kurucu mühendislik takımı için bu gerçekçi değildi. Bu yüzden bir bahis koydum: dört ürün paylaşılmış bir çoklu-ajan runtime olacak ve ürüne özel farklılıklar üstündeki konfigürasyon olarak ifade edilecek. Orkestratör aynı olacak. Ajan soyutlamaları aynı olacak. Telemetri, eval harness'ları, replay araçları — hepsi paylaşılacak. Yalnızca ajanların kendisi ve dış entegrasyonlar ürün başına farklı olacak.
Mimari, kısaca
Her ürün aynı runtime üzerinde ince bir istemci. Runtime'ın dört birincil kaygısı var:
- Ajan kayıt defteri — var olan uzman ajanların seti. Bazıları ürüne özel (Goddo'nun
prompt_enhancer'ı var, GoTrack'inpickup_detector'ı). Bazıları dört ürün boyunca paylaşılmış (validator,critic,tracer). - Orkestratör — hangi ajanın sonra çalışacağını, hangi payload ile ve çıktıların nasıl devredileceğini karar veren küçük kural-şekilli kontrolör. Orkestratör dört ürün için aynı kod. Farklılıklar hangi ajanların mevcut olduğunu söyleyen ürün başına config'te yaşıyor.
- Olay log'u — her ajan çağrısı, her tool çağrısı, her payload, her sonuç,
trace_idile anahtarlanmış tek bir append-only log'a yazılıyor. Replay aracı bunu okuyor. Eval harness bunu okuyor. Müşteri desteği bir müşteri bir sorun bildirdiğinde bunu okuyor. - Tool broker — ajan çağrılarını dış dünyaya proxy'leyen katman. GoPeople için WhatsApp. Goddo için Cloudflare R2. GoTrack için kamera feed'leri. GoVista için signage SDK'ları. Ajanlar dış dünyayı doğrudan bilmiyor; broker'a soruyorlar.
Her ürün bu ürünün hangi ajanları, hangi şekilde ve hangi tool-broker entegrasyonlarıyla kullandığını söyleyen YAML şeklinde bir manifest. Beşinci bir ürün eklemek çoğunlukla yeni bir manifest artı 2-3 yeni uzman ajan olurdu — runtime'ın kendisinin değişmesi gerekmezdi.
Bu bize ne veriyor
1. Dört ürün boyunca tek eval harness
Çoklu-ajan AI'da en zor mühendislik işi sistemi değerlendirmek. Dört ayrı eval harness inşa etmek bizi öldürürdü. Bunun yerine harness runtime'ın parçası — her ajan çağrısı küçük bir değerlendiriciler kütüphanesine karşı otomatik olarak değerlendiriliyor (çıktı şema geçerliliği, retrieval ajanları için olgusal temellendirme, üreticiler için halüsinasyon kontrolü). Bir Goddo iyileştirmesi yayımladığımızda, bir GoPeople iyileştirmesiyle aynı harness'a karşı çalışıyor. Eval'ler birikiyor.
2. Tek gözlemlenebilirlik yüzeyi
Trace replay, ajan latency dağılımları, çalışma-başına maliyet dashboard'ları — bir kere inşa edildi, dört kere kullanılıyor. Goddo 2025'te bir sağlayıcı kesintisi yaşadığında, dashboard zaten bağlı olduğu için iki dakika içinde fark ettik. Paylaşılan runtime olmadan o görünürlük en az on sekiz ay boyunca var olmayacaktı.
3. Tek model-yönlendirme katmanı
Modelleri sık takas ediyoruz. Yeni Claude sürümü, yeni GPT sürümü, yeni Gemini sürümü, yeni difüzyon modeli. Her takas üründeki bir kod değişikliği değil, runtime'da bir config değişikliği. Goddo en yeni görüntü modelini çıktığı gün alıyor. GoTrack en yeni cross-encoder reranker'ı alıyor. GoPeople en yeni küçük sınıflandırıcıyı alıyor. Runtime değişikliği soğuruyor.
Bizi neredeyse kıran şey
Az farkla kaçırma 1 — Ürüne-özel soyutlama sızıntısı
Altı ay sonra Goddo'yu özel-vaka yapmak için cazip olduk. Görüntü-üretim ürünün diğerlerinden o kadar farklı latency karakteristikleri vardı ki — render süreleri saniyeler, milisaniyeler değil — neredeyse bir yalnızca-Goddo orkestratör yolu ekleyecektik. Bu kod tabanını görünmez şekilde çatallardı. Code review'de yakaladık ve orkestratörü dört ürün boyunca uzun süreli async çalışmaları birinci sınıf vaka olarak işleyecek şekilde yeniden inşa ettik. Runtime'ı tekil tutmak için bir aylık refactor'a değdi.
Az farkla kaçırma 2 — 2025 yeniden yazımı
2024 sonlarında v1 runtime zorlanıyordu. Ajan kontratları yetersiz tiplenmişti. Eval harness bir tek-seferlik script yığınıydı. Hot reload bozulmuştu. 2025'in başlarında iki ay runtime'ı sıfırdan yeniden yazdım — her ajan kontratı, her orkestratör state machine, her eval. On iki hafta odaklanmış iş, yeni ürün özelliği yayımlanmadı, Okan müşteri ops'unu tek başına yürüttü. Her ürünün şimdi koştuğu v2 runtime. O mermi'yi yememiş olsaydık, dört-ürün-tek-runtime bahsi 2025 ortalarında çökmüş olurdu.
Sonraki ne
Sonraki katman ürünler-arası bellek — GoPeople'daki bir ajanın bir müşterinin Goddo'daki tercihlerini, açık onay ve sıkı kapsamla bilmesine izin vermek. Runtime, altı aylık bir entegrasyon projesi olmadan bunun yapılabilir olmasının tek nedeni. Ajanlar zaten olay log'unu paylaşıyor; şimdi bağlamı da paylaşmalarına izin veren onay katmanını inşa ediyoruz. Aynı runtime, yeni yetenek.
“Çoklu-ürün runtime'lar sihir değil. Erken ödediğin bir vergi, sonra topladığın bir indirim ve v1 mimari ölçeklenmeyi bıraktığında uçuş ortasında bir kere yeniden yazmaya razı olman gereken bir bahis. Ödedik, topladık ve yeniden yazdık. Üç yıl içinde, aldığımız en iyi mühendislik kararı.”
Bunun müşterilerimiz için anlamı
Bir GoPeople müşterisi bir WhatsApp duyurusuna düşürmek için bir Goddo görseli istediğinde, çalışıyor çünkü iki ürün de aynı runtime'da ajan. Bir GoTrack sinyali bir GoVista ekran takasını tetiklediğinde aynı nedenle çalışıyor. Dört ürün bir pazarlama paketi değil — gerçek bir mimari aile. Müşteriler her zaman görmüyor. Mühendisler ve müşteri-başarı insanları her gün görüyor.
Orkestrasyon kalıpları, eval harness veya ajan kayıt defterini nasıl yapılandırdığımız hakkında derinleşmek istersen bulmak kolay. atakanozalan.com veya [email protected].