AppAgent 的創新技術值得我們測試人員的關注。
最近大語言模型(LLMs)的進展導致了智能代理(Agent)的創建,這些代理能夠執行復雜的任務。而由騰訊團隊開發的AppAgent, 其智能代理能力可以用于操作任何 App,它在 50 個復雜手機任務上展示了強大的能力。
這項技術通過引入一種基于大型語言模型(LLMs)的多模態智能代理(Agent)框架,賦予了智能體操作智能手機應用的能力。與傳統的智能助手如 Siri 不同,AppAgent 不依賴于系統后端訪問,而是通過簡化的操作空間來操作智能手機應用程序,可以模擬人類的點擊和滑動等操作,直接與手機應用的圖形用戶界面(GUI)互動。這種獨特的方法不僅提高了安全性和隱私性,還確保了智能體能夠適應應用界面的變化和更新,從而擴大了它在各種應用程序中的適用性。
AppAgent 的核心在于其創新的學習方式,智能體可以通過自主探索或觀察人類演示來學習如何導航和使用新應用。在自主探索過程中,。這個過程還可以通過觀察少數幾個人類演示來加速,使智能體能夠更快地理解復雜功能。
AppAgent分為兩個階段,分別稱為探索階段和部署階段。在自主探索階段,AppAgent智能體通過一系列預定義的動作與應用互動,觀察不同應用程序的用戶界面交互(每個動作帶來的界面變化),AppAgent與智能手機應用程序進行交互,并從結果中學習,所學到的知識被精心編制成文件(構建知識庫)。一旦這個學習階段完成,AppAgent變得擅長使用應用程序,就準備好行動了,即在探索階段之后的部署階段,AppAgent利用編制在此文檔中的信息來高效地操作和導航應用程序,完成不同應用程序中的各種復雜任務。
(圖1 框架的兩階段方法:探索階段和部署階段)
為了驗證其實用性,研究團隊對 AppAgent 進行了廣泛測試,覆蓋了社交媒體、電子郵件、地圖、購物以及復雜的圖像編輯工具等 10 種不同的應用中的 50 個任務。測試結果證明,AppAgent 在處理各種高級任務方面表現出色,顯示出其適應性、用戶友好性以及高效的學習和操作能力。
1.實驗環境
實驗環境建立在Android操作系統的命令行界面(CLI)上,允許AppAgent與智能手機應用程序進行交互。代理接收兩個關鍵輸入:顯示應用程序界面的實時截圖和詳細的交互元素的XML文件。為了增強AppAgent識別和無縫交互這些元素的能力,我們為每個元素分配了一個唯一的標識符。這些標識符要么來自XML文件中的資源ID(如果提供),要么是通過組合元素的類名、大小和內容構建而成。這些元素以半透明的數字疊加在截圖上。這有助于AppAgent在不需要指定屏幕上精確位置的情況下準確交互,并增強了AppAgent在控制手機時的精度。
行動空間:AppAgent的行動空間反映了人們在智能手機上的常見交互方式:輕觸和滑動,設計了四種基本功能,并用到Android的兩個系統級的操作:
Tap(element : int):這個函數模擬對屏幕上標有數字的UI元素進行輕觸。例如,tap(5)將點擊標有“5”的元素。
Long_press(element : int):這個函數模擬對UI元素進行長按(1秒)。
Swipe(element : int, direction : str, dist : str):在指定方向(上、下、左、右)和距離(短、中、長)上滑動一個元素。例如,swipe(21, "up", "medium")將在元素“21”上向上滑動一段中等距離。
Text(text : str):為了繞過低效的虛擬鍵盤輸入,這個函數在虛擬鍵盤可見時直接將文本輸入到輸入框中。例如,text("Hello, world!")輸入字符串“Hello, world!”。
Back():系統級功能,幫助代理返回到前一個UI頁面,特別適用于退出不相關頁面。
Exit():特地的函數用于結束進程,通常在成功完成任務時調用。
這些預定義的動作旨在簡化AppAgent的交互,特別是通過消除對精確屏幕坐標的需求,這對于大語言模型(LLM)準確預測來說可能會帶來挑戰。
2. 探索階段
探索階段是這個框架的核心。
在此階段,AppAgent被分配一個任務,并開始自主與UI元素進行交互,通過試錯學習智能手機應用程序的功能和特性。
AppAgent使用不同的動作,并觀察應用界面的變化,以了解其工作原理。由LLM驅動的AppAgent試圖通過分析每個動作之前和之后的截圖來弄清楚UI元素的功能和特定動作的影響。這些信息被編制成一個記錄了對不同元素應用的動作效果的文檔。
當一個UI元素被多次操作時,AppAgent將根據過去的文檔和當前觀察更新文檔以提高質量。為了使探索更加高效,如果當前UI頁面似乎與應用的主要任務無關,如廣告頁面,AppAgent將停止進一步探索UI元素。在這種情況下,它使用Android系統的Back()函數返回到前一個UI頁面。
與隨機探索(如深度優先搜索和廣度優先搜索)相比,這種目標導向的探索方法確保代理專注于對應用程序有效操作至關重要的元素。AppAgent還利用LLM對用戶界面的現有知識來提高探索效率。當AppAgent完成分配的任務時,探索停止。
通過觀看演示進行探索。另一種常見且通常更有效的探索方法涉及AppAgent觀察人類示范。這些演示為代理提供了高效使用應用程序的示例,特別是對于理解可能通過自主交互難以發現的復雜功能。在這種方法中,一個人類用戶操作應用程序,而AppAgent觀察并記錄人類使用的元素和動作。這種策略縮小了探索空間,防止代理與無關的應用頁面進行交互,使其與自主交互相比成為更加簡化和高效的方法。
3. 部署階段
在探索階段之后,代理已經具備了執行復雜任務的能力,這是基于其積累的經驗。當給定任務時,代理遵循一種逐步的方法,每一步都包括對當前UI截圖的訪問和動態生成的文檔,詳細說明了UI元素的功能以及動作對當前UI頁面的影響。提示還提供了所有可用動作的詳細解釋。
在每一步中,代理首先被要求提供對當前UI的觀察,然后闡述其對任務和當前觀察的思考過程。隨后,代理開始執行動作,調用可用的函數。在每個動作之后,代理總結了交互歷史和當前步驟中所采取的動作。這些信息被納入下一個提示中,為代理提供了一種記憶形式。這種細致的方法增強了代理行動的可靠性和可解釋性,從而促進了更明智的決策制定。當代理確定任務已經完成時,部署階段停止,此時它可以通過執行Exit()動作退出流程。
審核編輯:劉清
-
GUI
+關注
關注
3文章
660瀏覽量
39698 -
XML技術
+關注
關注
0文章
15瀏覽量
6012 -
CLI
+關注
關注
1文章
79瀏覽量
8558
原文標題:震撼:AppAgent讓移動App應用測試更輕松
文章出處:【微信號:軟件質量報道,微信公眾號:軟件質量報道】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論