Android Bench 架构设计分析
概述
Android Bench 是一个用于在 Android 开发任务上对大语言模型 (LLM) 进行基准测试的框架。它评估 AI 模型理解移动代码库、生成准确补丁和解决 Android 特有工程问题的能力。
项目地址: https://github.com/android-bench/android-bench
核心设计理念
1. 任务驱动的基准测试
- 真实问题: 基于真实的 GitHub Issue 构建测试任务
- 可重现环境: 每次测试使用固定的代码库版本和 Docker 执行环境
- 可靠的测试套件: 测试必须在基础提交上失败,在应用修复补丁后通过
2. 两阶段评估流程
- 推理阶段 (Inference): Agent 读取问题描述,生成代码补丁
- 评估阶段 (Verifier): 应用补丁并运行测试来评分解决方案
3. 隔离的执行环境
- Docker 沙箱: 所有评估在隔离的 Docker 容器中运行
- 镜像缓存: 基于数据集配置构建任务特定的 Docker 镜像
- 可重现性: 固定的依赖版本和环境配置
4. 模块化架构
- CLI 层: 命令行工具
- 通用层: 配置、加载器、日志等基础设施
- ** Harness 层**: 推理和评估引擎
- 数据集层: 任务定义和测试数据
系统架构
+---------------------------------------------------------------------+
| CLI Layer (cli/) |
+---------------------------------------------------------------------+
| benchmark run_task agent verifier dataset results |
+---------------------------------------------------------------------+
|
v
+---------------------------------------------------------------------+
| Common Layer (common/) |
+---------------------------------------------------------------------+
| config.py loader.py logger.py run_config.py ui.py |
| storage/ models/ |
+---------------------------------------------------------------------+
|
+---------------+---------------+
v v
+-------------------------+ +-------------------------+
| Inference (harness/) | | Evaluation (harness/)|
+-------------------------+ +-------------------------+
| androidbench.py | | harness.py |
| androidbench_runner.py| | benchmark_worker.py |
| androidbench.yaml | | main.py |
+-------------------------+ +-------------------------+
| |
v v
+-------------------------+ +-------------------------+
| MiniSWE-Agent | | Docker Container |
| (LLM Interface) | | - Android SDK |
| LiteLLM | | - Gradle |
| | | - Test Suite |
+-------------------------+ +-------------------------+