Midscene AndroidWorld Benchmark 测试报告

本文是 Midscene 针对 AndroidWorld benchmark 的测试报告。本次测试中,Midscene 取得了 Pass@1 93.10%Pass@2 95.69%Pass@3 97.41% 的结果。

关于 Android World

AndroidWorld 是 Google Research 提供的 Android Agent benchmark。它运行在真实 Android 模拟器上,用 20 个真实 Android 应用中的 116 个程序化任务来评估 Agent,并由 benchmark 负责初始化任务和校验结果。

运行配置

字段
Model NameGemini-3.5-Flash
Midscene version1.9.5
DeepThinkon
MIDSCENE_REPLANNING_CYCLE_LIMIT120
AndroidWorld 工程为了降低 benchmark 过程中的偶发波动,我们对 AndroidWorld 工程做了若干稳定性修复。具体例子见下方。
验收规则少量 AndroidWorld validator 按任务意图做了校准,涉及的 case 见下方列表。

稳定性提升

以下改动不改变任务意图,主要用于降低浏览器渲染、accessibility tree 刷新、任务 setup 时序等带来的偶发失败。

修改内容涉及的 case
BrowserDraw 绘制后强制刷新 canvas 像素,并加粗、圆角化画笔,让目标颜色更稳定地落到最终 canvas 像素里。BrowserDraw
Browser task 完成后,读取 accessibility tree 中的 Success! 文本时增加重试,避免 stale accessibility tree 误判。BrowserMaze
BrowserMultiply
BrowserDraw
SMS 任务开始前会先准备好需要的短信和联系人;现在会确认这些短信能在收件箱查到、联系人能在通讯录查到,再开始让 agent 执行。SimpleSmsReplyMostRecent
SimpleSmsSendReceivedAddress
Expense 类任务启动 Pro Expense 后等待数据库表创建完成,再由 validator 写入测试数据,避免初始数据库未初始化导致失败。ExpenseAddMultiple
ExpenseAddMultipleFromGallery
ExpenseAddMultipleFromMarkor
ExpenseAddSingle
ExpenseDeleteDuplicates
ExpenseDeleteDuplicates2
ExpenseDeleteMultiple
ExpenseDeleteMultiple2
ExpenseDeleteSingle
OsmAnd 任务提前把离线地图文件放入应用数据目录,并等待 OsmAnd 解压内置底图,确保地图数据 ready 后再执行。OsmAndFavorite
OsmAndMarker
OsmAndTrack

验证条件调整

本次 benchmark 使用的 AndroidWorld main 分支中,以下验证条件做过调整:

修改内容涉及的 case
Calendar 的 "after start time" 验收目标改为边界点之后 1 分钟的事件,避免事件正好落在边界点时,不同模型对 after 是否包含边界点的理解差异影响判定。SimpleCalendarFirstEventAfterStartTime
Expense 从 Markor 导入时,接受 Markor note 中额外带上的 Reimbursable. 后缀;对比 note 文本时会忽略这个后缀及末尾句号差异。ExpenseAddMultipleFromMarkor
Markor 合并 notes 时,允许单换行或空行分隔,并兼容 Markor 自动补上的 .md 扩展名。MarkorMergeNotes
Recipe 的数量、时长和 ingredient count 允许省略单位,但错误数量或错误单位仍会失败。RecipeAddSingleRecipe
RecipeAddMultipleRecipes
RecipeAddMultipleRecipesFromMarkor
RecipeAddMultipleRecipesFromMarkor2
RecipeAddMultipleRecipesFromImage
NotesRecipeIngredientCount
最小亮度按 Android 实际 setting 值 0 验证,而不是旧的 1SystemBrightnessMin
SystemBrightnessMinVerify

报告文件

详细的报告如下,供大家参考。

Round 1(115 份报告 · 108 PASS · 7 FAIL)
#任务状态报告
1AudioRecorderRecordAudioPASS报告
2AudioRecorderRecordAudioWithFileNamePASS报告
3BrowserDrawPASS报告
4BrowserMazePASS报告
5BrowserMultiplyPASS报告
6CameraTakePhotoPASS报告
7CameraTakeVideoPASS报告
8ClockStopWatchPausedVerifyPASS报告
9ClockStopWatchRunningPASS报告
10ClockTimerEntryPASS报告
11ContactsAddContactPASS报告
12ContactsNewContactDraftPASS报告
13ExpenseAddMultiplePASS报告
14ExpenseAddMultipleFromGalleryPASS报告
15ExpenseAddMultipleFromMarkorFAIL报告
16ExpenseAddSinglePASS报告
17ExpenseDeleteDuplicatesPASS报告
18ExpenseDeleteDuplicates2PASS报告
19ExpenseDeleteMultiplePASS报告
20ExpenseDeleteMultiple2PASS报告
21ExpenseDeleteSinglePASS报告
22FilesDeleteFilePASS报告
23FilesMoveFilePASS报告
24MarkorAddNoteHeaderPASS报告
25MarkorChangeNoteContentPASS报告
26MarkorCreateFolderPASS报告
27MarkorCreateNotePASS报告
28MarkorCreateNoteAndSmsPASS报告
29MarkorCreateNoteFromClipboardPASS报告
30MarkorDeleteAllNotesPASS报告
31MarkorDeleteNewestNotePASS报告
32MarkorDeleteNotePASS报告
33MarkorEditNotePASS报告
34MarkorMergeNotesPASS报告
35MarkorMoveNotePASS报告
36MarkorTranscribeReceiptPASS报告
37MarkorTranscribeVideoFAIL报告
38OpenAppTaskEvalPASS报告
39OsmAndFavoritePASS报告
40OsmAndMarkerFAIL报告
42RecipeAddMultipleRecipesPASS报告
43RecipeAddMultipleRecipesFromImageFAIL报告
44RecipeAddMultipleRecipesFromMarkorPASS报告
45RecipeAddMultipleRecipesFromMarkor2PASS报告
46RecipeAddSingleRecipePASS报告
47RecipeDeleteDuplicateRecipesPASS报告
48RecipeDeleteDuplicateRecipes2FAIL报告
49RecipeDeleteDuplicateRecipes3FAIL报告
50RecipeDeleteMultipleRecipesPASS报告
51RecipeDeleteMultipleRecipesWithConstraintPASS报告
52RecipeDeleteMultipleRecipesWithNoisePASS报告
53RecipeDeleteSingleRecipePASS报告
54RecipeDeleteSingleWithRecipeWithNoisePASS报告
55RetroCreatePlaylistPASS报告
56RetroPlayingQueuePASS报告
57RetroPlaylistDurationPASS报告
58RetroSavePlaylistPASS报告
59SaveCopyOfReceiptTaskEvalPASS报告
60SimpleCalendarAddOneEventPASS报告
61SimpleCalendarAddOneEventInTwoWeeksPASS报告
62SimpleCalendarAddOneEventRelativeDayPASS报告
63SimpleCalendarAddOneEventTomorrowPASS报告
64SimpleCalendarAddRepeatingEventPASS报告
65SimpleCalendarDeleteEventsPASS报告
66SimpleCalendarDeleteEventsOnRelativeDayPASS报告
67SimpleCalendarDeleteOneEventPASS报告
68SimpleDrawProCreateDrawingPASS报告
69SimpleSmsReplyPASS报告
70SimpleSmsReplyMostRecentPASS报告
71SimpleSmsResendPASS报告
72SimpleSmsSendPASS报告
73SimpleSmsSendClipboardContentPASS报告
74SimpleSmsSendReceivedAddressPASS报告
75SystemBluetoothTurnOffPASS报告
76SystemBluetoothTurnOffVerifyPASS报告
77SystemBluetoothTurnOnPASS报告
78SystemBluetoothTurnOnVerifyPASS报告
79SystemBrightnessMaxPASS报告
80SystemBrightnessMaxVerifyPASS报告
81SystemBrightnessMinPASS报告
82SystemBrightnessMinVerifyPASS报告
83SystemCopyToClipboardFAIL报告
84SystemWifiTurnOffPASS报告
85SystemWifiTurnOffVerifyPASS报告
86SystemWifiTurnOnPASS报告
87SystemWifiTurnOnVerifyPASS报告
88TurnOffWifiAndTurnOnBluetoothPASS报告
89TurnOnWifiAndOpenAppPASS报告
90VlcCreatePlaylistPASS报告
91VlcCreateTwoPlaylistsPASS报告
92NotesIsTodoPASS报告
93NotesMeetingAttendeeCountPASS报告
94NotesRecipeIngredientCountPASS报告
95NotesTodoItemCountPASS报告
96SimpleCalendarAnyEventsOnDatePASS报告
97SimpleCalendarEventOnDateAtTimePASS报告
98SimpleCalendarEventsInNextWeekPASS报告
99SimpleCalendarEventsInTimeRangePASS报告
100SimpleCalendarEventsOnDatePASS报告
101SimpleCalendarFirstEventAfterStartTimePASS报告
102SimpleCalendarLocationOfEventPASS报告
103SimpleCalendarNextEventPASS报告
104SimpleCalendarNextMeetingWithPersonPASS报告
105SportsTrackerActivitiesCountForWeekPASS报告
106SportsTrackerActivitiesOnDatePASS报告
107SportsTrackerActivityDurationPASS报告
108SportsTrackerLongestDistanceActivityPASS报告
109SportsTrackerTotalDistanceForCategoryOverIntervalPASS报告
110SportsTrackerTotalDurationForCategoryThisWeekPASS报告
111TasksCompletedTasksForDatePASS报告
112TasksDueNextWeekPASS报告
113TasksDueOnDatePASS报告
114TasksHighPriorityTasksPASS报告
115TasksHighPriorityTasksDueOnDatePASS报告
116TasksIncompleteTasksOnDatePASS报告
Round 2(7 份报告 · 3 PASS · 4 FAIL)
#任务状态报告
37MarkorTranscribeVideoFAIL报告
40OsmAndMarkerFAIL报告
41OsmAndTrackPASS报告
43RecipeAddMultipleRecipesFromImagePASS报告
48RecipeDeleteDuplicateRecipes2FAIL报告
49RecipeDeleteDuplicateRecipes3FAIL报告
83SystemCopyToClipboardPASS报告
Round 3(5 份报告 · 2 PASS · 3 FAIL)
#任务状态报告
15ExpenseAddMultipleFromMarkorPASS报告
37MarkorTranscribeVideoFAIL报告
40OsmAndMarkerPASS报告
48RecipeDeleteDuplicateRecipes2FAIL报告
49RecipeDeleteDuplicateRecipes3FAIL报告