{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/mobile-env-a-universal-platform-for-training","title":"Mobile-Env: Building Qualified Evaluation Benchmarks for LLM-GUI Interaction","arxiv_id":"2305.08144","date":"2023-05-14","proceeding":null,"authors":["Danyang Zhang","Zhennan Shen","Rui Xie","Situo Zhang","Tianbao Xie","Zihan Zhao","Siyuan Chen","Lu Chen","Hongshen Xu","Ruisheng Cao","Kai Yu"],"abstract":"The Graphical User Interface (GUI) is pivotal for human interaction with the digital world, enabling efficient device control and the completion of complex tasks. Recent progress in Large Language Models (LLMs) and Vision Language Models (VLMs) offers the chance to create advanced GUI agents. To ensure their effectiveness, there's a pressing need for qualified benchmarks that provide trustworthy and reproducible evaluations -- a challenge current benchmarks often fail to address. To tackle this issue, we introduce Mobile-Env, a comprehensive toolkit tailored for creating GUI benchmarks in the Android mobile environment. Mobile-Env offers an isolated and controllable setting for reliable evaluations, and accommodates intermediate instructions and rewards to reflect real-world usage more naturally. Utilizing Mobile-Env, we collect an open-world task set across various real-world apps and a fixed world set, WikiHow, which captures a significant amount of dynamic online contents for fully controllable and reproducible evaluation. We conduct comprehensive evaluations of LLM agents using these benchmarks. Our findings reveal that even advanced models (e.g., GPT-4V and LLaMA-3) struggle with tasks that are relatively simple for humans. This highlights a crucial gap in current models and underscores the importance of developing more capable foundation models and more effective GUI agent frameworks.","url_abs":"https://arxiv.org/abs/2305.08144v4","url_pdf":"https://arxiv.org/pdf/2305.08144v4.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"mobile-env-a-universal-platform-for-training","repo_url":"https://github.com/opendfm/mobile-env-expe","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"mobile-env-a-universal-platform-for-training","repo_url":"https://github.com/x-lance/mobile-env","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"language-modelling","task_name":"Language Modelling"}],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"base","method_name":"BASE"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"cosine-annealing","method_name":"Cosine Annealing"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"discriminative-fine-tuning","method_name":"Discriminative Fine-Tuning"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"gpt","method_name":"GPT"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-cosine-annealing","method_name":"Linear Warmup With Cosine Annealing"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2305.08144","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.08144"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/x-lance/mobile-env","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/opendfm/mobile-env-expe","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":17},"by_repo_kind":{"official":{"samples":17,"ran":0,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"8237e8d71bcac682","entry":"TGI","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"llm_accessor.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/llm_accessor.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8237e8d71bcac682"}},{"code_sha256_prefix":"755840980bae7f5e","entry":"build_tree_from_dumpsys_output","repo":"x-lance/mobile-env","repo_kind":"official","path":"android_env/components/app_screen_checker.py","file_url":"https://github.com/x-lance/mobile-env/blob/HEAD/android_env/components/app_screen_checker.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"755840980bae7f5e"}},{"code_sha256_prefix":"c6101d0327e9e645","entry":"convert_aguvis_action_str","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"agent_mm.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/agent_mm.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c6101d0327e9e645"}},{"code_sha256_prefix":"46b8f18ead6ffd89","entry":"convert_simple_page","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"vh_to_html.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/vh_to_html.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"46b8f18ead6ffd89"}},{"code_sha256_prefix":"f8b0b757c8078346","entry":"convert_uitars_action_str","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"agent_mm.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/agent_mm.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f8b0b757c8078346"}},{"code_sha256_prefix":"21280b33c4ae2610","entry":"display_prompt_group","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/prompt_template.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/prompt_template.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"21280b33c4ae2610"}},{"code_sha256_prefix":"41476e9ef8a1ee93","entry":"display_vision_message","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/prompt_template.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/prompt_template.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"41476e9ef8a1ee93"}},{"code_sha256_prefix":"add4d28fd38b52c5","entry":"judge_verb","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/target_handlers.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/target_handlers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"add4d28fd38b52c5"}},{"code_sha256_prefix":"4126d3e607ae5635","entry":"match_target","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/target_handlers.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/target_handlers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4126d3e607ae5635"}},{"code_sha256_prefix":"c0751dc3b8012cf8","entry":"matches_path","repo":"x-lance/mobile-env","repo_kind":"official","path":"android_env/components/app_screen_checker.py","file_url":"https://github.com/x-lance/mobile-env/blob/HEAD/android_env/components/app_screen_checker.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c0751dc3b8012cf8"}},{"code_sha256_prefix":"bb7270413f278436","entry":"parse_include_arguments","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/libzpp.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/libzpp.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bb7270413f278436"}},{"code_sha256_prefix":"4c7131710ba6b659","entry":"parse_number","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/libzpp.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/libzpp.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4c7131710ba6b659"}},{"code_sha256_prefix":"795333d26aff57ab","entry":"read_plain","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/sentence_pattern.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/sentence_pattern.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"795333d26aff57ab"}},{"code_sha256_prefix":"978b12abda4fc93b","entry":"read_until","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/sentence_pattern.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/sentence_pattern.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"978b12abda4fc93b"}},{"code_sha256_prefix":"c8118de6213a4843","entry":"read_while","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/sentence_pattern.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/sentence_pattern.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c8118de6213a4843"}},{"code_sha256_prefix":"31cc163f586e4956","entry":"removeprefix","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/misc.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/misc.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"31cc163f586e4956"}},{"code_sha256_prefix":"9cbf282d5dce4ca5","entry":"split_mapping_dict","repo":"opendfm/mobile-env-expe","repo_kind":"official","path":"utils/prompt_template.py","file_url":"https://github.com/opendfm/mobile-env-expe/blob/HEAD/utils/prompt_template.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9cbf282d5dce4ca5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}