Mastra'dan geçiş
mcpd, Mastra'nın gözlemlenebilirliğine ve kalıcı iş akışlarına ücretsiz, kendi barındırdığınız bir seçenektir. Bu sayfa nerede önde, nerede geride olduğunu ve nasıl geçileceğini anlatır.
Bu nedir
Mastra bir ajan framework'üdür: ajanlar, iş akışları, bellek, RAG ve gözlemlenebilirlik, tek bir TypeScript bağımlılığında. mcpd ise kodunuzun yanındaki bir daemon'dur: bir iş akışını adımları arasında tutar ve her adımı kaydeder; modelleri, prompt'ları ve araçları size bırakır. Ajanınızın çevresini saran bir framework değildir ve öyle olmamak üzere yazılmıştır.
Bundan sonrasının çoğuna bu fark karar verir. Mastra'nın gözlemlenebilirliği ajanınızı bilir, çünkü onun içindedir. mcpd ajanınızı, ajanınız OpenTelemetry yaydığı için bilir; bu da ajanınızın çevresindeki servisler ve hiçbir zaman TypeScript ile yazılmamış ajanlar için de çalıştığı anlamına gelir.
Önemli olan farklar
İş akışının gövdeleri, hangi dilde olursa olsun sizin sürecinizde kalır
İkisi de kalıcı iş akışları çalıştırır. Mastra'nın adımları, Mastra sürecinin içinde duran, kendi deposu üzerinden askıya alınıp devam ettirilen TypeScript fonksiyonlarıdır. mcpd'nin tanımı ise daemon'un tuttuğu veridir; adım gövdeleri sizin sürecinizin tuttuğu koddur ve altı SDK'nın konuştuğu, her dilin konuşabileceği bir HTTP protokolü üzerinden teker teker kiralanarak alınır. Daemon hiçbir zaman bir model, bir prompt ya da bir kimlik bilgisi görmez ve bir gövde, tanım değişmeden değişebilir.
Daemon'un tuttuğu şey, hayatta kalması gereken kısımdır: imleç, günlük, yeniden deneme bütçesi, zamanlayıcılar ve gelmesi bir hafta sürebilecek bir olayın beklenmesi. Bir çalıştırma, onu başlatan süreçten ve son adımına hizmet eden worker'dan uzun yaşar. Bakınız İş akışları.
OpenTelemetry'yi tek bir framework'ten dışa aktarmaz, alır
Bütün tez budur. Mastra'nın gözlemlenebilirliği bir Mastra uygulamasının içinden dışa aktarır, yani görebildiği şey o uygulamanın yazıldığı dilde yaptığı şeydir. mcpd ise collector'ın kendisidir: uygulamanızda hiçbir mcpd kodu olmadan, herhangi bir dildeki herhangi bir OpenTelemetry SDK'sından OTLP alır ve ajanın çevresindeki servisleri de ajanın kendisi kadar rahat kaydeder.
Ayrıca OTLP yayar, yani mcpd kurmanız gereken bir hattın sonunda değil, zaten sahip olduğunuz bir hattın ortasında durabilir. Bakınız İletme.
Maskeleme altı sinyalin hepsini kapsar
Mastra'nın SensitiveDataFilter bileşeni bir span işleyicisidir.
Yalnızca span'ler üzerinde çalışır, başka hiçbir şeyde çalışmaz; yani yapılı
bir loga geçirilen bir anahtar ya da bir puanın gerekçesinde veya bir geri
bildirimde alıntılanan bir sır, her exporter'a maskelenmeden ulaşır.
mcpd span'leri, logları, metrik etiketlerini, puanları, geri bildirimleri ve yön notlarını maskeler; varsayılan olarak açıktır, hiçbir şey yazılmadan ve hiçbir şey iletilmeden önce çalışır.
Anahtar eşleşmesi de tam ad yerine alt dize üzerinden olur, yani
awsSecretAccessKey ve X-API-Key,
secret ve x-api-key kurallarıyla yakalanır. Adın
tamamının eşleşmesini isteyen bir kural kümesi ikisini de kaçırır.
Sınırı açıkça söyleyelim: maskeleme, bir alanın adına bakarak eşleşir, içeriğinin biçimine bakarak değil. Bir prompt'un ortasına ya da zararsız bir anahtar altında saklanan bir adrese yapıştırılmış bir token'ı iki araç da kaldırmaz. Maskeleme, kazara sızdırdığınız şeyi azaltır. Bir güvence değildir.
mcpd'nin bu durum için eklediği şey bir filtre değil, bir puanlayıcıdır.
Yerleşik no_leaked_secret, bir çalıştırmanın yanıtını okur ve bir
kimlik bilgisinin biçimine göre eşleşir; böylece bir tamamlamaya karışan bir
anahtar en azından size bildirilir. Bakınız
Regresyon testi.
-
Decode
OTLP or native, gzip or plain
-
Sample
Decided once, at the root
-
Redact
Before anything is written
-
Price
From the configured price book
-
Store
One transaction per batch
Redaction is stage three, not a cleanup job. A value that a rule matches never reaches storage at all.
Örnekleme deterministiktir
Mastra'nın oranlı örneklemesi Math.random() çağırır. Bu yüzden
bir yük dengeleyicinin arkasındaki her kopya aynı trace hakkında farklı
karar verir ve iki servisi kesen bir çalıştırma biri tarafından saklanıp
diğeri tarafından düşürülebilir.
mcpd trace kimliğinin özetini alır, yani her kopya hiçbir eşgüdüm olmadan aynı yanıta varır ve saklanan bir trace bütün olarak saklanır. Daemon'un seçenekleri iki stratejiye ulaşır: her şeyi sakla ve bu deterministik oran. Oran ne derse desin her hatayı saklayacak olan bir kuyruk stratejisi politika türünde mevcuttur ama bu sürümde komut satırından erişilemez. Bakınız Örnekleme.
Gerisi, kısaca
| Alan | mcpd ne yapar |
|---|---|
| Dağıtım | Deposu ve arayüzü içine derlenmiş tek bir statik ikili dosya. Node yok, sidecar yok. |
| Depolama | Dizüstü için SQLite, ekip için Postgres ya da ClickHouse. Üçü de CI'da gerçek bir sunucuya karşı test edilir. |
| Arama | Saklanan her prompt ve tamamlama üzerinde tam metin. |
| Metrikler | Alımda toplanır; kesin kuantiller ve çalıştırmaya geri götüren exemplar'larla. |
| Maliyet | Alımda fiyatlanır ve saklanır. Önbellekten okunan token'lar kendi oranından hesaplanır. Bilinmeyen bir model, ücretsiz diye bildirilmek yerine fiyatsız bırakılır. |
| SDK'lar | TypeScript, Python, Rust, Go, Kotlin ve Elixir; tek bir spesifikasyondan üretilir, bu yüzden ayrışamazlar. Her biri bir iş akışı kurucusu ve bir worker taşır. |
| İş akışları | Daemon'un tuttuğu dokuz yapı: adımlar, ajan turları, uykular, olay beklemeleri, paralel dallar, foreach, sınırlı döngüler ve alt çalıştırmalar. Yeniden denemeler, etkiler ve sınırlar adım başınadır. Bir uyumluluk takımı, aynı çalıştırmayı altı dilin hepsinden sunar. |
| Değerlendirme | On üç deterministik puanlayıcı, ayrıca OpenAI biçiminde her endpoint'e karşı model notlu puanlama. Üretim çalıştırmalarından yakalanan veri kümeleri ve örneklem boyutunu bildiren deney karşılaştırması. |
| Lisans | Apache-2.0. Hesapsız kendiniz barındırın ya da mcpd.sh üzerinde ücretsiz kullanın. |
mcpd'nin geride olduğu yerler
Bunlar keşfetmenize bırakılmak yerine burada söyleniyor, çünkü yalnızca kazanılan yerleri sıralayan bir karşılaştırma reklamdır.
- Kodunuzun çevresini saran bir framework değil. Mastra size tek bir bağımlılıkta ajanlar, bellek, RAG ve bir model yönlendiricisi verir. mcpd kalıcı çalıştırmayı ve onun kaydını verir; modelleri, prompt'ları ve araçları kodunuza bırakır. Her şeyi yapan tek bir bağımlılık istiyorsanız, o tek bağımlılık Mastra'dır.
- Adıyla anılan sağlayıcı exporter'ları yok. Mastra Langfuse, LangSmith, Braintrust, Arize, Datadog ve başkaları için adıyla bütünleşmeler sunar. mcpd OTLP iletir; bu, tek bir uygulamayla bunların çoğuna ulaşır. Ama yalnızca kendi protokolünü konuşan bir hedef erişim dışındadır.
- SSO, SCIM ya da RBAC yok. Kimlik doğrulama, altı API anahtarı kapsamı ve anahtar başına bir proje listesinden ibarettir. Zaten çalıştırdığınız kimlik proxy'sinin arkasına koyun.
İşler ilerledikçe güncellenen tam döküm PARITY.md dosyasındadır.
Geçiş
Ajanınız zaten OpenTelemetry yayıyorsa bu iki ortam değişkeni demektir. mcpd, her OpenTelemetry SDK'sının konuşmayı zaten bildiği endpoint'lerde HTTP üzerinden OTLP konuşur. Trace'ler JSON ya da protobuf olabilir; loglar ve metrikler JSON olmalıdır.
mevcut bir OpenTelemetry kurulumunu mcpd'ye yöneltin
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
export OTEL_EXPORTER_OTLP_PROTOCOL=http/json Protokol satırı önemlidir. 4317 portu alışılageldiği üzere gRPC'dir ve mcpd orada HTTP konuşur; yani gRPC varsayılanında bırakılmış bir SDK doğru porta bağlanır ve başarısız olur. OpenTelemetry sayfası bunu ve geri kalan ayarları anlatır.
İkisini iki hafta boyunca birlikte çalıştırın. mcpd sakladığı span'leri daha önce kullandığınız yere iletir; böylece ikisini, geri alamayacağınız bir geçiş üzerinden değil aynı trace'ler üzerinden karşılaştırabilirsiniz. Yalnızca span'leri iletir: loglar, metrikler, puanlar, geri bildirimler ve yön notları mcpd'de kalır.
karar verene kadar eski hedefi koruyun
mcpd serve --forward-endpoint https://your-existing-collector Ajanınız henüz OpenTelemetry yaymıyorsa Hızlı başlangıç ile başlayın ya da kenar çubuğundaki Ölçümleme altından dilinizi seçin.
Bu karşılaştırma nasıl yapıldı
Bu sayfadaki Mastra ifadeleri, Ağustos 2026'da kaynağının okunmasına dayanır; belgelerine ya da bir kıyaslama çalıştırmasına değil. Burada hiçbir başarım sayısı yok, çünkü arkasında duracağımız hiçbir ölçüm yapmadık.
Mastra etkin biçimde geliştiriliyor ve bunların herhangi biri doğru olmaktan çıkabilir. Güncelliğini yitirmiş bir şey bulursanız bu sayfada bir hata var demektir: bir issue açın, düzeltilecektir.
Sırada
- Mevcut bir collector'ı mcpd'ye yöneltmek: OpenTelemetry.
- Bir şey saklanmadan önce neler kaldırılır: Maskeleme ve saklama.
- Bir ekip için çalıştırmak: Docker ve Kubernetes.