Engineering

Sidecar Filosu ve RLM: Yanıtlamadan Önce Kanıt Toplamak

Gerçekten koda ulaşana kadar döngü içinde arama araçlarını çağıran bir getirim modeli ve sunucuya hangi donanımın uyanık olduğunu bildiren bir filo aracısı. İki parça, tek yanıt.

Alper Üzmezler· Sep 17, 2026 · 11 dk okuma

Getirim destekli sistemlerde kimsenin demoya koymadığı bir hata biçimi vardır. Bir soru sorarsınız, sistem onu gömer, en iyi on parçayı çeker, bunları bir isteme tıkıştırır ve model hangi on parça en yüksek puanı almışsa onların üzerine kurulu akıcı bir yanıt yazar.

Eğer yanıt on birinci bir parçaya ihtiyaç duyuyorsa, bunu öğrenemezsiniz. Her iki durumda da aynı kendinden emin paragrafı alırsınız.

Çözüm daha iyi bir gömme modeli değildir. Çözüm, bir şeyin yeniden bakmasına izin vermektir — RLM'in yaptığı da tam olarak budur.

Net biçimde ayrılmış iki bileşen

Sidecar bir filo aracısıdır. Hesaplama gücünün bulunduğu yerde çalışır, neye sahip olduğunu raporlar ve çıkarım isteklerine hizmet eder. Fantom MCP Server, bir sidecar'ın rapor verdiği ana düğümlerden biri olarak kaydolur.

RLM ise bir getirim dil modelidir — görevi düzyazı yazmak değil, toplamak olan özel bir model. Yanıtlamak için gereken tam koda sahip olana dek yinelemeli olarak kod arama araçlarını çağırır, ardından topladığı kanıtları kısa bir taslakla birlikte geri verir. Ayrı bir sentez adımı bunu kaynak gösterilmiş nihai yanıta dönüştürür.

Bu ayrım önemlidir. Toplayıcı model araç kullanımı için optimize edilmiştir, küçük ve hızlı olabilir. Sentez modeli ise yazmak için optimize edilmiştir. Tek bir modelden her ikisini de yapmasını istemek, ya kötü araştırılmış ya da kötü yazılmış bir yanıta giden yoldur.

Filo nasıl rapor verir

Bağlantıyı sunucu değil, sidecar başlatır — hesaplama gücü gelip giden iş istasyonlarında yaşadığında doğru yön budur.

Fantom MCP ana düğüm olarak çalışır kayıt defteri + anlık görüntü atomik, çökmeye dayanıklı Sidecar · GPU sunucusu code-embedding · embedding yerel modeller, gerçek VRAM Sidecar · RLM sunucusu rlm · vLLM, OpenAI uyumlu bağlam penceresi /v1/models'tan okunur Sanal konteyner <PCName>-OR-<Role> sunum kapasitesi · GPU yok, VRAM yok register · heartbeat · result registered · command · config

Kablo protokolü bilinçli olarak küçük tutulmuştur. Bir sidecar WebSocket açar ve adresi, ana bilgisayar adı ve konteynerleriyle birlikte register gönderir. Ardından konteynerleri, aktif istek sayılarını ve bir durum bloğunu taşıyan heartbeat çerçeveleri gönderir. Ana düğüm registered yanıtını verir ve geri command ile config çerçeveleri gönderebilir. WebSocket kullanılamıyorsa, aynı alışveriş heartbeat, poll ve result için HTTP uç noktaları üzerinden çalışır.

Fantom MCP şu anda bu kanal üzerinden iş komutları göndermiyor — asıl çıkarım çağrıları HTTP üzerinden gidiyor. Yaptığı şey, her heartbeat'i yetenek verisi için taramak; böylece yönlendirme katmanı şu anda hangi rollerin gerçekten sunulduğunu her zaman bilir.

Zor yoldan öğrenildiği için adını anmaya değer bir ayrıntı: bu kayıt defteri her heartbeat'te, oku-değiştir-yaz biçiminde, aynı zamanda arama ayarlarını da tutan bir yapılandırma dosyasına yeniden yazılır. Daha önceki bir sürüm, yarım kalmış bir okumada boş bir nesne döndürüyordu; yani tek bir bozuk okuma yalnızca sidecar listesini kalıcı kılıp geri kalan her şeyi — yedek dahil — silebiliyordu. Artık okumalar kardeş bir yedekten kurtarılıyor ve yazmalar atomik. Filo kodu, yapılandırmaya herkesin beklediğinden çok daha sık dokunuyor.

Toplama döngüsü

Bir soru geldiğinde gerçekte olan şey şudur.

Planla neye ihtiyacım var? semanticCodeSearch araç çağrısı getCallers araç çağrısı searchFantomCode araç çağrısı paralel çalışır Kanıtları birleştir tekilleştir · bütçele Kaynaklı yanıt sentez modeli henüz yeterli değil — tekrar dene Ürün, döngünün kendisidir

Model bir plan kurar, araç çağrıları yapar ve sonuçlar sınırlı eşzamanlılıkla toplanır. Kanıt blokları bölünür, birleştirilir ve bağlam penceresine karşı bütçelenir — bu pencere sabit kodlanmak yerine sunum uç noktasından dinamik olarak okunur, çünkü aynı döngü farklı sınırlara sahip farklı modellerle çalışır.

Gelen şey yeterli değilse, tekrar gider. Bunun tek seferlik getirimden tüm farkı budur: sisteme, elindekinin yetmediğini fark etme izni verilmiştir.

Yakın zamandaki bir optimizasyon, gerçek maliyetin nerede olduğunu iyi gösteriyor. Her genişletme adımı için yeniden gömme yapmak yerine, sorgu bir kez gömülüyor ve arama kardeş parçalara paralel olarak genişliyor; o genişletme geçişinde yeniden sıralayıcı atlanıyor. "Yeniden bakmanın" pahalı kısmı hiçbir zaman bakmak değildi — aynı soruyu gereksiz yere yeniden kodlamaktı.

Hata, birinci sınıf bir yoldur

Bu zincirdeki her uç nokta, uykuda, yeniden başlatılıyor ya da meşgul olabilecek bir makineye aittir. Bu yüzden RLM yolu boyunca kural açıktır: herhangi bir uç nokta hatası null döndürür ve çağıran taraf geri düşer. Asla istisna fırlatmaz.

Kulağa iddiasız geliyor. Pratikte ise bu özelliği gerçek bir filoda kullanılabilir kılan şey tam olarak budur; burada "RLM sunucusu çevrimdışı" durumu yanıtı zayıflatmalıdır, bir kontrol mühendisinin editöründe yığın izi üretmemelidir. Varsayılan geri düşme modu yalnızca-yereldir ve toplama adımı, getirimin bir bağımlılığı değil, ona bir eklentidir.

Donanımsız kapasite

Son parça bunu buluta bağlar. Bir sidecar, bir rolü yerel modeli yerine OpenRouter'a yönlendirebilir ve Fantom MCP bu tür her eşleşmeyi bir sanal konteyner olarak ele alır — <PCName>-OR-<Role> kalıbıyla adlandırılan, arkasında GPU ve VRAM olmadan gerçek sunum kapasitesini temsil eden ayrı bir mantıksal sağlayıcı.

Gömme işleminin yerel GPU'lara ve buluta aynı anda dağılması bu şekilde olur; makineleri başka işlerle meşgul bir filoda yeniden sıralamanın bir arka uca kavuşması da böyle sağlanır.

Bu düzenlemenin iki özelliği açıkça belirtilmeye değer:

  • Keşif heartbeat üzerinden değil, HTTP üzerinden yapılır. Heartbeat, sanal konteyner verisini içermeyen, kırpılmış bir anlık görüntü taşır. Bunu heartbeat'ten çıkarmaya çalışan bir sistem sonsuza dek sessizce hiçbir şey bulmaz ve çalışıyormuş gibi görünür.
  • API anahtarı Fantom MCP'ye asla dokunmaz. Anahtarı sidecar tutar. Fantom yalnızca bir sağlayıcı ve bir model adı belirtir. Keşif yolundaki hiçbir şey bir anahtarı okumaz, saklamaz, günlüklemez veya taşımaz.

Bu sağlayıcıların sonrasında nasıl seçildiği, sınırlandığı ve bütçelendiği bir sonraki yazının konusudur.


Fantom MCP Server, github.com/Project-SandStar/FantomMcpServer adresinde kaynağı görüntülenebilir biçimde sunulmaktadır.