AppAgent 的創(chuàng)新技術(shù)值得我們測試人員的關(guān)注。
最近大語言模型(LLMs)的進(jìn)展導(dǎo)致了智能代理(Agent)的創(chuàng)建,這些代理能夠執(zhí)行復(fù)雜的任務(wù)。而由騰訊團(tuán)隊(duì)開發(fā)的AppAgent, 其智能代理能力可以用于操作任何 App,它在 50 個復(fù)雜手機(jī)任務(wù)上展示了強(qiáng)大的能力。
這項(xiàng)技術(shù)通過引入一種基于大型語言模型(LLMs)的多模態(tài)智能代理(Agent)框架,賦予了智能體操作智能手機(jī)應(yīng)用的能力。與傳統(tǒng)的智能助手如 Siri 不同,AppAgent 不依賴于系統(tǒng)后端訪問,而是通過簡化的操作空間來操作智能手機(jī)應(yīng)用程序,可以模擬人類的點(diǎn)擊和滑動等操作,直接與手機(jī)應(yīng)用的圖形用戶界面(GUI)互動。這種獨(dú)特的方法不僅提高了安全性和隱私性,還確保了智能體能夠適應(yīng)應(yīng)用界面的變化和更新,從而擴(kuò)大了它在各種應(yīng)用程序中的適用性。
AppAgent 的核心在于其創(chuàng)新的學(xué)習(xí)方式,智能體可以通過自主探索或觀察人類演示來學(xué)習(xí)如何導(dǎo)航和使用新應(yīng)用。在自主探索過程中,。這個過程還可以通過觀察少數(shù)幾個人類演示來加速,使智能體能夠更快地理解復(fù)雜功能。
AppAgent分為兩個階段,分別稱為探索階段和部署階段。在自主探索階段,AppAgent智能體通過一系列預(yù)定義的動作與應(yīng)用互動,觀察不同應(yīng)用程序的用戶界面交互(每個動作帶來的界面變化),AppAgent與智能手機(jī)應(yīng)用程序進(jìn)行交互,并從結(jié)果中學(xué)習(xí),所學(xué)到的知識被精心編制成文件(構(gòu)建知識庫)。一旦這個學(xué)習(xí)階段完成,AppAgent變得擅長使用應(yīng)用程序,就準(zhǔn)備好行動了,即在探索階段之后的部署階段,AppAgent利用編制在此文檔中的信息來高效地操作和導(dǎo)航應(yīng)用程序,完成不同應(yīng)用程序中的各種復(fù)雜任務(wù)。
(圖1 框架的兩階段方法:探索階段和部署階段)
為了驗(yàn)證其實(shí)用性,研究團(tuán)隊(duì)對 AppAgent 進(jìn)行了廣泛測試,覆蓋了社交媒體、電子郵件、地圖、購物以及復(fù)雜的圖像編輯工具等 10 種不同的應(yīng)用中的 50 個任務(wù)。測試結(jié)果證明,AppAgent 在處理各種高級任務(wù)方面表現(xiàn)出色,顯示出其適應(yīng)性、用戶友好性以及高效的學(xué)習(xí)和操作能力。
1.實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)環(huán)境建立在Android操作系統(tǒng)的命令行界面(CLI)上,允許AppAgent與智能手機(jī)應(yīng)用程序進(jìn)行交互。代理接收兩個關(guān)鍵輸入:顯示應(yīng)用程序界面的實(shí)時截圖和詳細(xì)的交互元素的XML文件。為了增強(qiáng)AppAgent識別和無縫交互這些元素的能力,我們?yōu)槊總€元素分配了一個唯一的標(biāo)識符。這些標(biāo)識符要么來自XML文件中的資源ID(如果提供),要么是通過組合元素的類名、大小和內(nèi)容構(gòu)建而成。這些元素以半透明的數(shù)字疊加在截圖上。這有助于AppAgent在不需要指定屏幕上精確位置的情況下準(zhǔn)確交互,并增強(qiáng)了AppAgent在控制手機(jī)時的精度。
行動空間:AppAgent的行動空間反映了人們在智能手機(jī)上的常見交互方式:輕觸和滑動,設(shè)計(jì)了四種基本功能,并用到Android的兩個系統(tǒng)級的操作:
Tap(element : int):這個函數(shù)模擬對屏幕上標(biāo)有數(shù)字的UI元素進(jìn)行輕觸。例如,tap(5)將點(diǎn)擊標(biāo)有“5”的元素。
Long_press(element : int):這個函數(shù)模擬對UI元素進(jìn)行長按(1秒)。
Swipe(element : int, direction : str, dist : str):在指定方向(上、下、左、右)和距離(短、中、長)上滑動一個元素。例如,swipe(21, "up", "medium")將在元素“21”上向上滑動一段中等距離。
Text(text : str):為了繞過低效的虛擬鍵盤輸入,這個函數(shù)在虛擬鍵盤可見時直接將文本輸入到輸入框中。例如,text("Hello, world!")輸入字符串“Hello, world!”。
Back():系統(tǒng)級功能,幫助代理返回到前一個UI頁面,特別適用于退出不相關(guān)頁面。
Exit():特地的函數(shù)用于結(jié)束進(jìn)程,通常在成功完成任務(wù)時調(diào)用。
這些預(yù)定義的動作旨在簡化AppAgent的交互,特別是通過消除對精確屏幕坐標(biāo)的需求,這對于大語言模型(LLM)準(zhǔn)確預(yù)測來說可能會帶來挑戰(zhàn)。
2. 探索階段
探索階段是這個框架的核心。
在此階段,AppAgent被分配一個任務(wù),并開始自主與UI元素進(jìn)行交互,通過試錯學(xué)習(xí)智能手機(jī)應(yīng)用程序的功能和特性。
AppAgent使用不同的動作,并觀察應(yīng)用界面的變化,以了解其工作原理。由LLM驅(qū)動的AppAgent試圖通過分析每個動作之前和之后的截圖來弄清楚UI元素的功能和特定動作的影響。這些信息被編制成一個記錄了對不同元素應(yīng)用的動作效果的文檔。
當(dāng)一個UI元素被多次操作時,AppAgent將根據(jù)過去的文檔和當(dāng)前觀察更新文檔以提高質(zhì)量。為了使探索更加高效,如果當(dāng)前UI頁面似乎與應(yīng)用的主要任務(wù)無關(guān),如廣告頁面,AppAgent將停止進(jìn)一步探索UI元素。在這種情況下,它使用Android系統(tǒng)的Back()函數(shù)返回到前一個UI頁面。
與隨機(jī)探索(如深度優(yōu)先搜索和廣度優(yōu)先搜索)相比,這種目標(biāo)導(dǎo)向的探索方法確保代理專注于對應(yīng)用程序有效操作至關(guān)重要的元素。AppAgent還利用LLM對用戶界面的現(xiàn)有知識來提高探索效率。當(dāng)AppAgent完成分配的任務(wù)時,探索停止。
通過觀看演示進(jìn)行探索。另一種常見且通常更有效的探索方法涉及AppAgent觀察人類示范。這些演示為代理提供了高效使用應(yīng)用程序的示例,特別是對于理解可能通過自主交互難以發(fā)現(xiàn)的復(fù)雜功能。在這種方法中,一個人類用戶操作應(yīng)用程序,而AppAgent觀察并記錄人類使用的元素和動作。這種策略縮小了探索空間,防止代理與無關(guān)的應(yīng)用頁面進(jìn)行交互,使其與自主交互相比成為更加簡化和高效的方法。
3. 部署階段
在探索階段之后,代理已經(jīng)具備了執(zhí)行復(fù)雜任務(wù)的能力,這是基于其積累的經(jīng)驗(yàn)。當(dāng)給定任務(wù)時,代理遵循一種逐步的方法,每一步都包括對當(dāng)前UI截圖的訪問和動態(tài)生成的文檔,詳細(xì)說明了UI元素的功能以及動作對當(dāng)前UI頁面的影響。提示還提供了所有可用動作的詳細(xì)解釋。
在每一步中,代理首先被要求提供對當(dāng)前UI的觀察,然后闡述其對任務(wù)和當(dāng)前觀察的思考過程。隨后,代理開始執(zhí)行動作,調(diào)用可用的函數(shù)。在每個動作之后,代理總結(jié)了交互歷史和當(dāng)前步驟中所采取的動作。這些信息被納入下一個提示中,為代理提供了一種記憶形式。這種細(xì)致的方法增強(qiáng)了代理行動的可靠性和可解釋性,從而促進(jìn)了更明智的決策制定。當(dāng)代理確定任務(wù)已經(jīng)完成時,部署階段停止,此時它可以通過執(zhí)行Exit()動作退出流程。
審核編輯:劉清
-
GUI
+關(guān)注
關(guān)注
3文章
662瀏覽量
39893 -
XML技術(shù)
+關(guān)注
關(guān)注
0文章
15瀏覽量
6035 -
CLI
+關(guān)注
關(guān)注
1文章
79瀏覽量
8600
原文標(biāo)題:震撼:AppAgent讓移動App應(yīng)用測試更輕松
文章出處:【微信號:軟件質(zhì)量報道,微信公眾號:軟件質(zhì)量報道】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
App發(fā)布前完整測試的重要性:從Sonos的失敗中汲取教訓(xùn)
LambdaTest發(fā)布新一代SmartUI,重塑可視化測試體驗(yàn)
谷歌Pixel Recorder應(yīng)用用戶參與度顯著提升
移動終端測試儀的技術(shù)原理和應(yīng)用場景
Python常用函數(shù)大全
![](https://file.elecfans.com/web2/M00/AE/F0/poYBAGSiifeAHUU5AAA4weiXetE636.png)
水產(chǎn)養(yǎng)殖智能管理方案,讓漁業(yè)養(yǎng)殖更輕松#農(nóng)業(yè)物聯(lián)網(wǎng) #plc #物聯(lián)網(wǎng)
谷歌針對Android和iOS版Chrome發(fā)布五項(xiàng)更新
涂鴉App開發(fā)工具App SDK
![涂鴉<b class='flag-5'>App</b>開發(fā)工具<b class='flag-5'>App</b> SDK](https://file.elecfans.com/web2/M00/40/04/pYYBAGJrTDSAYdI1AAASTiyZjeQ622.jpg)
bootloader開多線程做引導(dǎo)程序,跳app初始化后直接進(jìn)hardfualt,為什么?
茂森讓智能手機(jī)變身移動數(shù)據(jù)釆集器
![茂森<b class='flag-5'>讓</b>智能手機(jī)變身<b class='flag-5'>移動</b>數(shù)據(jù)釆集器](https://file1.elecfans.com//web2/M00/C8/80/wKgaomYVBQuAXomKAAOSSrPpW7o566.png)
具有增強(qiáng)AI功能的Minitab 22發(fā)布!新增多種新功能讓數(shù)據(jù)分析更輕松!
機(jī)智云開發(fā)者中心:讓移動APP應(yīng)用開發(fā)更智能化
![機(jī)智云開發(fā)者中心:<b class='flag-5'>讓</b><b class='flag-5'>移動</b><b class='flag-5'>APP</b>應(yīng)用開發(fā)更智能化](https://file1.elecfans.com//web2/M00/C6/BC/wKgaomYCiySACVELAAAnscoMqWY584.png)
評論