סוכן המובייל (Mobile Agent)
סוכן המובייל הוא רכיב מבוסס בינה מלאכותית (AI) בתשתית Q-ACE, המבצע אוטומציה של אינטראקציה עם מכשירי אנדרואיד (ו-iOS) באמצעות Appium. הסוכן מפרש משימות בשפה טבעית, צופה בהיררכיית ה-UI של המכשיר בזמן אמת ומבצע פעולות — לחיצות, הקלדה, החלקות — בזמן אמת.
🚀 יכולות מרכזיות
- ביצוע משימות בשפה טבעית: תנו הוראות כמו "פתח את אפליקציית ההגדרות והפעל מצב כהה" או "הפעל את האפליקציה, התחבר כ-'testuser', ובדוק את כותרת מסך הבית."
- צפייה ב-UI בזמן אמת: שואב ומנתח באופן אוטומטי את היררכיית ה-XML של ה-UI במכשיר בכל שלב כדי להבין את מצב המסך הנוכחי.
- לולאת פעולה חכמה: משתמש במודל שפה (LLM) כדי להחליט על הפעולה הבאה הטובה ביותר (לחיצה, הקלדה, החלקה) בהתבסס על אלמנטים גלויים של ה-UI.
- לוג ביצוע בהזרמה (Streaming): כל השלבים מוזרמים בזמן אמת ללוח הבקרה (Console) באמצעות SSE (Server-Sent Events).
- מעקב היסטוריה: כל הרצה נשמרת במסד הנתונים — כולל הרצות שנכשלו או בוטלו.
🛠 ️ טכנולוגיות
- ספריית אוטומציה:
Appium-Python-Client==1.3.0 - WebDriver:
selenium==3.141.0(בשימוש על ידי לקוח Appium) - שרת: שרת Appium (חייב לרוץ בנפרד בכתובת
http://localhost:4723/wd/hub) - ממשק: הזרמת FastAPI SSE ← פרונטנד Alpine.js
- מסד נתונים: SQLite (
data/auth.db) לשמירת היסטוריה
⚙ ️ דרישות מוקדמות והתקנה
1. התקנת Appium
npm install -g appium
2. התקנת הדרייבר של אנדרואיד
appium driver install uiautomator2
3. הפעלת שרת Appium
appium --base-path /wd/hub
השרת אמור לרוץ בכתובת http://localhost:4723/wd/hub.
4. חיבור מכשיר או הפעלת אמולטור
- חברו מכשיר אנדרואיד פיזי עם USB Debugging מופעל, או
- הפעילו מכשיר אנדרואיד וירטואלי (AVD) באמצעות Android Studio.
🔧 הגדרות (טאב Appium Config)
| שדה | תיאור | דוגמה |
|---|---|---|
| Appium Server URL | כתובת ה-URL של שרת ה-Appium הפעיל | http://localhost:4723 |
| Platform Name | פלטפורמת היעד | Android או iOS |
| Device UDID | מזהה המכשיר (אופציונלי למכשיר בודד) | emulator-5554 |
| App Package | שם חבילת האפליקציה לאנדרואיד | com.example.myapp |
| App Activity | ה-Activity הראשי להפעלה | .MainActivity |
כל ההגדרות נשמרות אוטומטית ב-localStorage בין ביקורים.
🤖 מודלי שפה (LLM) נתמכים
סוכן המובייל משתמש בלקוח ה-LLM המשותף של Q-ACE ותומך בכל ספק שהוגדר:
- Google Gemini (מומלץ:
gemini-2.5-flash) - Ollama (מקומי, למשל:
llama3,gemma3)
📊 היסטוריה ואנליטיקה (טאב Results)
כל הרצה (הצלחה, כישלון או ביטול) נשמרת אוטומטית ב-data/auth.db:
- תצוגת דשבורד: כרטיסיות KPI (סה"כ הרצות, אחוז הצלחה, כישלונות) וגרף תדירות הרצות ל-7 ימים.
- תצוגת פרטי הרצה: לוגים של הקונסולה שלב אחר שלב, התוצאה הסופית וחותמת זמן.
- אייקוני סטטוס: ✓ ירוק להצלחה, ✗ אדום לכישלונות וביטולים.
🚀 מודל הביצוע
הסוכן רץ כמשימת הזרמה (streaming) אסינכרונית דרך /api/mobile-agent/run:
- מתחבר לשרת ה-Appium ומפעיל את אפליקציית היעד.
- שואב את היררכיית ה-XML של ה-UI ומנקה תווים לא תקינים.
- שולח את ההיררכיה המסוננת + משימת המשתמש ל-LLM שהוגדר.
- מנתח את תשובת ה-JSON מה-LLM (לחיצה, הקלדה, החלקה, סיום) ומבצע את הפעולה.
- חוזר על שלבים 2–4 עד שנשלח סימן "סיום" (done) או שמתקבל אות הפסקה/שגיאה.
- שומר את רשומת הביצוע המלאה (לוגים + תוצאה) במסד נתונים של ההיסטוריה.
🛠 ️ מגבלות ידועות
- דורש לקוח Appium בגרסה
1.3.0— גרסאות חדשות יותר משתמשות ב-API שונה (AppiumOptions). - אפליקציות מסוימות עם היררכיות UI דינמיות או לא סטנדרטיות עלולות לגרום לשגיאות ניתוח XML; הסוכן מנקה שגיאות אלו אוטומטית.
- תמיכה ב-iOS דורשת דרייבר
XCUITestשל Appium וכלי פיתוח של macOS.
נבנה ב-❤️ על ידי עתיד האוטומציה