AppFunctions की मदद से, आपका Android ऐप्लिकेशन कुछ खास फ़ंक्शन शेयर कर सकता है. सिस्टम, एआई एजेंट, और असिस्टेंट इन फ़ंक्शन को खोज सकते हैं और इनका इस्तेमाल कर सकते हैं. इन फ़ंक्शन को तय करके, Android OS को अपने ऐप्लिकेशन की सेवाएं, डेटा, और कार्रवाइयां उपलब्ध कराई जा सकती हैं. इससे उपयोगकर्ता, एआई एजेंट और सिस्टम-लेवल के इंटरैक्शन की मदद से टास्क पूरे कर पाते हैं.
AppFunctions, मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) में मौजूद टूल के मोबाइल वर्शन के तौर पर काम करते हैं. एमसीपी, एजेंटों को सर्वर-साइड टूल से कनेक्ट करने के तरीके को स्टैंडर्ड बनाता है. वहीं, AppFunctions Android ऐप्लिकेशन के लिए यही तरीका उपलब्ध कराता है. इससे आपको अपने ऐप्लिकेशन की क्षमताओं को "टूल" के तौर पर दिखाने में मदद मिलती है. इन टूल को कॉल करने वाले ऐप्लिकेशन खोज सकते हैं और उपयोगकर्ता के इरादों को पूरा करने के लिए इनका इस्तेमाल कर सकते हैं. कॉल करने वालों के पास, AppFunctions को खोजने और उन्हें लागू करने की EXECUTE_APP_FUNCTIONS अनुमति होनी चाहिए. इनमें एजेंट, ऐप्लिकेशन, और Gemini जैसे एआई असिस्टेंट शामिल हो सकते हैं.
AppFunctions, Android 16 या इसके बाद के वर्शन वाले डिवाइसों पर काम करती हैं.
इस्तेमाल के उदाहरण
AppFunctions, टास्क को ऑटोमेट करने और उपयोगकर्ता इंटरैक्शन को बेहतर बनाने का एक बेहतरीन तरीका है. अपने ऐप्लिकेशन की क्षमताओं को उपलब्ध कराकर, उपयोगकर्ताओं को आम बोलचाल की भाषा का इस्तेमाल करके मुश्किल लक्ष्यों को पूरा करने की सुविधा मिलती है. इससे अक्सर, उन्हें आपके यूज़र इंटरफ़ेस (यूआई) के साथ चरण-दर-चरण, मैन्युअल तरीके से नेविगेट करने की ज़रूरत नहीं पड़ती.
यहां कुछ उदाहरण दिए गए हैं. इनमें बताया गया है कि अलग-अलग कैटगरी के ऐप्लिकेशन में, AppFunctions का इस्तेमाल करके बेहतर अनुभव कैसे दिया जा सकता है:
- टास्क मैनेज करने और प्रॉडक्टिविटी बढ़ाने से जुड़े ऐप्लिकेशन
- उपयोगकर्ता का अनुरोध: "मुझे आज शाम 5 बजे ऑफ़िस से अपना पैकेज लेने के लिए याद दिलाओ".
- AppFunction ऐक्शन: कॉल करने वाला व्यक्ति, टास्क मैनेज करने वाले ऐप्लिकेशन की पहचान करता है और टास्क बनाने के लिए फ़ंक्शन शुरू करता है. इसके बाद, उपयोगकर्ता के प्रॉम्प्ट के आधार पर टाइटल, समय, और जगह के फ़ील्ड अपने-आप भर जाते हैं.
- मीडिया और मनोरंजन
- उपयोगकर्ता का अनुरोध: "इस साल के टॉप जैज़ एल्बम की एक नई प्लेलिस्ट बनाओ".
- AppFunction ऐक्शन: कॉल करने वाला व्यक्ति, संगीत ऐप्लिकेशन में प्लेलिस्ट बनाने की सुविधा का इस्तेमाल करता है. इसके लिए, वह "साल 2026 के टॉप जैज़ एल्बम" जैसे कॉन्टेक्स्ट को क्वेरी के तौर पर पास करता है, ताकि कॉन्टेंट जनरेट करके उसे तुरंत लॉन्च किया जा सके.
- क्रॉस-ऐप्लिकेशन वर्कफ़्लो
- उपयोगकर्ता का अनुरोध: "लीज़ा के ईमेल में नूडल की रेसिपी ढूंढो और उसमें इस्तेमाल होने वाले सामान को मेरी ख़रीदारी की सूची में जोड़ो".
- AppFunction ऐक्शन: इस अनुरोध में, कई ऐप्लिकेशन के फ़ंक्शन का इस्तेमाल किया जाता है. सबसे पहले, कॉल करने वाला व्यक्ति ईमेल ऐप्लिकेशन की खोज सुविधा का इस्तेमाल करके, कॉन्टेंट को वापस लाता है. इसके बाद, यह काम के सामान की जानकारी निकालता है और खरीदारी की सूची वाले ऐप्लिकेशन के फ़ंक्शन को चालू करता है, ताकि उपयोगकर्ता की सूची में सामान जोड़ा जा सके.
- Calendar और शेड्यूल करना
- उपयोगकर्ता का अनुरोध: "अगले सोमवार शाम 6 बजे, मेरी मां के जन्मदिन की पार्टी को मेरे कैलेंडर में जोड़ो".
- AppFunction ऐक्शन: मंज़ूरी पा चुका एजेंटिक ऐप्लिकेशन, कैलेंडर ऐप्लिकेशन के "इवेंट बनाएं" फ़ंक्शन को चालू करता है. साथ ही, "अगले सोमवार" और "शाम 6 बजे" जैसे काम के कॉन्टेक्स्ट को पार्स करता है, ताकि उपयोगकर्ता को कैलेंडर को मैन्युअल तरीके से खोलने की ज़रूरत न पड़े.
AppFunctions कैसे काम करती हैं
AppFunctions, Android 16 प्लैटफ़ॉर्म की एक सुविधा है. साथ ही, यह Jetpack लाइब्रेरी भी है. इसकी मदद से ऐप्लिकेशन, कॉल करने वालों के लिए कुछ खास फ़ंक्शन उपलब्ध करा सकते हैं. जैसे, एजेंट ऐप्लिकेशन को डिवाइस पर ऐक्सेस और एक्ज़ीक्यूट करने की अनुमति देना.
इस डायग्राम में, ऐप्लिकेशन से एजेंट को AppFunctions शेयर करने और उन्हें लागू करने का सामान्य फ़्लो दिखाया गया है. उपयोगकर्ता के अनुरोधों को मैनेज करते समय, एजेंट सर्वर-साइड रिमोट एमसीपी टूल और स्थानीय AppFunctions, दोनों का इस्तेमाल कर सकते हैं. ऐप्लिकेशन के लोकल फ़ंक्शन इस्तेमाल करने का तरीका यहां दिया गया है:
- AppFunction का एलान: Android ऐप्लिकेशन को इस तरह से बनाया जाता है कि वह अपने AppFunctions को दिखा सके. जैसे, "नोट बनाएं" या "मैसेज भेजें".
- स्कीमा जनरेशन: AppFunctions Jetpack लाइब्रेरी, एक एक्सएमएल स्कीमा फ़ाइल जनरेट करती है. इस फ़ाइल में, ऐप्लिकेशन में मौजूद सभी AppFunctions की सूची होती है. Android OS इस फ़ाइल का इस्तेमाल, उपलब्ध AppFunctions को इंडेक्स करने के लिए करता है.
- मेटाडेटा वापस पाना: एजेंट, AppFunction के मेटाडेटा को क्वेरी करके वापस पा सकता है.
- AppFunction को चुनना और उसे लागू करना: उपयोगकर्ता के प्रॉम्प्ट के आधार पर, एजेंट सही पैरामीटर के साथ सही AppFunction को चुनेगा और उसे लागू करेगा.
AppFunctions Jetpack लाइब्रेरी की मदद से, ऐप्लिकेशन की सुविधाओं को आसानी से उपलब्ध कराया जा सकता है.
एनोटेशन प्रोसेसर की मदद से, डेवलपर उन फ़ंक्शन को एनोटेट करते हैं जिन्हें वे दिखाना चाहते हैं. इसके बाद, कॉल करने वाले लोग AppFunctionManager का इस्तेमाल करके, इंडेक्स किए गए इन फ़ंक्शन को खोज सकते हैं और उन्हें चालू कर सकते हैं.
किसी फ़ंक्शन को शुरू करने से पहले, कॉल करने वालों को यह पुष्टि करनी चाहिए कि डिवाइस पर AppFunctions सुविधा काम करती है. इसके लिए, उन्हें AppFunctionManager का इंस्टेंस वापस पाने की कोशिश करनी चाहिए. यह सुविधा उपलब्ध होने के बाद, कॉल करने वाले लोग isAppFunctionEnabled(packageName, functionId) का इस्तेमाल करके यह पुष्टि कर सकते हैं कि किसी ऐप्लिकेशन में कोई खास फ़ंक्शन चालू है या नहीं. अन्य पैकेज में मौजूद फ़ंक्शन की स्थिति के बारे में क्वेरी करने के लिए, android.permission.EXECUTE_APP_FUNCTIONS permission की ज़रूरत होती है.
आपके ऐप्लिकेशन को यह पुष्टि करने की ज़रूरत नहीं है कि AppFunction सुविधा काम करती है या नहीं. यह काम, Jetpack लाइब्रेरी में अपने-आप होता है. उदाहरण के लिए, AppFunctionManager यह पुष्टि कर सकता है कि सुविधा काम करती है या नहीं.
यहां नोट लेने वाले ऐप्लिकेशन के लिए AppFunctions का एक उदाहरण दिया गया है. इसमें नोट बनाने, उनमें बदलाव करने, और उनकी सूची बनाने की सुविधाएं हैं:
/** * A note app's [AppFunction]s. */ class NoteFunctions( private val noteRepository: NoteRepository ) { /** * Lists all available notes. * * @param appFunctionContext The context in which the AppFunction is executed. */ @AppFunction(isDescribedByKDoc = true) suspend fun listNotes(appFunctionContext: AppFunctionContext): List<Note>? { return noteRepository.appNotes.ifEmpty { null }?.toList() } /** * Adds a new note to the app. * * @param appFunctionContext The context in which the AppFunction is executed. * @param title The title of the note. * @param content The note's content. */ @AppFunction(isDescribedByKDoc = true) suspend fun createNote( appFunctionContext: AppFunctionContext, title: String, content: String ): Note { return noteRepository.createNote(title, content) } /** * Edits a single note. * * @param appFunctionContext The context in which the AppFunction is executed. * @param noteId The target note's ID. * @param title The note's title if it should be updated. * @param content The new content if it should be updated. */ @AppFunction(isDescribedByKDoc = true) suspend fun editNote( appFunctionContext: AppFunctionContext, noteId: Int, title: String?, content: String?, ): Note? { return noteRepository.updateNote(noteId, title, content) } } /** * A note. */ @AppFunctionSerializable(isDescribedByKDoc = true) data class Note( /** The note's identifier */ val id: Int, /** The note's title */ val title: String, /** The note's content */ val content: String )
अक्सर पूछे जाने वाले सवाल
इस सेक्शन में, AppFunctions के बारे में अक्सर पूछे जाने वाले सवालों के जवाब दिए गए हैं.
सवाल: मैं एक ऐप्लिकेशन डेवलपर हूं. क्या मैं आज ही AppFunctions को लागू कर सकता हूं?
जवाब: हां, अपने ऐप्लिकेशन में AppFunctions को लागू किया जा सकता है और उनकी जांच की जा सकती है. इसके लिए, पिछले सेक्शन में दिए गए निर्देशों का पालन करें.
सवाल: मैंने अपने ऐप्लिकेशन में AppFunctions लागू किए हैं. मेरा सिस्टम एजेंट उन्हें ऐक्सेस क्यों नहीं कर सकता?
A: AppFunctions, एक्सपेरिमेंट के तौर पर उपलब्ध सुविधा है. एक्सपेरिमेंट के इस चरण में, हम यह आकलन करेंगे कि लोगों को कैसा अनुभव मिला. इसलिए, सिर्फ़ कुछ ऐप्लिकेशन और सिस्टम एजेंट ही पूरी पाइपलाइन को ऐक्सेस कर सकते हैं.
सवाल: मुझे एक एजेंट डेवलप करना है. क्या मुझे ऐप्लिकेशन की ओर से उपलब्ध कराई गई AppFunctions सुविधा को ऐक्सेस करने की अनुमति है?
A: आपका टेस्ट एजेंट, डेवलपमेंट एनवायरमेंट में AppFunctions को ऐक्सेस कर सकता है. एक्सपेरिमेंट के इस चरण के दौरान, सिस्टम एजेंट की सीमित संख्या ही प्रॉडक्शन में AppFunctions को ऐक्सेस और लागू कर सकती है.
सवाल: किन सिस्टम एजेंट के पास AppFunctions का ऐक्सेस है?
A: सिस्टम एजेंट की सीमित संख्या ही पूरी पाइपलाइन को ऐक्सेस कर सकती है, जबकि AppFunctions एक्सपेरिमेंट के तौर पर उपलब्ध हैं.
सवाल: मैं AppFunctions की सामान्य उपलब्धता के लिए अपने ऐप्लिकेशन को कैसे तैयार करूं?
A: सोचें कि आपको अपने ऐप्लिकेशन की किन सुविधाओं को एजेंटिक ऑटोमेशन के लिए उपलब्ध कराना है. अपने ऐप्लिकेशन में AppFunctions लागू की जा सकती हैं. इसके लिए, इस पेज पर दिए गए पिछले सेक्शन में बताया गया तरीका अपनाएं. साथ ही, यह पुष्टि करें कि वे डिवाइस पर रजिस्टर हैं. इसके लिए, adb shell cmd app_function
list-app-functions को कॉल करें.
सवाल: क्या मुझे डेवलपर के लिए उपलब्ध एजेंटिक सुविधाओं को सार्वजनिक तौर पर उपलब्ध होने से पहले इस्तेमाल करने का ऐक्सेस मिल सकता है?
A: हम Early Access Program (ईएपी) चला रहे हैं. इसके तहत, हम कुछ ऐप्लिकेशन को शामिल कर रहे हैं. इससे हमें Android पर AppFunctions को प्रोडक्शन में लॉन्च करने के लिए, डेवलपर के एंड-टू-एंड अनुभव की जांच करने में मदद मिलेगी. अगर आपको AppFunctions को इंटिग्रेट करने में दिलचस्पी है, तो ईएपी रजिस्ट्रेशन फ़ॉर्म भरें. दिलचस्पी दिखाने का मतलब यह नहीं है कि आपको इंटिग्रेशन की पूरी सुविधा का ऐक्सेस अपने-आप मिल जाएगा. अगर आपके ऐप्लिकेशन को ईएपी के लिए चुना जाता है, तो हम आपको ईमेल भेजेंगे. इसके अलावा, हम आपको तब भी ईमेल भेजेंगे, जब AppFunctions सार्वजनिक तौर पर उपलब्ध हो जाएंगी.
सवाल: मैं AppFunctions के बारे में सुझाव/राय कैसे दूं या शिकायत कैसे करूं?
A: एपीआई के बारे में सुझाव/राय देने या शिकायत करने के लिए, समस्या की जानकारी दें. इसके अलावा, Early Access Program के फ़ॉर्म में अपनी दिलचस्पी रजिस्टर करें.