Skip to main content

PageEyes Agent 是一个轻量级 UI Agent,通过自然语言指令驱动,无需编写脚本既可实现多个平台的UI自动化任务。

Project description

PageEyes Agent

License Version


Documentation: PageEyes Agent


PageEyes Agent 是基于 Pydantic AI 框架开发的一个轻量级 UI Agent, 其中元素信息感知能力依靠 OmniParserV2 模型,整个 Agent 的优势在于不依赖视觉语言大模型, 即使小参数的 LLM 也能胜任路径规划能力,同时支持多平台(Web、Android、HarmonyOS、iOS),目前主要包含以下功能:

  1. 完全由自然语言指令驱动,无需编写脚本,既可实现自动化测试,UI巡检等任务
  2. 跨平台、跨端支持,在 Python 环境中安装 page-eyes 库和配置 OmniParser 服务后即可开始多个平台的自动化任务
  3. 支持多种大模型接入,包括DeepSeek、OpenAI、千问等,默认使用 DeepSeek V3 模型,后续会支持更多大模型接入
  4. 可通过自然语言进行断言,并生成详细的执行日志和报告,方便测试人员查看执行过程和结果

安装

您可以通过 pip 安装

pip install page-eyes

或者克隆项目源码安装

git clone https://github.com/tencentmusic/page-eyes-agent.git
cd page-eyes-agent
uv sync  # 安装依赖

快速开始

配置环境变量,可在项目根目录下创建一个 .env 文件,配置项可参考 .env.example

环境变量 默认值 说明
AGENT_MODEL openai:deepseek-chat 使用的AI模型,当前设置为 deepseek-chat
AGENT_DEBUG False 是否启用调试模式
BROWSER_HEADLESS False WebAgent 启动浏览器时是否使用无头模式
AGENT_MODEL_TYPE llm Agent 使用的模型类型,支持 llm 和 vlm
OMNI_BASE_URL http://127.0.0.1:8000 OmniParser API的服务端点, vlm 不需要配置该项
OPENAI_BASE_URL https://api.deepseek.com/v1 模型 API 的服务端点
OPENAI_API_KEY xxx-xxx-xxx 模型 API 所需的认证密钥
IOS_WDA_URL - iOS WebDriverAgent 服务地址(仅 iOS 自动化需要)

vlm 模型支持:glm-4.6v qwen3-vl-plus

如:AGENT_MODEL=openai:qwen3-vl-plus

使用腾讯云COS服务(与MinIO二选一),可选,不配置则会使用 base64 保存图片

环境变量 默认值 说明
COS_SECRET_ID - 腾讯云COS服务的Secret ID
COS_SECRET_KEY - 腾讯云COS服务的Secret Key
COS_ENDPOINT - 腾讯云COS服务的 endpoint
COS_BUCKET - 腾讯云COS服务的 bucket

使用MinIO服务(与腾讯云COS二选一),可选,不配置则会使用 base64 保存图片

环境变量 默认值 说明
MINIO_ENDPOINT - MinIO 端点 host:port
MINIO_ACCESS_KEY - 您在后台创建的 Access Key
MINIO_SECRET_KEY - 创建 Access Key 时会生成 SECRET_KEY
MINIO_BUCKET - 您在后台创建的 Bucket

详细部署参考

使用示例

根据需要操作的设备类型可以导入对应的 Agent 类

from page_eyes.agent import WebAgent, AndroidAgent, HarmonyAgent, IOSAgent

...
Agent Class 支持类型
WebAgent Web/H5浏览器操作,依赖 Playwright 和 Chrome
AndroidAgent Android 移动端操作,依赖 adb
HarmonyAgent 鸿蒙 Next 移动端操作,依赖 hdc
IOSAgent iOS 移动端操作,依赖 facebook-wda
import asyncio

from page_eyes.agent import WebAgent, AndroidAgent


async def main():
    # Web 端
    ui_agent = await WebAgent.create(simulate_device='iPhone 15 Pro')

    # 移动端
    # ui_agent = await AndroidAgent.create(serial='android-udid')

    report = await ui_agent.run("""
            - 打开 url "https://yobang.tencentmusic.com/chart/uni-chart/rankList/"
            - 点击"查找icon"
            - 在搜索输入框中输入"小美满"
            - 点击"小美满> "
            - 点击"日榜"
            """)


if __name__ == "__main__":
    asyncio.run(main())

更多示例请参考示例代码

贡献指南

  1. 检查现有 issues 或提交新 issue 来讨论功能想法或缺陷
  2. 在GitHub上Fork代码仓库,基于主分支创建修改分支(或从其创建新分支)
  3. 编写测试用例:通过测试验证缺陷已修复或新功能符合预期
  4. 添加更新日志:按规范提交更新日志
  5. 完善文档:优化文档(增强细节、提升可读性等)

如有需要,加入我们的交流群

Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

page_eyes-1.2.0.tar.gz (395.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

page_eyes-1.2.0-py3-none-any.whl (204.3 kB view details)

Uploaded Python 3

File details

Details for the file page_eyes-1.2.0.tar.gz.

File metadata

  • Download URL: page_eyes-1.2.0.tar.gz
  • Upload date:
  • Size: 395.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for page_eyes-1.2.0.tar.gz
Algorithm Hash digest
SHA256 8aa1e0f742f630a4dd4b934b4bba0e197b066b82dbd8db9d47965c15f4d0d972
MD5 4d2f4f2d4ca0fd2654194eac7e216990
BLAKE2b-256 1a8839f52fb9928d9f7fd0fc0c167f4a2197dae727ab84d81042991ee47b6776

See more details on using hashes here.

File details

Details for the file page_eyes-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: page_eyes-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 204.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for page_eyes-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3437685952dd0250ced5007e52a468bd20cc881b95db550f53bb7ce5039eb7f
MD5 50888a5d630a85f49ff05e20f2e1cb97
BLAKE2b-256 2fa6591a5d65c4b0a42174ee11515531eb6a95b44031407cff497857cdb6d822

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page