智能代理
自动点外卖、AI游戏代打……随着大模型技术的迅猛发展,基于 GUI(图形用户界面)的 Agent 越来越受到人们的关注,其能力范围也在不断扩展。
现有的 GUI Agent 大多是为 PC 环境设计,而移动端受限于算力、存储、功耗、实时性等诸多因素影响,对 GUI Agent 的实现和模型的能力提出了诸多挑战。
为了推动这一领域的技术进步和落地,我们特别举办本次智能代理赛题,希望汇聚各方智慧,共同探索更高效的解决方案,为移动端 GUI Agent 的发展和落地注入新动能。
设计一个 GUI Agent,基于多模态大模型,完成用户交代的多种任务。
参考给定的基础 Agent 代码,在遵循接口协议的前提下,设计属于你自己的更优秀的 Agent 框架,让模型发挥出更强大的实力。
- 用户指令。例如:我明晚要去北京出差,帮我定一个北京离站附近的酒店
- 手机截图。例如:努比亚 Z80 Ultra 手机的桌面截图
Agent 需要以合理的方式调用模型,根据用户指令和当前截图,给出下一步操作的动作和参数。 模型输出的原始格式、语言等,均不做限制。
参赛选手需要在Agent代码中,从模型输出的原始内容里提取出以下结果:
- action,表示当前任务在本次步骤需要执行的操作类型
- parameters,表示操作类型对应的具体参数
action 和 parameters 的合法值及格式要求如下表所示。
| action | 动作类型 | 参数 | 模型输出示例 |
|---|---|---|---|
| CLICK | 点击 | point | CLICK:[[100, 200]] |
| TYPE | 输入 | content | TYPE:["内容"] |
| SCROLL | 滚动 | start_point、end_point | SCROLL:[[100, 200], [200, 300]] |
| OPEN | 打开应用 | app_name | OPEN:["中兴管家"] |
| COMPLETE | 完成 | content | COMPLETE:[] |
Python(使用 3.10.12 版本)
本赛题最终测试的数据为不同场景下的安卓手机截图,包括不同型号手机上、不同App内、不同界面的截图。
为了便于参赛选手的理解和调试,主办方会提供基础 Agent 代码、评测代码和一部分测试用例。
评分过程:主办方运行评测代码,调用参赛者提交的 Agent 执行任务,在执行给定任务指令的过程中,检查每一步操作及其参数的正确性,如果能成功执行到完成状态,则本条任务计为1分,否则计为0分。
最终晋级,计算公式为:
总得分 = 打榜得分 60% + Agent代码 20% + 设计方案及创新 20%
选手最终提交一个压缩包,解压后所有文件的总大小不超过 20 MB。
压缩包的结构如下。
submission.zip
├── doc/
│ └── 算法设计说明文档
└── src/
├── agent_base.py # Agent 基类代码【来自主办方提供的代码,禁止修改】
├── agent.py # Agent 派生类代码【选手需要实现,必选】
├── utils/ # Agent 依赖的辅助代码【选手可以自由修改,可选】
└── requirements.txt # 需要安装的 python 库【选手使用的环境,必选】
- 为了减少代码行为可能存在的不一致性,选手需要使用Python 3.10.12环境。
- 主办方提供的Agent代码中的逻辑仅供参考,在满足赛题限制的前提下,鼓励选手扩展、改进和重构。
- Agent输出的坐标都是相对坐标,即将图片宽度归一化至1000后,对应点的坐标。评测脚本中会将其转换为实际图像中的坐标。
- 提交代码前,请先在本地运行主办方提供的评测脚本,确保接口符合规范后再提交。 export PATH="$HOME/.local/bin:$PATH" && source /Users/lzj/proj/moon_zh/.venv/bin/activate && python --version && uv pip install openai pillow numpy pandas openpyxl tqdm matplotlib 2>&1