• 简体中文
  • Midscene AndroidWorld Benchmark 测试报告

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

    关于 AndroidWorld

    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报告