אנו מפתחים עוזרי בינה מלאכותית לניווט באפליקציות מובייל. אפליקציות מובייל מורכבות — בנקים, מערכות ERP, פלטפורמות רפואיות — מאבדות משתמשים לא בגלל חוסר בפיצ'רים, אלא כי קשה מדי למצוא את הפיצ'ר הנכון. התשובה המסורתית — סיורי הדרכה ודפי עזרה — עובדת גרוע: משתמשים עוברים על הסיור בכניסה הראשונה ושוכחים אותו יום לאחר מכן. AI Copilot לניווט הוא עוזר שמבין בקשות בשפה טבעית ומדריך את המשתמש לאן שהוא צריך ללכת. אנו מבטיחים שמשתמשים לא ילכו לאיבוד בתפריט אפילו באפליקציה עם 100+ מסכים.
מה ה-Copilot לניווט יכול לעשות
לא 'צ'אט', לא בוט FAQ. שלושה תרחישים ספציפיים:
-
ניווט באמצעות Deep Link. המשתמש כותב 'אני רוצה להעביר כסף לכרטיס' — העוזר פותח את המסך הנכון. טכנית: מודל NLU מסווג את הכוונה, ממפה אותה ל-deep link, והאפליקציה מבצעת ניווט פרוגרמטי.
-
רמזים קונטקסטואליים. המשתמש מתעכב על מסך במשך שלוש דקות ללא ביצוע פעולה — ה-Copilot מציע עזרה. לא 'צריך עזרה?' כללי, אלא קונטקסטואלי: 'אתה על מסך התשלום. תרצה שאסביר את ההבדל בין העברה לפי מספר טלפון לבין העברה לפי פרטי בנק?'
-
ביצוע משימה מודרך. משימות מרובות שלבים: 'הגשת בקשה למשכנתא' — 12 שלבים הפרוסים על פני שלושה סעיפים. ה-Copilot מדריך שלב אחר שלב, עוקב אחר ההתקדמות ומסביר כל מסך.
כיצד ה-AI-Copilot מבין את כוונת המשתמש
החלק המאתגר ביותר הוא מיפוי בקשת המשתמש לפעולה ספציפית באפליקציה. שתי גישות:
-
מבוסס Classifier. הגדרת קבוצת כוונות (50–200 לאפליקציה טיפוסית), אימון classifier. מהיר, צפוי, זול בזמן ריצה. נכשל על ניסוחים לא סטנדרטיים.
-
LLM + קריאת פונקציות. תיאור כל המסכים והפעולות כקבוצת פונקציות. ה-LLM בוחר את הפונקציה המתאימה לפי בקשת המשתמש:
// iOS — описание навигационных функций для LLM
let navigationTools: [ChatCompletionTool] = [
ChatCompletionTool(
type: .function,
function: ChatCompletionToolFunction(
name: "navigate_to_screen",
description: "Открывает экран приложения по его идентификатору",
parameters: NavigationParameters.schema // {screen_id: string, params: object}
)
),
ChatCompletionTool(
type: .function,
function: ChatCompletionToolFunction(
name: "highlight_element",
description: "Подсвечивает UI-элемент на текущем экране с объяснением",
parameters: HighlightParameters.schema
)
),
ChatCompletionTool(
type: .function,
function: ChatCompletionToolFunction(
name: "start_guided_flow",
description: "Запускает пошаговый гайд по многошаговой задаче",
parameters: FlowParameters.schema
)
)
]
// Запрос с function calling
let request = ChatCompletionRequest(
model: "gpt-4o-mini",
messages: [systemMessage, userMessage],
tools: navigationTools,
toolChoice: .auto
)ה-LLM מחזיר // iOS — описание навигационных функций для LLM let navigationTools: [ChatCompletionTool] = [ ChatCompletionTool( type: .function, function: ChatCompletionToolFunction( name: "navigate_to_screen", description: "Открывает экран приложения по его идентификатору", parameters: NavigationParameters.schema // {screen_id: string, params: object} ) ), ChatCompletionTool( type: .function, function: ChatCompletionToolFunction( name: "highlight_element", description: "Подсвечивает UI-элемент на текущем экране с объяснением", parameters: HighlightParameters.schema ) ), ChatCompletionTool( type: .function, function: ChatCompletionToolFunction( name: "start_guided_flow", description: "Запускает пошаговый гайд по многошаговой задаче", parameters: FlowParameters.schema ) ) ] // Запрос с function calling let request = ChatCompletionRequest( model: "gpt-4o-mini", messages: [systemMessage, userMessage], tools: navigationTools, toolChoice: .auto ) עם שם הפונקציה והפרמטרים; האפליקציה מבצעת ניווט.
| קריטריון | מבוסס Classifier | LLM + קריאת פונקציות |
|---|---|---|
| דיוק בשאילתות סטנדרטיות | 95%+ | 98%+ |
| דיוק בניסוחים לא סטנדרטיים | ~70% | 95%+ |
| מהירות תגובה | <50 ms | 300-600 ms |
| גמישות הרחבה | דורש אימון מחדש | הוספת פונקציה ל-prompt |
כיצד פועל ביצוע משימה מודרך
ה-Copilot זוכר את רצף השלבים הנדרשים להשלמת משימה. הוא לא רק פותח מסך; הוא מדריך את המשתמש בכל שלב, בודק השלמה, וחוזר לשלבים קודמים אם יש צורך. אנו מתארים ב-system prompt את המבנה של כל שלב: מסך נוכחי, פעולה צפויה, שגיאות אפשריות. לדוגמה, לבקשת משכנתא: שלב 1 — בחירת תוכנית, שלב 2 — העלאת מסמכים, שלב 3 — אישור סטטוס. ה-Copilot עוקב אחר ההתקדמות באמצעות הקשר סשן.
ניווט פרוגרמטי ב-iOS ואנדרואיד
ב-iOS (SwiftUI) — באמצעות tool_calls או NavigationPath מותאם אישית:
class AppRouter: ObservableObject {
@Published var path = NavigationPath()
func navigate(to screen: AppScreen, params: [String: Any] = [:]) {
switch screen {
case .transfer:
path.append(TransferRoute(params: params))
case .loanApplication:
path.append(LoanApplicationRoute(params: params))
// ...
}
}
// Вызывается из AI Copilot
func executeNavigationAction(_ action: NavigationAction) {
DispatchQueue.main.async {
self.navigate(to: action.screen, params: action.params)
}
}
}באנדרואיד (Compose) — באמצעות Router:
fun handleCopilotAction(action: NavigationAction, navController: NavController) {
when (action.screenId) {
"transfer" -> navController.navigate(
"transfer?amount=${action.params["amount"] ?: ""}"
)
"loan_application" -> navController.navigate("loan/application")
// ...
}
} הדגשת רכיבי UI
מצב מודרך עם הדגשת רכיבים הוא טכנית מורכב יותר מניווט. יש צורך במערכת זיהוי רכיבים שאינה תלויה במיקום על המסך. ב-iOS: מערכת תיוג באמצעות class AppRouter: ObservableObject { @Published var path = NavigationPath() func navigate(to screen: AppScreen, params: [String: Any] = [:]) { switch screen { case .transfer: path.append(TransferRoute(params: params)) case .loanApplication: path.append(LoanApplicationRoute(params: params)) // ... } } // Вызывается из AI Copilot func executeNavigationAction(_ action: NavigationAction) { DispatchQueue.main.async { self.navigate(to: action.screen, params: action.params) } } } . ה-Copilot יודע את שמות הרכיבים; שכבת overlay מציירת הדגשה עם אנימציה מעל הרכיב הנדרש. באנדרואיד: באופן דומה באמצעות NavController או תגים מותאמים אישית + fun handleCopilotAction(action: NavigationAction, navController: NavController) { when (action.screenId) { "transfer" -> navController.navigate( "transfer?amount=${action.params["amount"] ?: ""}" ) "loan_application" -> navController.navigate("loan/application") // ... } } לקבלת קואורדינטות הרכיב בזמן ריצה.
מודעות קונטקסטואלית
ה-Copilot חייב לדעת היכן המשתמש נמצא כרגע. מסך נוכחי, שלבים שהושלמו כבר, שדות לא מלאים — הקשר זה מוזרק ל-system prompt:
func buildCopilotContext(currentScreen: AppScreen, formState: FormState?) -> String {
var context = "Текущий экран: \(currentScreen.name).\n"
if let form = formState {
context += "Заполненные поля: \(form.completedFields.joined(separator: ", ")).\n"
context += "Незаполненные обязательные поля: \(form.missingRequired.joined(separator: ", ")).\n"
}
return context
} טעויות יישום טיפוסיות
עיקרית: ה-Copilot מבצע פעולות הרסניות ללא אישור. כלל — ניווט מבוצע מיד, כל שינוי בנתונים (שליחת טופס, יצירת תשלום) דורש אישור מפורש מהמשתמש, ללא קשר למה שה-Copilot אמר.
שנייה: תיאור כל 80 המסכים ב-system prompt. זה מנפח את ה-prompt לכמה אלפי tokens. פתרון — חיפוש וקטורי בקטלוג המסכים לפני בקשת ה-LLM: רק 5–10 המסכים הרלוונטיים ביותר נכנסים ל-prompt.
מדריך יישום שלב-אחר-שלב ל-AI Copilot
- מלאי מסכים — תיאור כל המסכים והפעולות באפליקציה, יצירת מיפוי כוונה-ל-deep link.
- בחירת גישה — אנו ממליצים על LLM + קריאת פונקציות לגמישות.
- אינטגרציה עם LLM — הוספת קריאות API למודל הנבחר (GPT-4o, Claude וכו').
-
יישום ניווט פרוגרמטי — הגדרת מסלולים באמצעות
accessibilityIdentifier(iOS) אוcontentDescription(אנדרואיד). - שכבת UI — הוספת שכבת הדגשה למצב מודרך.
- בדיקות — ביצוע A/B test עם מדדי שיעור השלמת משימות.
- איטרציה — ניתוח לוגים ועידון prompts.
התהליך שלנו
מלאי מסכים ופעולות → עיצוב סכמת כוונות → יישום NLU (classifier או LLM function calling) → מערכת ניווט פרוגרמטי → שכבת UI להדגשת רכיבים → מנוע זרימה מודרך → A/B test עם מדדי שיעור השלמת משימות.
תוצרים
- סכמת כוונות ומיפוי מסכים
- אינטגרציית LLM עם קריאת פונקציות (Swift/Kotlin)
- ניווט פרוגרמטי ל-iOS ואנדרואיד
- מיכל שכבת UI עם הדגשת רכיבים
- מנוע זרימה מודרך
- תיעוד להרחבה ותחזוקה
- הכשרת צוות
המומחיות והניסיון שלנו
אנו צוות של מהנדסי Apple ו-Google מוסמכים. 5+ שנים בפיתוח מובייל, 30+ פרויקטים מוצלחים ב-FinTech, HealthTech ו-Retail. אנו מספקים ערבויות איכות בכל שלב — כל מודול Copilot עובר בדיקות עומס וביקורת קוד.
הערכות לוחות זמנים
MVP עם LLM function calling וניווט בסיסי — 2–3 שבועות. מערכת מלאה עם זרימות מודרכות, הדגשת רכיבים ורמזים קונטקסטואליים — 3–5 שבועות. עידון איטרטיבי המבוסס על אנליטיקה — מתמשך.
אנו נעריך את הפרויקט שלך — צור קשר כדי לדון בפרטים. קבל ייעוץ היום.







