[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-google-research--android_world":3,"tool-google-research--android_world":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,43,44,45,15,46,26,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74939,"2026-04-05T23:16:38",[26,14,13,46],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":114,"forks":115,"last_commit_at":116,"license":117,"difficulty_score":118,"env_os":119,"env_gpu":120,"env_ram":121,"env_deps":122,"category_tags":128,"github_topics":79,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":129,"updated_at":130,"faqs":131,"releases":165},4042,"google-research\u002Fandroid_world","android_world","AndroidWorld is an environment and benchmark for autonomous agents","AndroidWorld 是一个专为构建和评估自主智能体而设计的开源环境与基准测试平台。它通过在真实的 Android 模拟器上运行，解决了当前 AI 代理在复杂移动设备操作中缺乏标准化、可复现测试环境的难题。\n\n该平台内置了涵盖 20 款真实应用的 116 项手工任务，并支持动态参数生成，能够创造出数百万种独特的任务变体，从而全面检验智能体在不同场景下的泛化能力。除了原生任务，它还兼容流行的网页基准测试 MiniWoB++，并提供持久的奖励信号以确保评估结果的可靠性。其轻量级设计仅需 2GB 内存和 8GB 磁盘空间，且支持 Docker 部署，大大降低了环境配置门槛。\n\nAndroidWorld 特别适合 AI 研究人员、开发者以及致力于探索大模型在移动端应用潜力的团队使用。无论是验证新的控制算法，还是进行大规模的自动化测试，它都能提供一个开放、可扩展且高度一致的实验场。借助对海量 Android 应用和网站的访问能力，用户可以在接近真实用户的环境中，高效地训练和评测能够自主完成复杂操作的智能代理。","# AndroidWorld\n\n\u003C!-- mdlint off(WHITESPACE_LINE_LENGTH) -->\n\n[![Unittests](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Factions\u002Fworkflows\u002Fpytest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Factions\u002Fworkflows\u002Fpytest.yml)\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fgoogle-research.github.io\u002Fandroid_world\u002F\">Website\u003C\u002Fa> •\n\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fpdf\u002F2405.14573\">Paper\u003C\u002Fa> •\n\u003Ca href=\"https:\u002F\u002Fgoogle-research.github.io\u002Fandroid_world\u002Ftask_list.html\">Tasks\u003C\u002Fa> •\n\u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1cchzP9dlTZ3WXQTfYNhh3avxoLipqHN75v1Tb86uhHo\u002Fedit?gid=0#gid=0\">Leaderboard\u003C\u002Fa>\n\u003C\u002Fp>\n\n![Overview](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-research_android_world_readme_7e9070507cbc.png)\n\n**AndroidWorld** is an environment for building and benchmarking autonomous\ncomputer control agents.\n\nIt runs on a live Android emulator and contains a highly reproducible benchmark\nof 116 hand-crafted tasks across 20 apps, which are dynamically instantiated\nwith randomly-generated parameters to create millions of unique task variations.\n\nIn addition to the built-in tasks, AndroidWorld also supports the popular web benchmark, MiniWoB++ from [Liu et al.](http:\u002F\u002Farxiv.org\u002Fabs\u002F1802.08802).\n\nKey features of AndroidWorld include:\n\n* 📝 **116 diverse tasks** across 20 real-world apps\n* 🎲 **Dynamic task instantiation** for millions of unique variations\n* 🏆 **Durable reward signals** for reliable evaluation\n* 🐳 **Experimental Docker Support** for simplified setup and consistent environments (as of 06\u002F02\u002F2025)\n* 🌐 **Open environment** with access to millions of Android apps and websites\n* 💾 **Lightweight footprint** (2 GB memory, 8 GB disk)\n* 🔧 **Extensible design** to easily add new tasks and benchmarks\n* 🖥️ **Integration with MiniWoB++** web-based tasks\n\nSee demo videos on our [website](https:\u002F\u002Fgoogle-research.github.io\u002Fandroid_world\u002F).\no\n\n## Installation\n\n1. Set up the Android Emulator\n   1. Download Android Studio [here](https:\u002F\u002Fdeveloper.android.com\u002Fstudio?gad_source=1&gclid=Cj0KCQjw3ZayBhDRARIsAPWzx8oLcadBD0vAq8xmUutaunLGSzhgEtLz4xVZ_SpV4G0xJazS7LxQkDsaAuveEALw_wcB&gclsrc=aw.ds)\n   2. Create an Android Virtual Device (AVD) by following these instructions. For hardware select **Pixel 6**, for System Image select **Tiramisu, API Level 33**, and choose AVD name as **AndroidWorldAvd**. [Watch the setup video.](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fassets\u002F162379927\u002Fefc33980-8b36-44be-bb2b-a92d4c334a50)\n\n1. Launch the Android Emulator from the command line\n\n    Launch the emulator from the command line, not using the Android Studio UI,\n    with the `-grpc 8554` flag which is needed communication with accessibility\n    forwarding app.\n\n    ```bash\n    # Typically it's located in ~\u002FAndroid\u002FSdk\u002Femulator\u002Femulator or\n    # ~\u002FLibrary\u002FAndroid\u002Fsdk\u002Femulator\u002Femulator\n    EMULATOR_NAME=AndroidWorldAvd # From previous step\n    ~\u002FLibrary\u002FAndroid\u002Fsdk\u002Femulator\u002Femulator -avd $EMULATOR_NAME -no-snapshot -grpc 8554\n    ```\n\n1. [Optional] It's recommended to use `conda`, which you can download [here](https:\u002F\u002Fdocs.anaconda.com\u002Ffree\u002Fminiconda\u002Fminiconda-install\u002F).\n\n    ```\n    conda create -n android_world python=3.11.8\n    conda activate android_world\n    ```\n\n1. Install AndroidWorld. *Note: Python 3.11 or above is required.*\n\n    ```python\n    git clone https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world.git\n    cd .\u002Fandroid_world\n    pip install -r requirements.txt\n    python setup.py install\n    ```\n\n1. Add model provider APIs as environment variables.\n\n    ```bash\n    # Add to .bashrc.\n    export OPENAI_API_KEY=your-key\n    export GCP_API_KEY=your-key\n    ```\n\n1. Install `ffmpeg`, if not already installed.\n\n    ```bash\n    # Linux (Ubuntu\u002FDebian)\n    # sudo apt update && sudo apt install ffmpeg\n\n    # macOS\n    brew install ffmpeg\n    ```\n\n## Quickstart\n\nRun the `minimal_task_runner.py` script to see the basic mechanics of\nAndroidWorld components. It initializes the environment, sets up a task, and\nruns the default agent, M3A, on it.\n```bash\npython minimal_task_runner.py --task=ContactsAddContact\n```\n\nIf you don't specify a task, a random task will be selected. *NOTE: If you want\nto try open-source apps, i.e. not included with Android OS, please run\n`--perform_emulator_setup` in the script below.*\n\n**Note on Model Cost:** The `minimal_task_runner.py` script uses a legacy model `gpt-4-turbo-2024-04-09` by default. This model can be expensive. For serious usage, you can switch to a more cost-effective model, by modifying the `model_name` in the script.\n\n## Docker Support (Experimental)\n\nAndroidWorld now offers Docker support. This allows you to run the Android\nenvironment and server within a Docker container, which can simplify setup and\nensure a consistent environment.\n\n**Note:** This feature is experimental and has not been extensively tested.\n\n1.  **Build the Docker image:**\n\n    Navigate to the root directory of the `android_world` repository and run:\n    ```bash\n    docker build -t android_world:latest .\n    ```\n\n2.  **Run the Docker container:**\n    ```bash\n    docker run --privileged -p 5000:5000 -it android_world:latest\n    ```\n    This will start the Android emulator and the FastAPI server inside the\n    container. The server will be accessible on `http:\u002F\u002Flocalhost:5000`.\n\n3.  **Interact with the environment:**\n    You can see the `scripts\u002Frun_suite_on_docker.py` script as an example client\n    to interact with the Android environment server running in Docker.\n\n### Note for Apple Silicon users\n\nThere are known [issues](https:\u002F\u002Fgithub.com\u002Famrsa1\u002FAndroid-Emulator-image\u002Fissues\u002F10) with installing the required package `emulator` on ARM chips (Apple Silicon). To get around this, if building images locally, you should build images for the AMD64\u002Fx86_64 instruction set, by running:\n```bash\ndocker buildx build --platform linux\u002Famd64 -t android-emulator:latest .\n```\n\nNote, running in a Docker container like this, on an Apple Silicon device will run quite slowly compared to running the Android\nDevice and Emulator natively (because you end up running an Android Emulator inside a Linux Emulator...).\n\n## Run the benchmark\n\nNote: **Task Step Limits Update**\nAs of 11\u002F18\u002F2024, the max_steps\u002Fstep_budget for each task in AndroidWorld have been updated to approximately **2x the human average completion time**. This adjustment ensures agents have sufficient time to complete tasks, while also reducing overhead of running thebenchmark. [Here](https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1KF-vY0Uy47o0mnursvs-HmS6hreU6U3rPrAjgEfjMK4\u002Fedit?usp=sharing) are the per-task updates.\n\n```bash\npython run.py \\\n  --suite_family=android_world \\\n  --agent_name=t3a_gpt4 \\\n  --perform_emulator_setup \\\n  --tasks=ContactsAddContact,ClockStopWatchRunning \\  # Optional: Just run on a subset.\n```\n\nThe first time you run this script, you must install the necessary apps and set\npermissions by specifying `--perform_emulator_setup`. This is a one-time setup.\nIt may take several minutes depending on the connection speed.\n\nAbove we specify the optional `--tasks` flag to run on a subset of tasks. Leave\nit empty to run on the entire AndroidWorld suite.\n\nThe `n_task_combinations` argument specifies how many parameter permutations to\nuse for each task. For example, for an SMS task, it would correspond to\ndifferent phone number\u002Fmessage combinations for each run.\n\nIf a run fails part-way through, you can resume it by re-running the script with\nthe `--checkpoint_dir` flag pointing to the output directory from the original\nrun.\n\n## Running MiniWoB++ tasks\n\nTo run the MiniWoB++ web-based tasks in AndroidWorld, simply set\n`--suite_family=miniwob` and `--perform_emulator_setup` in the command above.\n\nA key advantage of running MiniWoB++ tasks is that common input elements are\nrendered as native, commonly used Android UI widgets, rather than as HTML. Thus\nagents must learn to use universal widgets such as time- and date-pickers:\n\n\u003Cp align=\"center\">\n   \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-research_android_world_readme_0795f518f9f4.png\" style=\"width:30%\">\n\u003C\u002Fp>\n\n## Create your own agent\n\nIn addition to the agents we provide [here](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Ftree\u002Fmain\u002Fandroid_world\u002Fagents), you can also easily create your own agent and run the benchmark with it as follows.\n\n1. Create an agent class that inherits from [EnvironmentInteractingAgent](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F6e4feb00702735c9a7485f4ae714528a058cb2b7\u002Fandroid_world\u002Fagents\u002Fbase_agent.py#L39C1-L39C44) and implement the [step](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F6e4feb00702735c9a7485f4ae714528a058cb2b7\u002Fandroid_world\u002Fagents\u002Fbase_agent.py#L116) method.\nIn the current workflow, the agent tries to complete a task in a for loop. In each round, the [step](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F6e4feb00702735c9a7485f4ae714528a058cb2b7\u002Fandroid_world\u002Fagents\u002Fbase_agent.py#L116) method will be called and this is where you implement your agent's logic. A typical approach involves first gathering information like the current screenshot, the UI elements (like buttons, icons) through the AndroidEnv instance within the agent, selecting one of the [supported actions](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002Fmain\u002Fandroid_world\u002Fenv\u002Fjson_action.py), executing it through the AndroidEnv and returning an [AgentInteractionResult](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F6e4feb00702735c9a7485f4ae714528a058cb2b7\u002Fandroid_world\u002Fagents\u002Fbase_agent.py#L26). The `done` property on AgentInteractionResult should be set to true to indicate that the task is finished.\n\n2. Import your agent in [run.py](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002Fmain\u002Frun.py) and also add it into the [_get_agent](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F15471441ac306ff08bca87454b1b546ae81db7af\u002Frun.py#L147) method which takes in your agent's name and return an instance of it.\n\n3. Now you can run the benchmark with your new agent using the command above with the `agent_name` flag changed to your agent's name.\n\n## Adding new tasks\n\nPlease see [the guide](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002Fmain\u002Fdocs\u002Ftasks_guide.md) on adding new tasks to AndroidWorld.\n\n## Citation\n\nIf you use our environment or data, please cite our paper:\n\n```\n@misc{rawles2024androidworlddynamicbenchmarkingenvironment,\n      title={AndroidWorld: A Dynamic Benchmarking Environment for Autonomous Agents},\n      author={Christopher Rawles and Sarah Clinckemaillie and Yifan Chang and Jonathan Waltz and Gabrielle Lau and Marybeth Fair and Alice Li and William Bishop and Wei Li and Folawiyo Campbell-Ajala and Daniel Toyama and Robert Berry and Divya Tyamagundlu and Timothy Lillicrap and Oriana Riva},\n      year={2024},\n      eprint={2405.14573},\n      archivePrefix={arXiv},\n      primaryClass={cs.AI},\n      url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.14573},\n}\n```\n\n*This is not an officially supported Google product.*\n","# AndroidWorld\n\n\u003C!-- mdlint off(WHITESPACE_LINE_LENGTH) -->\n\n[![单元测试](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Factions\u002Fworkflows\u002Fpytest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Factions\u002Fworkflows\u002Fpytest.yml)\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fgoogle-research.github.io\u002Fandroid_world\u002F\">官网\u003C\u002Fa> •\n\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fpdf\u002F2405.14573\">论文\u003C\u002Fa> •\n\u003Ca href=\"https:\u002F\u002Fgoogle-research.github.io\u002Fandroid_world\u002Ftask_list.html\">任务列表\u003C\u002Fa> •\n\u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1cchzP9dlTZ3WXQTfYNhh3avxoLipqHN75v1Tb86uhHo\u002Fedit?gid=0#gid=0\">排行榜\u003C\u002Fa>\n\u003C\u002Fp>\n\n![概览](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-research_android_world_readme_7e9070507cbc.png)\n\n**AndroidWorld** 是一个用于构建和基准测试自主计算机控制智能体的环境。\n\n它运行在一个真实的 Android 模拟器上，包含一个高度可复现的基准测试，涵盖 20 个应用中的 116 个手工设计的任务。这些任务会根据随机生成的参数动态实例化，从而创造出数百万种独特的任务变体。\n\n除了内置任务外，AndroidWorld 还支持来自 [Liu 等人](http:\u002F\u002Farxiv.org\u002Fabs\u002F1802.08802) 的流行 Web 基准测试 MiniWoB++。\n\nAndroidWorld 的主要特性包括：\n\n* 📝 **20 个真实应用中的 116 个多样化任务**\n* 🎲 **动态任务实例化**，产生数百万种独特变体\n* 🏆 **稳定的奖励信号**，便于可靠评估\n* 🐳 **实验性 Docker 支持**，简化设置并确保环境一致性（自 2025 年 6 月 2 日起）\n* 🌐 **开放环境**，可访问数百万个 Android 应用和网站\n* 💾 **轻量级占用资源**（内存 2 GB，磁盘 8 GB）\n* 🔧 **可扩展设计**，方便添加新任务和基准测试\n* 🖥️ **与 MiniWoB++ 的集成**，支持基于 Web 的任务\n\n请访问我们的 [官网](https:\u002F\u002Fgoogle-research.github.io\u002Fandroid_world\u002F) 观看演示视频。\no\n\n## 安装\n\n1. 设置 Android 模拟器\n   1. 从 [这里](https:\u002F\u002Fdeveloper.android.com\u002Fstudio?gad_source=1&gclid=Cj0KCQjw3ZayBhDRARIsAPWzx8oLcadBD0vAq8xmUutaunLGSzhgEtLz4xVZ_SpV4G0xJazS7LxQkDsaAuveEALw_wcB&gclsrc=aw.ds) 下载 Android Studio\n   2. 按照说明创建一个 Android 虚拟设备 (AVD)。硬件选择 **Pixel 6**，系统镜像选择 **Tiramisu, API Level 33**，并将 AVD 名称设为 **AndroidWorldAvd**。[观看设置视频。](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fassets\u002F162379927\u002Fefc33980-8b36-44be-bb2b-a92d4c334a50)\n\n1. 通过命令行启动 Android 模拟器\n\n    请使用命令行而非 Android Studio 界面来启动模拟器，并添加 `-grpc 8554` 标志，以便与无障碍转发应用进行通信。\n\n    ```bash\n    # 通常位于 ~\u002FAndroid\u002FSdk\u002Femulator\u002Femulator 或\n    # ~\u002FLibrary\u002FAndroid\u002Fsdk\u002Femulator\u002Femulator\n    EMULATOR_NAME=AndroidWorldAvd # 上一步中设置的名称\n    ~\u002FLibrary\u002FAndroid\u002Fsdk\u002Femulator\u002Femulator -avd $EMULATOR_NAME -no-snapshot -grpc 8554\n    ```\n\n1. 【可选】建议使用 `conda`，您可以从 [这里](https:\u002F\u002Fdocs.anaconda.com\u002Ffree\u002Fminiconda\u002Fminiconda-install\u002F) 下载。\n\n    ```\n    conda create -n android_world python=3.11.8\n    conda activate android_world\n    ```\n\n1. 安装 AndroidWorld。*注意：需要 Python 3.11 或更高版本。*\n\n    ```python\n    git clone https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world.git\n    cd .\u002Fandroid_world\n    pip install -r requirements.txt\n    python setup.py install\n    ```\n\n1. 将模型提供商的 API 添加为环境变量。\n\n    ```bash\n    # 添加到 .bashrc 文件中。\n    export OPENAI_API_KEY=your-key\n    export GCP_API_KEY=your-key\n    ```\n\n1. 如果尚未安装，请安装 `ffmpeg`。\n\n    ```bash\n    # Linux (Ubuntu\u002FDebian)\n    # sudo apt update && sudo apt install ffmpeg\n\n    # macOS\n    brew install ffmpeg\n    ```\n\n## 快速入门\n\n运行 `minimal_task_runner.py` 脚本，以了解 AndroidWorld 各组件的基本机制。该脚本会初始化环境、设置任务，并在任务上运行默认智能体 M3A。\n```bash\npython minimal_task_runner.py --task=ContactsAddContact\n```\n\n如果您未指定任务，将随机选择一个任务。*注意：如果您想尝试非 Android 系统自带的开源应用，请在以下脚本中运行 `--perform_emulator_setup`。*\n\n**关于模型费用的说明：** `minimal_task_runner.py` 脚本默认使用旧版模型 `gpt-4-turbo-2024-04-09`。该模型可能较为昂贵。对于实际使用，您可以修改脚本中的 `model_name`，切换到更经济的模型。\n\n## Docker 支持（实验性）\n\nAndroidWorld 现已提供 Docker 支持。这使您能够在 Docker 容器内运行 Android 环境和服务器，从而简化设置并确保环境的一致性。\n\n**注意：** 此功能目前仍处于实验阶段，尚未经过全面测试。\n\n1. **构建 Docker 镜像：**\n\n    导航到 `android_world` 仓库的根目录并运行：\n    ```bash\n    docker build -t android_world:latest .\n    ```\n\n2. **运行 Docker 容器：**\n    ```bash\n    docker run --privileged -p 5000:5000 -it android_world:latest\n    ```\n    这将启动容器内的 Android 模拟器和 FastAPI 服务器。服务器可通过 `http:\u002F\u002Flocalhost:5000` 访问。\n\n3. **与环境交互：**\n    您可以参考 `scripts\u002Frun_suite_on_docker.py` 脚本，作为与 Docker 中运行的 Android 环境服务器交互的示例客户端。\n\n### 苹果芯片用户注意事项\n\n在 ARM 架构芯片（Apple Silicon）上安装所需的 `emulator` 包时，存在已知的 [问题](https:\u002F\u002Fgithub.com\u002Famrsa1\u002FAndroid-Emulator-image\u002Fissues\u002F10)。为解决此问题，在本地构建镜像时，应针对 AMD64\u002Fx86_64 指令集构建镜像，方法如下：\n```bash\ndocker buildx build --platform linux\u002Famd64 -t android-emulator:latest .\n```\n\n请注意，在 Apple Silicon 设备上以这种方式运行 Docker 容器，速度会比原生运行 Android 设备和模拟器慢得多（因为实际上是 Linux 模拟器中再运行 Android 模拟器……）。\n\n## 运行基准测试\n\n注意：**任务步骤限制更新**\n自2024年11月18日起，AndroidWorld中每项任务的`max_steps\u002Fstep_budget`已更新为大约是**人类平均完成时间的2倍**。这一调整确保智能体有足够的时间完成任务，同时也减少了运行基准测试的开销。[此处](https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1KF-vY0Uy47o0mnursvs-HmS6hreU6U3rPrAjgEfjMK4\u002Fedit?usp=sharing)提供了各任务的具体更新信息。\n\n```bash\npython run.py \\\n  --suite_family=android_world \\\n  --agent_name=t3a_gpt4 \\\n  --perform_emulator_setup \\\n  --tasks=ContactsAddContact,ClockStopWatchRunning \\  # 可选：仅在子集上运行。\n```\n\n首次运行此脚本时，必须通过指定`--perform_emulator_setup`来安装必要的应用并设置权限。这是一次性设置，可能需要几分钟时间，具体取决于网络速度。\n\n上述命令中我们指定了可选的`--tasks`标志，以便在部分任务上运行。若留空，则将在整个AndroidWorld套件上运行。\n\n`n_task_combinations`参数指定了每个任务要使用的参数组合数量。例如，对于短信任务，它将对应于每次运行中不同的电话号码和消息组合。\n\n如果运行中途失败，可以通过重新运行脚本，并使用`--checkpoint_dir`标志指向原始运行的输出目录，从而从中断处继续。\n\n## 运行MiniWoB++任务\n\n要在AndroidWorld中运行基于Web的MiniWoB++任务，只需在上述命令中设置`--suite_family=miniwob`和`--perform_emulator_setup`即可。\n\n运行MiniWoB++任务的一个重要优势在于，常见的输入元素会被渲染为原生、常用的Android UI控件，而不是HTML形式。因此，智能体必须学会使用诸如时间和日期选择器等通用控件：\n\n\u003Cp align=\"center\">\n   \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-research_android_world_readme_0795f518f9f4.png\" style=\"width:30%\">\n\u003C\u002Fp>\n\n## 创建您自己的智能体\n\n除了我们在[这里](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Ftree\u002Fmain\u002Fandroid_world\u002Fagents)提供的智能体外，您也可以轻松创建自己的智能体，并按照以下步骤使用它运行基准测试。\n\n1. 创建一个继承自[EnvironmentInteractingAgent](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F6e4feb00702735c9a7485f4ae714528a058cb2b7\u002Fandroid_world\u002Fagents\u002Fbase_agent.py#L39C1-L39C44)的智能体类，并实现[step](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F6e4feb00702735c9a7485f4ae714528a058cb2b7\u002Fandroid_world\u002Fagents\u002Fbase_agent.py#L116)方法。在当前的工作流程中，智能体会尝试在一个for循环中完成任务。在每一回合中，都会调用[step](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F6e4feb00702735c9a7485f4ae714528a058cb2b7\u002Fandroid_world\u002Fagents\u002Fbase_agent.py#L116)方法，而您的智能体逻辑就在这里实现。典型的做法是首先通过智能体内的AndroidEnv实例获取当前屏幕截图、UI元素（如按钮、图标）等信息，然后从[支持的操作](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002Fmain\u002Fandroid_world\u002Fenv\u002Fjson_action.py)中选择一项，通过AndroidEnv执行，并返回一个[AgentInteractionResult](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F6e4feb00702735c9a7485f4ae714528a058cb2b7\u002Fandroid_world\u002Fagents\u002Fbase_agent.py#L26)。应将AgentInteractionResult中的`done`属性设置为true，以表示任务已完成。\n\n2. 在[run.py](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002Fmain\u002Frun.py)中导入您的智能体，并将其添加到[_get_agent](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002F15471441ac306ff08bca87454b1b546ae81db7af\u002Frun.py#L147)方法中，该方法接收您的智能体名称并返回其实例。\n\n3. 现在，您可以使用上述命令，并将`agent_name`标志更改为您的智能体名称，来运行包含新智能体的基准测试。\n\n## 添加新任务\n\n请参阅[指南](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fblob\u002Fmain\u002Fdocs\u002Ftasks_guide.md)，了解如何向AndroidWorld中添加新任务。\n\n## 引用\n如果您使用我们的环境或数据，请引用我们的论文：\n\n```\n@misc{rawles2024androidworlddynamicbenchmarkingenvironment,\n      title={AndroidWorld: A Dynamic Benchmarking Environment for Autonomous Agents},\n      author={Christopher Rawles and Sarah Clinckemaillie and Yifan Chang and Jonathan Waltz and Gabrielle Lau and Marybeth Fair and Alice Li and William Bishop and Wei Li and Folawiyo Campbell-Ajala and Daniel Toyama and Robert Berry and Divya Tyamagundlu and Timothy Lillicrap and Oriana Riva},\n      year={2024},\n      eprint={2405.14573},\n      archivePrefix={arXiv},\n      primaryClass={cs.AI},\n      url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.14573},\n}\n```\n\n*本产品并非Google官方支持的产品。*","# AndroidWorld 快速上手指南\n\nAndroidWorld 是一个用于构建和基准测试自主计算机控制代理的环境。它运行在真实的 Android 模拟器上，提供涵盖 20 个真实应用的 116 个手工任务，并支持动态生成数百万种任务变体。\n\n## 环境准备\n\n在开始之前，请确保满足以下系统要求和前置依赖：\n\n*   **操作系统**: Linux, macOS (Apple Silicon 用户需注意 Docker 部分说明) 或 Windows (需配置 WSL2)。\n*   **Python**: 版本 3.11 或更高。\n*   **Android Studio**: 用于安装 Android 模拟器。\n*   **FFmpeg**: 用于视频录制和处理。\n*   **API Keys**: 需要 OpenAI 或 Google Cloud Platform (GCP) 的 API 密钥以运行大模型代理。\n*   **推荐工具**: 建议使用 `conda` 管理 Python 环境。\n\n## 安装步骤\n\n### 1. 设置 Android 模拟器\n\n1.  下载并安装 [Android Studio](https:\u002F\u002Fdeveloper.android.com\u002Fstudio)。\n2.  创建 Android 虚拟设备 (AVD)，配置如下：\n    *   **硬件 (Hardware)**: 选择 **Pixel 6**。\n    *   **系统镜像 (System Image)**: 选择 **Tiramisu, API Level 33**。\n    *   **AVD 名称**: 必须命名为 **`AndroidWorldAvd`**。\n\n### 2. 启动模拟器\n\n**注意**：必须通过命令行启动模拟器，并添加 `-grpc 8554` 参数，以便与辅助功能转发应用通信。请勿直接使用 Android Studio 界面启动。\n\n```bash\n# 路径可能因系统而异，通常在 ~\u002FAndroid\u002FSdk\u002Femulator\u002Femulator 或 ~\u002FLibrary\u002FAndroid\u002Fsdk\u002Femulator\u002Femulator\nEMULATOR_NAME=AndroidWorldAvd\n~\u002FLibrary\u002FAndroid\u002Fsdk\u002Femulator\u002Femulator -avd $EMULATOR_NAME -no-snapshot -grpc 8554\n```\n\n### 3. 创建 Python 环境 (推荐)\n\n```bash\nconda create -n android_world python=3.11.8\nconda activate android_world\n```\n\n### 4. 安装 AndroidWorld\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world.git\ncd .\u002Fandroid_world\npip install -r requirements.txt\npython setup.py install\n```\n\n### 5. 配置 API 密钥\n\n将您的模型提供商 API 密钥添加到环境变量中（例如添加到 `~\u002F.bashrc` 或 `~\u002F.zshrc`）：\n\n```bash\nexport OPENAI_API_KEY=your-key\nexport GCP_API_KEY=your-key\n```\n\n### 6. 安装 FFmpeg\n\n如果尚未安装，请根据系统执行以下命令：\n\n```bash\n# Linux (Ubuntu\u002FDebian)\nsudo apt update && sudo apt install ffmpeg\n\n# macOS\nbrew install ffmpeg\n```\n\n## 基本使用\n\n安装完成后，您可以运行 `minimal_task_runner.py` 脚本来体验 AndroidWorld 的基本流程。该脚本将初始化环境、设置任务并运行默认的 M3A 代理。\n\n**运行单个任务示例：**\n\n```bash\npython minimal_task_runner.py --task=ContactsAddContact\n```\n\n*   如果不指定 `--task` 参数，系统将随机选择一个任务。\n*   **首次运行提示**：如果您想尝试非 Android 系统自带的开源应用，请在运行脚本时添加 `--perform_emulator_setup` 标志。这将一次性安装必要的应用并设置权限（耗时取决于网络速度）。\n\n**关于模型成本：**\n默认脚本使用 `gpt-4-turbo-2024-04-09` 模型，成本较高。如需长期使用，建议修改脚本中的 `model_name` 参数以切换至更具成本效益的模型。\n\n---\n\n### 进阶：运行完整基准测试\n\n要运行完整的基准测试套件，请使用 `run.py`：\n\n```bash\npython run.py \\\n  --suite_family=android_world \\\n  --agent_name=t3a_gpt4 \\\n  --perform_emulator_setup \\\n  --tasks=ContactsAddContact,ClockStopWatchRunning\n```\n\n*   `--tasks`: 可选，指定要运行的任务子集。留空则运行全部 116 个任务。\n*   `--perform_emulator_setup`: 首次运行时必须添加，用于环境初始化。\n*   若运行中断，可通过添加 `--checkpoint_dir` 指向原输出目录来恢复运行。\n\n### 进阶：自定义代理\n\n您可以创建自己的代理类，继承自 `EnvironmentInteractingAgent` 并实现 `step` 方法，然后在 `run.py` 中注册即可参与基准测试。具体代码结构请参考项目源码中的 `android_world\u002Fagents` 目录。","某大型金融科技公司的 QA 团队正致力于验证其新版 Android 银行 App 在复杂用户操作下的稳定性，需要覆盖数百万种潜在的交互路径。\n\n### 没有 android_world 时\n- **测试场景单一僵化**：传统自动化脚本只能执行预设的固定步骤，无法模拟真实用户随机输入金额、选择不同联系人等动态变化，导致大量边缘情况漏测。\n- **环境搭建与维护昂贵**：为复现特定 Bug，工程师需手动配置多台物理机或模拟器，状态难以重置，每次回归测试前需耗费数小时清理数据。\n- **评估标准主观模糊**：缺乏统一的奖励信号机制，判断 Agent 是否真正“完成任务”往往依赖人工肉眼检查截图，效率低下且容易误判。\n- **扩展新任务成本高**：若要增加一个新的业务流程测试（如“跨境转账”），需重新编写大量底层驱动代码，开发周期长达数周。\n\n### 使用 android_world 后\n- **动态生成海量变体**：利用其动态实例化功能，基于 116 个基础任务瞬间生成数百万种参数随机的独特测试用例（如随机收款人、不同转账额度），全面覆盖边界条件。\n- **一键重置纯净环境**：依托轻量级 Docker 支持和模拟器集成，每次任务结束后自动恢复初始状态，确保百万级测试在一致的环境中高效运行。\n- **量化可靠的评估体系**：内置持久的奖励信号机制，自动精准判定任务成败，无需人工干预即可输出客观的基准测试报告。\n- **灵活扩展业务场景**：借助其可扩展设计，测试人员只需定义少量逻辑即可快速添加新的银行业务任务，将新场景上线时间从数周缩短至数小时。\n\nandroid_world 通过将静态的脚本测试升级为动态、可量化的自主智能体基准测试，彻底解决了移动端复杂交互场景下测试覆盖率低与评估难的痛点。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-research_android_world_53fdfe50.png","google-research","Google Research","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgoogle-research_c23b2adf.png","",null,"https:\u002F\u002Fresearch.google","https:\u002F\u002Fgithub.com\u002Fgoogle-research",[83,87,91,95,99,103,107,110],{"name":84,"color":85,"percentage":86},"Python","#3572A5",39.8,{"name":88,"color":89,"percentage":90},"HTML","#e34c26",29.8,{"name":92,"color":93,"percentage":94},"JavaScript","#f1e05a",26,{"name":96,"color":97,"percentage":98},"Kotlin","#A97BFF",2.6,{"name":100,"color":101,"percentage":102},"CSS","#663399",1.3,{"name":104,"color":105,"percentage":106},"Starlark","#76d275",0.2,{"name":108,"color":109,"percentage":106},"Shell","#89e051",{"name":111,"color":112,"percentage":113},"Dockerfile","#384d54",0.1,704,144,"2026-04-04T13:18:39","Apache-2.0",4,"Linux, macOS","未说明","最低 2GB (官方标称轻量级足迹)，推荐 8GB+ (运行 Android 模拟器及多任务)",{"notes":123,"python":124,"dependencies":125},"1. 必须安装 Android Studio 并创建特定的 Android 虚拟设备 (AVD)：Pixel 6, Android 13 (API 33), 名称为 'AndroidWorldAvd'。\n2. 必须通过命令行启动模拟器，并添加 '-grpc 8554' 参数以支持无障碍功能转发。\n3. Apple Silicon (M1\u002FM2\u002FM3) 用户在使用 Docker 时需注意性能极慢（双重模拟），且构建镜像时需指定 '--platform linux\u002Famd64'。\n4. 需要配置 OPENAI_API_KEY 或 GCP_API_KEY 环境变量。\n5. 首次运行基准测试需使用 '--perform_emulator_setup' 参数进行一次性环境设置（安装应用和权限）。","3.11+",[126,127],"requirements.txt 中定义的依赖","ffmpeg",[15,46],"2026-03-27T02:49:30.150509","2026-04-06T10:05:56.120029",[132,137,142,147,152,157,161],{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},18399,"AndroidWorld 是否支持在物理 Android 设备上运行，而不仅仅是模拟器？","是的，可以在物理设备上运行。主要挑战在于需要在设备和主机之间设置 gRPC 桥接以访问无障碍树（a11y tree）。虽然具体配置细节可能因环境而异，但整体架构与模拟器类似，理论上可以作为替代方案使用。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fissues\u002F121",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},18400,"生成的界面信息超出图像范围导致任务无法完成，这个问题解决了吗？","该问题已通过 PR #220 修复并合并。如果您遇到生成的信息超出图像边界导致任务评估失败的情况，请拉取最新代码或应用该补丁即可解决。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fissues\u002F215",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},18401,"运行 'MarkorTranscribeVideo' 任务时出现 FileNotFoundError 错误，该任务有效吗？","该错误通常是因为本地临时文件（如 \u002Ftmp\u002FZwUN_moment_70_.mp4）不存在导致的。对于评估中出现的 NaN 分数，维护者建议检查 pickle 文件中的 'exception_info' 字段以获取具体异常信息。此外，部分任务（如 VLC 相关任务）可能因应用加载状态卡住而导致代理判断失败，这属于已知的环境稳定性问题，可能需要手动监控或增加超时机制。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fissues\u002F59",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},18402,"如何在 AndroidWorld 中安装新应用（如 Wikipedia）并创建自定义测试任务？","安装新应用通常需要修改 `task_metadata.json` 配置文件。如果在设置脚本中遇到类似 'Target text \"SMS Messenger\" not found' 的错误，请使用 PR #168 中的修复版本并在全新的模拟器上重新运行设置脚本。对于权限问题，可以尝试直接将 APK 拖入模拟器进行安装，或者参考官方提供的完整设置模拟器快照。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fissues\u002F157",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},18403,"AndroidWorld 项目是否支持 Windows 操作系统？","是的，该项目现在支持 Windows 环境。这得益于社区贡献者 @NingLi670 的代码修改，使得原本仅支持 Linux 和 macOS 的安装流程也能在 Windows 上运行。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fandroid_world\u002Fissues\u002F117",{"id":158,"question_zh":159,"answer_zh":160,"source_url":146},18404,"在评估过程中遇到内存崩溃或 ADB 操作卡死怎么办？","内存崩溃通常发生在加载某个任务的 pickle 检查点时，建议将任务分批运行（split runs）以避免一次性加载过多数据。对于 ADB 操作卡死的问题，可以尝试增加超时时间（timeout），虽然根本原因的排查正在进行中，但增加超时是目前有效的临时解决方案。",{"id":162,"question_zh":163,"answer_zh":164,"source_url":136},18405,"UIAutomator 可以替代 A11y_Forwarder 作为 UI 树来源用于 AndroidWorld 评估吗？","两者提供的信息大体相似，可以作为替代方案，但可能存在细微差别。Android 提供的无障碍信息非常多，但并非全部转发给 AndroidEnv。如果需要确认是否有关键数据被忽略，可以查看 AccessibilityTreeCreator.kt 源码了解提取的数据细节。目前尚无证据表明切换会严重影响评估结果，但需注意潜在的信息差异。",[]]