İki Yapay Zeka Görevim Aynı Fare İçin Birbiriyle Çatışıyordu
Paralel ajan demoları harika görünüyor. Ancak iki görev aynı fareyi kullanmaya çalıştığı anda başarısız oluyorlar.
Bir görev bir siteye giriş yapar. Bir diğeri tarayıcıyı açar. Üçüncü bir görev ise durum güncellemesi ister. Aniden sistem yanlış yere tıklar veya yanlış işlemi iptal eder. Bu bir mantık hatası değildir. Bu bir kaynak çatışmasıdır.
Bunu, masaüstü otomasyonu için yerel kontrol düzlemim olan CliGate'i inşa ederken öğrendim.
Paralellik kod için işe yarar. Bir çalışma zamanı oturumu devam ederken bir hava durumu sorgusu çalıştırabilirsiniz. Arka plandaki bir özetleme işlemi hiçbir şeyi engellemek zorunda değildir.
Masaüstü ise farklıdır. Bir fiziksel klavyeniz, bir fareniz ve bir ekranınız vardır. Eğer iki ajan bu yüzeye sahip olmaya çalışırsa, birbirlerini sabote ederler.
İlk içgüdüm, yeni bir görev geldiğinde eski görevi iptal etmekti. Bu yanlıştı. "Ne kadar ilerledi?" diye soran bir kullanıcı, bir giriş akışını sonlandırmamalıdır.
Eşzamanlılığı bir istem problemi olarak görmeyi bıraktım. Bu bir kaynak problemidir.
Üç basit kural uyguladım:
- Bağımsız görevler paralel çalışır.
- Masaüstüne ihtiyaç duyan görevler sıraya girmelidir.
- İptal işlemi yalnızca kullanıcı talep ettiğinde gerçekleşir.
CliGate'de masaüstü girişi bir kiralama (lease) gibi çalışır. Fareyi kullanan görev, masaüstü sahibi olur. Diğer görevler beklemek zorundadır.
Yeni mantık şu akışı izler:
- Yeni bir görev gelir.
- Masaüstüne ihtiyacı var mı?
- Hayırsa, paralel çalıştır.
- Evetse ve masaüstü boşsa, onu al.
- Evetse ve masaüstü meşgulse, sıraya al.
- Yalnızca kullanıcı dur demezse iptal etme.
Yeniden denemeler genellikle masaüstü otomasyonunu daha kötü hale getirir. Eğer ikinci bir görev fareyi kapmaya çalışmaya devam ederse, bu müdahaleyi artırır. Daha sert bir şekilde yeniden denemek yerine, asistan şunu söylemelidir: "Masaüstü meşgul. Sıradayım. Boşaldığında başlayacağım."
Bu, bir başarısızlığı öngörülebilir bir davranışa dönüştürür.
Ayrıca katı bir kural ekledim: bir ajan kendi aktif çalışmasını iptal edemez. Bu, ajanın panikle kendi kapatma düğmesine tıklamasını engeller.
Kötü yapay zeka davranışları genellikle çok zeki olmaya çalışmaktan kaynaklanır. Kullanıcıların çok daha basit bir şeye ihtiyacı vardır:
- Çakışmayan görevleri çalıştırın.
- Fiziksel kaynaklar üzerinde çakışan görevleri sıraya alın.
- Durum sorularını durum günlüklerinden yanıtlayın.
- Kullanıcı dur dediğinde durun.
Eğer masaüstüne dokunan yapay zeka araçları geliştiriyorsanız, şunu unutmayın: paralel görevler sorun değil, ancak fiziksel kaynakların net bir sahipliğe ihtiyacı vardır.
Kaynak: https://dev.to/codekingai/my-two-ai-tasks-kept-fighting-for-the-same-mouse-1hij