ActionRail, ajanın doğru biçimde yaptığı yanlış işlemi durdurabiliyor mu?
Bir iade komutu yetkili ve kurallı görünebilir, fakat yanlış müşteriye ait olabilir. ActionRail, aracın argümanlarını işlem anında canlı kayıtlarla karşılaştıran açık kaynak bir kapı kuruyor.
1 okunma4 dk okumaToolJet ActionRail GitHub deposu

Bir yapay zekâ ajanı iade yapmaya yetkili olabilir. Çağırdığı araç doğru adla, doğru veri tipleriyle ve belirlenen tutar sınırında olabilir. Yine de sipariş başka müşteriye aitse işlem yanlıştır. GitHub'ın az görünür projelerinden ActionRail, izin ile doğruluk arasındaki bu boşluğu kapatmayı hedefleyen açık kaynak bir çalışma zamanı katmanı.
ToolJet tarafından geliştirilen proje, ajanın önemli bir aracı çağırmasını gerçek fonksiyon çalışmadan önce kesiyor. Argümanları o anda SQLite, PostgreSQL, MySQL/MariaDB, HTTP veya salt okunur MCP kaynağı gibi canlı kayıt sistemleriyle karşılaştırıyor. Sonuç üç yoldan biri: izin ver, insan incelemesine tut veya engelle. Temel soru “bu ajan bunu yapabilir mi?” değil, “bu sipariş, hesap ve tutar şu an gerçekten doğru mu?”
ActionRail 1 Eylül 2026'da hâlâ herkese açık beta olarak tanımlanıyor. README, 1.0 öncesinde arayüzlerin değişebileceği uyarısını taşıyor. Her Python uygulamasının kullanabildiği çerçeveden bağımsız ActionRuntime yolu var; LangGraph için araçları otomatik bulup saran bir bağdaştırıcı da sunuluyor.
Neden izin listesi yetmiyor?
Şema denetimi çağrının biçimini kontrol eder: order_id metin mi, amount sayı mı? Yetkilendirme, ajanın iade aracına erişip erişemeyeceğini söyler. Fakat ikisi de siparişin oturum açan müşteriye ait olup olmadığını, daha önce iade edilip edilmediğini veya bakiyenin tutara yetip yetmediğini kendiliğinden canlı sistemden sormaz.
ActionRail bu değerleri işlem sınırında “temellendiriyor”. Örneğin müşteri bağlamındaki kimlikle sipariş kaydındaki kimlik eşleşmiyorsa blok; tutar belirli eşiği aşıyorsa insan incelemesi; bütün koşullar sağlanıyorsa izin kararı üretilebilir. Araç ancak izin kararından sonra çalıştırılıyor.
Somut kullanım örnekleri:
- Destek ajanının yalnız oturum açmış müşteriye ait, teslim edilmiş ve daha önce iade edilmemiş siparişe para iadesi yapması.
- Finans ajanının aktarım hesabının gerçekten ilgili müşteriye ait olduğunu ve bakiyenin tutarı karşıladığını doğrulaması.
- Operasyon ajanının stok kaydındaki miktardan daha fazla sevkiyat başlatmasını engellemesi.
- İnsan onayı gerektiren yüksek tutarlı işlemleri ayrı kuyruğa alması.
Model anahtarı olmadan denenebiliyor
İlk deneme için gerçek model bağlamak gerekmiyor. Projenin deterministik LangGraph demosu yerel SQLite kaynağı oluşturuyor, çapraz müşteriye ait bir iade önerisini gönderiyor, gerçek aracın çalışmadığını ve gizlenmiş engel kaydının Activity ekranına düştüğünü gösteriyor.
Temel kurulum şu iki paketi kullanıyor:
python -m pip install "actionrail[agents]" actionrail-console actionrail-console --no-open
İkinci terminalde actionrail-quickstart çalıştırılıyor. Model kullanılan deneyde Anthropic anahtarı ve hesapta erişilebilen model ayrıca gerekiyor; ancak güvenlik sınırını ilk kez değerlendirmek için deterministik yol daha tekrarlanabilir.
Okuyucu için örnek kural çalışması:
“Demo sipariş tablosunda yalnız authenticated_customer_id ile siparişin customer_id alanı eşleşirse, durum delivered ise ve refunded alanı false ise iadeye izin ver. Tutar 200 birimi aşarsa otomatik çalıştırma; insan incelemesine tut. Eşleşmeyen müşteri veya ikinci iade denemesini engelle. İzin, tut ve engelle örneklerinin üçünü de test kaydıyla göster.”
Bu örnek, kuralı doğal dilde tarif eder; üretimde karşılığı sürümlenen ActionRail kuralı, güvenilir çağıran bağlamı ve test vakaları olmalıdır. Modelin kendi oluşturduğu müşteri kimliğini “güvenilir bağlam” saymak güvenlik açığı yaratır.
Projenin ölçüm iddiası nasıl okunmalı?
Geliştiriciler, dört sağlayıcıdan sekiz modeli değer zehirleme saldırılarıyla denediklerini ve korumasız her modelin en az bir yanlış değeri çalıştırdığını bildiriyor. ActionRail açıkken 480 manipüle edilmiş eylemin hiçbirinin yürütülmediğini, 480 meşru benzer isteğin de yanlışlıkla engellenmediğini söylüyor.
Bu rakamlar projenin kendi karşılaştırmasına ait; bağımsız bir laboratuvar sonucu gibi sunulmamalı. Yine de tekrar üretilebilir deterministik demo ve kural testlerinin depoda bulunması, ekiplerin aynı sınırı kendi verileriyle ölçmesine imkân veriyor. Güvenli karar, pazarlama sayısını kabul etmek değil, üretimdeki gerçek araçlar ve hatalı benzer isteklerle kendi regresyon kümenizi oluşturmaktır.
Gizlilik, hata hâli ve sınırlar
README'ye göre kaynak sorguları ve kimlik bilgileri müşteri ortamında kalıyor. Modelin gördüğü sonuç, dış Activity kaydı ve yerel ayrıntılı karar nedeni için ayrı, değerleri açığa çıkarmayan temsiller kullanılıyor. Anonim kullanım telemetrisi ACTIONRAIL_TELEMETRY_DISABLED=1, DO_NOT_TRACK=1 veya CI=1 ile kapatılabiliyor; üretim öncesi olay şemasını ayrıca okumak gerekir.
Canlı kayıt sistemi ulaşılamadığında ne olacağı özellikle önemlidir. Para transferi gibi geri alınması zor işlemde “kaynak yoksa izin ver” yaklaşımı güvenli değildir. Ekip; kesinti, zaman aşımı, insan incelemesi, geri alma ve denetim politikalarını uygulama ihtiyacına göre açıkça seçmeli. Beta arayüzleri değişebilir ve LangGraph dışındaki çerçeveler bugün otomatik bağdaştırıcı yerine doğrudan Python sınırı gerektiriyor.
Kod Apache 2.0 lisansında. Yerel deterministik demo model ücreti gerektirmiyor; gerçek model, veritabanı ve işletim altyapısı kendi maliyetini getiriyor. ActionRail, sıradan sohbet botundan çok gerçek işlem yapan müşteri hizmetleri, finans ve operasyon ajanlarını geliştiren teknik ekipler için anlamlı.
Okuyucu bugün tek bir zararsız iade örneğinde izin, insan incelemesi ve engel kararlarını yan yana çalıştırabilir. Ajanların yalnız ne söylediğini değil, neyi gerçekten çalıştırdığını izlemek için Mülk Rehberi Gazetesi'ni takip edin.
