Skip to content

lwtcoding/AutoGLM-Autojs6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoGLM-AutoJS6

基于 AutoJS6 和无障碍服务的 AI 手机自动化助手,复刻自 Open-AutoGLM 项目。

项目简介

AutoGLM-AutoJS6 是 Open-AutoGLM 的 AutoJS6 版本实现,使用 Android 无障碍服务替代 ADB 进行手机自动化操作。通过 AI 视觉语言模型理解屏幕内容,自动执行用户指定的任务。

主要特性

  • 无需 ADB: 使用无障碍服务,无需 PC 连接
  • 本地运行: 直接在 Android 设备上运行
  • AI 驱动: 使用视觉语言模型进行智能决策
  • 图形界面: 提供友好的 UI 界面
  • 多种操作: 支持点击、滑动、输入、启动应用等
  • 任务编排: 自动化复杂的多步骤任务

与原项目的区别

特性 Open-AutoGLM AutoGLM-AutoJS6
运行环境 PC (Python) Android (JavaScript)
连接方式 USB/WiFi ADB 本地运行
权限要求 USB 调试 无障碍服务 + 截图权限
用户界面 命令行 图形界面
便携性 需要 PC 仅需手机

系统截图


首页

设置页

系统要求

  • Android 5.0+ (API Level 21+)
  • AutoJS6 已安装
  • 无障碍服务权限
  • 截图权限
  • 网络连接 (访问模型 API)

安装步骤

1. 安装 AutoJS6

AutoJS6 Releases 下载并安装最新版本。

2. 导入项目

  1. AutoGLM-AutoJS6 文件夹复制到手机存储
  2. 在 AutoJS6 中打开项目文件夹
  3. 运行 main.js

3. 授予权限

首次运行时需要授予以下权限:

  1. 无障碍服务: 设置 → 无障碍 → AutoJS6 → 开启
  2. 截图权限: 运行时会自动请求,点击"立即开始"

4. 配置 API

点击"设置"按钮,配置模型 API:

  • API 地址: 模型服务的 URL (例如: https://open.bigmodel.cn/api/paas/v4)
  • 模型名称: 使用的模型名称 (默认: autoglm-phone)
  • API Key: API 密钥 (默认: EMPTY)
  • 语言: 系统提示词语言 (中文/English)

使用方法

基本使用

  1. 打开 AutoGLM-AutoJS6 应用
  2. 在任务输入框中输入任务描述,例如:
    • "打开微信"
    • "打开淘宝,搜索手机壳"
    • "打开抖音,点赞前三个视频"
  3. 点击"执行任务"按钮
  4. 观察执行过程和日志输出

任务示例

# 简单任务
打开微信

# 多步骤任务
打开淘宝,搜索"手机壳",点击第一个商品

# 复杂任务
打开小红书,搜索"留学",点赞前五个笔记,并关注作者

停止任务

如果需要中途停止任务,点击"停止"按钮。

项目结构

AutoGLM-AutoJS6/
├── project.json              # AutoJS6 项目配置
├── main.js                   # 主入口
├── ui/
│   ├── main_ui.js           # 主界面
│   └── settings.js          # 设置界面
├── core/
│   ├── agent.js             # PhoneAgent 核心
│   ├── model_client.js      # 模型客户端
│   ├── action_handler.js    # 动作处理器
│   └── message_builder.js   # 消息构建器
├── accessibility/
│   ├── screen_capture.js    # 截图功能
│   ├── device_control.js    # 设备控制
│   ├── text_input.js        # 文本输入
│   └── app_detector.js      # 应用检测
├── config/
│   ├── apps.js              # 应用包名映射
│   ├── timing.js            # 时间配置
│   ├── system_prompt.js     # 系统提示词
│   └── storage.js           # 本地存储
└── utils/
    ├── http_client.js       # HTTP 客户端
    └── logger.js            # 日志工具

核心模块说明

PhoneAgent (core/agent.js)

任务编排核心,负责:

  • 任务循环控制
  • 截图获取
  • 模型请求
  • 动作执行

ModelClient (core/model_client.js)

模型 API 客户端,负责:

  • 调用 OpenAI 兼容 API
  • 解析模型响应
  • 提取 thinking 和 action

ActionHandler (core/action_handler.js)

动作处理器,支持以下动作:

  • launch: 启动应用
  • tap: 点击
  • double_tap: 双击
  • long_press: 长按
  • type: 输入文本
  • swipe: 滑动
  • back: 返回键
  • home: 主页键
  • wait: 等待
  • finish: 完成任务

无障碍服务层

  • screen_capture.js: 使用 images.captureScreen() 截图
  • device_control.js: 使用 click(), swipe() 等进行操作
  • text_input.js: 支持 setText(), 剪贴板, input() 三种输入方式
  • app_detector.js: 使用 currentPackage() 检测当前应用

配置说明

模型 API 配置

支持任何 OpenAI 兼容的 API:

{
  baseUrl: "https://open.bigmodel.cn/api/paas/v4",
  modelName: "autoglm-phone",
  apiKey: "your-api-key",
  lang: "cn"  // 或 "en"
}

Agent 配置

{
  maxSteps: 100,      // 最大执行步数
  verbose: true       // 是否显示详细日志
}

常见问题

1. 无法截图

问题: 提示"请授予截图权限"

解决方案:

  • 确保已授予截图权限
  • 某些设备可能需要在设置中手动开启
  • 重启 AutoJS6 应用

2. 无法点击

问题: 动作执行但没有效果

解决方案:

  • 检查无障碍服务是否开启
  • 某些应用可能阻止无障碍服务
  • 尝试手动点击确认坐标是否正确

3. 无法输入文本

问题: 文本输入失败

解决方案:

  • 检查输入框是否获得焦点
  • 尝试先点击输入框
  • 某些应用的输入框可能需要特殊处理

4. API 连接失败

问题: 提示"API 请求失败"

解决方案:

  • 检查 API 地址是否正确
  • 尝试使用 curl 测试 API 连接

5. 应用未识别

问题: 当前应用显示为包名而非应用名

解决方案:

  • config/apps.js 中添加应用包名映射
  • 格式: "应用名": "包名"

开发指南

添加新的应用支持

编辑 config/apps.js:

const APP_PACKAGES = {
  // ... 现有应用
  "新应用名": "com.example.newapp"
};

自定义系统提示词

编辑 config/system_prompt.js:

const SYSTEM_PROMPTS = {
  cn: `你的自定义提示词...`,
  en: `Your custom prompt...`
};

调整时间延迟

编辑 config/timing.js:

const TIMING_CONFIG = {
  device: {
    default_tap_delay: 0.5,  // 点击后延迟
    // ... 其他配置
  }
};

技术限制

  1. 系统界面限制: 某些系统界面(如锁屏、设置)可能无法访问
  2. 应用兼容性: 部分应用可能阻止无障碍服务
  3. 性能差异: 相比 ADB 方案,性能可能略低
  4. 权限要求: 需要用户手动授予多项权限

贡献指南

欢迎提交 Issue 和 Pull Request!

开发环境

  • AutoJS6 最新版
  • Android 测试设备
  • 模型 API 服务

提交规范

  • 代码风格: 遵循项目现有风格
  • 注释: 使用 JSDoc 格式
  • 测试: 在真机上测试功能

许可证

本项目基于 Apache 2.0 许可证开源。

致谢

联系方式


注意: 本项目仅供学习和研究使用,请遵守相关法律法规和应用服务条款。

About

基于Autojs无障碍服务的Open-AutoGLM实现版本,Android收集可直接运行,无需PC,可打包APP使用。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors