Skip to content

Latest commit

 

History

History
93 lines (58 loc) · 4.37 KB

File metadata and controls

93 lines (58 loc) · 4.37 KB

大赛(初赛打榜赛)

赛题方向

智能代理

赛题背景

自动点外卖、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 库【选手使用的环境,必选】

注意事项

  1. 为了减少代码行为可能存在的不一致性,选手需要使用Python 3.10.12环境。
  2. 主办方提供的Agent代码中的逻辑仅供参考,在满足赛题限制的前提下,鼓励选手扩展、改进和重构。
  3. Agent输出的坐标都是相对坐标,即将图片宽度归一化至1000后,对应点的坐标。评测脚本中会将其转换为实际图像中的坐标。
  4. 提交代码前,请先在本地运行主办方提供的评测脚本,确保接口符合规范后再提交。 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