OpenRing ile telefonda çalışan ajanın sınırı nerede?

OpenRing ile telefonda çalışan ajanın sınırı nerede?

Bir ekip sahadan gelen servis taleplerini Android uygulamasından izliyor. Her sabah açık kayıtların durumunu kontrol edip eksik fotoğrafı veya müşteri onayını belirlemek istiyorlar. Uygulamanın dışa açık bir arayüzü yok. İnsan çalışan ekrana bakıp alanları tek tek açabiliyor; aynı işlem tekrarlanınca otomasyon fikri doğuyor. Buradaki zorluk ekrana dokunmak değil. Bir kaydı okumak ile müşteriye yanıt göndermek arasında kim karar verecek?

OpenRing, Android üzerinde çalışan açık kaynak bir otomasyon uygulaması. Android AccessibilityService aracılığıyla ekranın yapılandırılmış görünümünü okuyup dokunma, kaydırma ve metin girişi gibi eylemler yapabiliyor. Cihazda JSON iş akışları, zamanlanmış betikler ve QuickJS tabanlı beceriler çalıştırabiliyor. Sohbet tabanlı ajan bölümünde Gemini araç çağrılarıyla ekrandaki veriyi yorumlayıp bir sonraki adımı seçme imkânı da var. Aynı isimle karıştırılabilecek OpenRig ise kodlama ajanlarının terminal oturumlarını takım olarak düzenleyen başka bir proje. OpenRing’in sınırı masaüstü kod deposundan çok telefon ekranında başlıyor.

Ekran ağacı veri verir, yetki vermez

Bir servis kaydında müşteri adı, arıza notu, telefon numarası ve işlem düğmeleri yan yana durabilir. AccessibilityService görünüm ağacından bunların bir kısmını yapılandırılmış biçimde alır. Görünüm ağacı eksikse ekranı betimleme gibi görsel araçlar devreye girebilir. Böylece otomasyon, sabit koordinatlara basan basit bir makrodan daha esnek olur. Ancak ekranda bir düğmenin görünmesi, ona basmanın uygun olduğu anlamına gelmez. “Talebi kapat” düğmesi de “notları oku” düğmesi kadar kolay erişilebilir olabilir.

Bu nedenle görevi ekran hareketleriyle değil, iş yetkisiyle tanımlamak gerekir. Örneğin sabah kontrolü açık talepleri okuyup eksik belge listesini hazırlayabilir. Müşteriye mesaj gönderme, kaydı kapatma veya garanti durumunu değiştirme ayrı eylemlerdir. Bunlara kimin onay vereceği baştan belirlenmeli. Teknik olarak mümkün olan hareket ile görev kapsamında izin verilen hareket aynı kümeye konursa, iyi niyetli bir özetleme işi sessizce işlem yapma yetkisine dönüşür.

OpenRing’in yerel çalışması da bu ayrımı ortadan kaldırmaz. Depoda telefon üzerinde betiklerin, takvimin ve becerilerin işlediği, harici bir OpenRing arka ucunun gerekmediği anlatılıyor. Bu, bütün verinin mutlaka cihazda kaldığı anlamına gelmez. Gemini ile bulut akıl yürütmesi seçilirse ekran bağlamının bir kısmı dış servise gidebilir. Ayrıca telefondaki asıl iş uygulamasının kendi sunucusuyla iletişimi sürer. Hangi alanların modele gönderildiği ve kayıtların nerede tutulduğu, “yerel kurulum” etiketinden ayrıca incelenmeli.

Bir sabah kontrolünü nasıl daraltırız?

Varsayalım servis koordinatörü on açık talebi gözden geçirmek istiyor. İlk sürümde ajan yalnızca uygulamayı açsın, her talebin kimliğini ve bekleme nedenini çıkarsın, sonra koordinatöre bir taslak liste sunsun. Telefon müşteriye mesaj göndermesin, hiçbir talebi kapatmasın. Bu küçük sınır, aracın değerini görmek için yeterli: Ekranda tekrarlanan gezinme azalır, ama kayıtların yorumlanması hâlâ sorumlu kişinin önüne gelir.

İki örnek kayıt özellikle işe yarar. Birinde eksik fotoğraf gerçekten görünür; diğerinde fotoğraf vardır ama ekran geç yüklenir. Ajanın ikinci kaydı “eksik” diye işaretlemesi bir model hatası mı, uygulama yükleme sorunu mu, yoksa erişilebilirlik ağacının eksikliği mi? Kaydı kapatmadan önce bu ayrımı yapmak mümkündür; otomatik müşteri mesajı gönderildikten sonra düzeltmek daha maliyetlidir. Bu yüzden denemede sadece doğru sonuçları değil, belirsiz ekranları nasıl işaretlediğini de görmek gerekir.

İş akışı tasarlanırken kayıt kimliğini, okunma saatini ve gözlenen alanları birlikte tutmak yararlı. “Üç kayıt eksik” özeti tek başına yeniden kontrol edilemez. Hangi kayıt hangi ekran durumunda okundu? Yüklenme tamamlandı mı? Aynı kaydın ikinci okumada sonucu değişti mi? Bu bilgiler olmadan koordinatör, ajanın bulgusunu uygulamadaki güncel durumdan ayıramaz. Betik adımlarının başarıyla tamamlanması da iş kaydının doğrulandığını tek başına göstermez.

Zamanlama, izin ve kesinti

OpenRing zamanlama için Android WorkManager kullanıyor; proje belgelerinde sürekli çalışma seçeneği ve çalışmanın durumunu gösteren bildirimler de anlatılıyor. Ancak cihazın o anda çevrimdışı olması, oturumun düşmesi veya iş uygulamasının arayüzünü değiştirmesi mümkün. Zamanlayıcının tetiklenmesi ile on talebin okunması farklı olaylar. Günlük raporda ikisini ayrı tutmak gerekir: işlem başladı mı, hangi kayıtlar gerçekten okundu, hangileri hata verdi?

Ayrıca Accessibility izni geniş bir yetkidir. Android ayarlarından kullanıcı tarafından açılması gerekir. Telefon tek bir iş uygulamasına ayrılmamışsa başka uygulamaların ekranlarına erişim olasılığı da değerlendirilmelidir. Deneme için ayrı iş cihazı, sınırlı uygulama hesabı ve gerekmeyen bildirim veya ses izinlerini kapalı tutmak daha anlaşılır bir başlangıç sağlar. Bir ekran otomasyonunun uygulama içi rol denetiminin yerine geçmediği unutulmamalı. Yetkiyi hem cihazda hem iş uygulamasında incelemek gerekir.

Depodaki belgelere göre bulut modelinin araç döngüsü Gemini anahtarıyla kullanılabiliyor; indirilen yerel GGUF modelleri için açıklanan kapsam ise sohbet ve akışlı metin yanıtı. Bu iki çalışma biçimini aynı otomasyon yeteneğiymiş gibi sunmamak önemli. Hassas kayıtların dışarı çıkmaması isteniyorsa “yerel model var” demek yerine, seçilen iş akışındaki hangi araçların gerçekten yerelde çalıştığı test edilmeli. Gerçek müşteri verisiyle başlamadan önce örnek kayıtlarla ağ davranışı ve uygulama izinleri gözlenebilir.

Üretime geçmeden önce sorulacak soru

Küçük denemenin sonunda üç ayrı sonuç kaydı tutmak gerekir. Birincisi teknik sonuç: uygulama açıldı mı, ekranlar okunabildi mi, betik nerede takıldı? İkincisi iş sonucu: eksik belge listesi gerçek kayıtlara göre doğru mu, yanlış pozitifler var mı? Üçüncüsü yetki sonucu: telefon veya model, tanımlı kapsam dışında veri okudu mu ya da eylem yaptı mı? Bu üçünden yalnızca ilki başarılıysa “ajan işi bitirdi” denemez.

İnsan incelemesi gerektiren noktalar da görünür olmalı. Ekran ağacı boşsa yeniden deneme sayısı sınırlanabilir; müşteri kaydı belirsizse taslak “kontrol gerekli” diye bırakılabilir. Mesaj gönderme gibi geri alınması zor eylemler ayrı onaya bağlanabilir. Böylece ajanın her kararı doğru vereceği varsayılmadan, tekrarlanan ekran işi azaltılır. Daha sonra kapsam büyütülürse aynı sınırlar yeni iş akışına açıkça taşınır; önceki denemenin izinleri otomatik miras alınmaz.

OpenRing telefon ekranındaki işi çalıştırmak için somut bir araç katmanı sunuyor; hangi ajanın hangi görev ve politika altında çalışacağını kurum ayrıca tarif etmeli. Bu ikinci katman için agentic-organization, AI ajanlarını organizasyon şemasında birinci sınıf üye olarak yönetmeye yönelik self-hosted, dosya tabanlı bir platform.