Open-AutoGLM应用场景拓展:自动打卡机器人部署案例

Open-AutoGLM应用场景拓展:自动打卡机器人部署案例

1. 引言

1.1 技术背景与业务需求

在现代企业办公环境中,考勤打卡已成为日常管理的重要环节。然而,手动打卡不仅耗时,还容易因遗忘、网络延迟或通勤问题导致异常记录。尽管部分应用已支持Wi-Fi或地理位置自动识别,但其灵活性和兼容性仍有限。随着AI智能体技术的发展,基于视觉语言模型的自动化操作框架为解决这一痛点提供了全新思路。

Open-AutoGLM 是智谱开源的一款面向手机端的 AI Agent 框架,依托 AutoGLM-Phone 架构,能够通过多模态理解屏幕内容,并结合 ADB(Android Debug Bridge)实现对安卓设备的自动化控制。用户只需输入自然语言指令,如“打开企业微信完成上班打卡”,系统即可自动解析意图、识别界面元素、规划操作路径并执行点击流程,真正实现“零干预”自动化任务处理。

本篇文章将聚焦于 Open-AutoGLM 在自动打卡场景中的实际落地实践,详细介绍从环境搭建、设备连接到指令执行的完整部署流程,并分享关键配置建议与常见问题解决方案,帮助开发者快速构建属于自己的智能打卡机器人。

2. 核心架构与工作原理

2.1 系统组成概览

Phone Agent 基于 Open-AutoGLM 框架构建,整体系统由以下核心模块构成:

  • 视觉语言模型(VLM):负责解析手机屏幕截图,理解当前界面布局及语义信息。
  • 任务规划引擎:接收用户自然语言指令,结合屏幕状态进行意图识别与动作序列生成。
  • ADB 控制层:通过 Android Debug Bridge 实现对设备的点击、滑动、输入等物理操作。
  • 远程调试接口:支持 WiFi 连接下的远程设备控制,便于部署在服务器端统一管理。

该系统采用“云端推理 + 本地执行”的混合架构:视觉理解和决策逻辑运行在具备 GPU 的云服务器上,而设备控制则通过本地电脑或边缘设备完成,兼顾性能与安全性。

2.2 多模态感知与操作闭环

整个自动化流程遵循如下闭环机制:

  1. 屏幕采集:通过 adb exec-out screencap 获取当前手机屏幕图像。
  2. 视觉理解:将图像与用户指令一同送入 VLM 模型,输出结构化操作建议(如“点击坐标 (x=540, y=960)”)。
  3. 动作执行:调用 ADB 命令模拟触摸事件,完成点击、滑动或文本输入。
  4. 状态反馈:执行后重新截图,验证目标是否达成,若未成功则进入下一轮迭代。
  5. 人工接管机制:遇到登录、验证码等敏感操作时暂停自动化,提示用户介入。

这种“感知-决策-执行-反馈”的循环模式,使得系统具备较强的鲁棒性和适应能力,即使面对界面微调也能稳定运行。

3. 部署实践:构建自动打卡机器人

3.1 硬件与环境准备

要成功部署 Open-AutoGLM 打卡机器人,需满足以下基础条件:

类别要求
操作系统Windows 10+ 或 macOS Monterey 及以上版本
Python 版本3.10 或更高
安卓设备Android 7.0+ 的真实手机或模拟器
ADB 工具平台工具包 platform-tools 最新版
注意:推荐使用实体手机而非模拟器,因部分企业考勤应用会检测模拟器环境并限制功能。
ADB 环境配置(以 Windows 为例)
  1. 下载 Android SDK Platform Tools 并解压。
  2. 使用快捷键 Win + R 输入 sysdm.cpl,打开“系统属性”。
  3. 进入“高级”选项卡 → “环境变量” → 在“系统变量”中找到 Path
  4. 添加 ADB 解压目录路径(如 C:\platform-tools)。
  5. 打开命令行终端,执行: bash adb version 若返回版本号,则表示配置成功。

对于 macOS 用户,可在终端中临时添加路径:

export PATH=${PATH}:~/Downloads/platform-tools 

建议将其写入 .zshrc.bash_profile 文件以永久生效。

3.2 手机端设置

为确保 ADB 正常通信和输入控制,请按顺序完成以下设置:

  1. 开启开发者模式
    进入“设置” → “关于手机” → 连续点击“版本号”7次,直至提示“您已进入开发者模式”。
  2. 启用 USB 调试
    返回“设置”主菜单 → “开发者选项” → 开启“USB 调试”。
  3. 安装 ADB Keyboard 输入法
  4. 下载 ADB Keyboard APK 并安装。
  5. 进入“设置” → “语言与输入法” → “默认键盘” → 切换为“ADB Keyboard”。
  6. 测试方式:在任意输入框长按,选择“输入法” → “ADB Keyboard”。

此步骤至关重要,它允许系统通过 ADB 发送中文字符,避免因无法输入账号密码而导致流程中断。

3.3 部署控制端代码

在本地开发机上克隆并安装 Open-AutoGLM 控制端:

# 克隆仓库 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 安装依赖 pip install -r requirements.txt pip install -e . 
提示:建议在虚拟环境中操作,避免依赖冲突。可使用 python -m venv venv && source venv/bin/activate(macOS/Linux)或 venv\Scripts\activate(Windows)创建隔离环境。

3.4 设备连接方式

USB 连接(推荐用于调试)

使用数据线连接手机与电脑,执行:

adb devices 

预期输出示例:

List of devices attached 1234567890abcde device 

若显示 unauthorized,请检查手机是否弹出“允许USB调试?”对话框,并确认授权。

WiFi 远程连接(适用于无人值守运行)

首次需通过 USB 启用 TCP/IP 模式:

adb tcpip 5555 

断开 USB 后,通过局域网 IP 连接:

adb connect 192.168.x.x:5555 

可通过以下命令获取设备 IP 地址:

adb shell ip route | awk '{print $9}' 
优势:支持远程部署,适合将控制程序运行在家庭服务器或 NAS 上,实现全天候待命。

3.5 启动自动打卡任务

假设你的企业考勤应用为“企业微信”,打卡指令如下:

“打开企业微信,进入工作台,点击‘打卡’,完成上班打卡。”

执行命令行启动代理:

python main.py \ --device-id 1234567890abcde \ --base-url http://<cloud-server-ip>:8800/v1 \ --model "autoglm-phone-9b" \ "打开企业微信完成上班打卡" 

参数说明:

  • --device-id:来自 adb devices 输出的设备标识符。
  • --base-url:云服务器上运行的 vLLM 服务地址,需确保端口开放且防火墙放行。
  • --model:指定使用的模型名称,必须与服务端加载的一致。
  • 最终字符串:自然语言指令,应尽量具体明确。

系统将自动完成以下动作: 1. 启动企业微信 App; 2. 导航至“工作台”页面; 3. 查找“打卡”按钮并点击; 4. 检测是否已打卡,若未打卡则触发打卡动作; 5. 截图上传结果日志。

3.6 Python API 集成与远程管理

对于需要集成到更大系统的场景,可使用 Python API 进行编程化控制:

from phone_agent.adb import ADBConnection, list_devices # 创建连接管理器 conn = ADBConnection() # 连接远程设备 success, message = conn.connect("192.168.1.100:5555") print(f"连接状态: {message}") # 列出所有连接设备 devices = list_devices() for device in devices: print(f"{device.device_id} - {device.connection_type.value}") # 获取设备 IP 地址(用于后续连接) ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555") 

该接口可用于构建 Web 控制面板、定时任务调度器或与 CI/CD 系统集成,提升运维效率。

4. 实践优化与避坑指南

4.1 提高成功率的关键技巧

  1. 固定应用界面布局
    避免频繁更新应用或更换主题皮肤,防止元素位置变动影响识别准确率。
  2. 设置重试机制与超时控制
    在脚本中加入最大尝试次数(如3次)和单步超时时间(如30秒),防止无限等待。
  3. 定期清理缓存与重启设备
    长时间运行可能导致内存泄漏或 ADB 连接异常,建议每日定时重启手机。

增强指令描述清晰度
推荐格式:“打开[应用名],进入[二级页面],点击[按钮名]”。例如:

“打开钉钉,进入‘我的’页面,点击‘考勤打卡’组件,执行上班打卡。”

4.2 常见问题排查

问题现象可能原因解决方案
ADB 无法识别设备驱动未安装或 USB 权限拒绝更换数据线,重新授权;Windows 安装通用 ADB 驱动
模型响应缓慢或无输出显存不足或 max-model-len 设置过小检查 vLLM 启动参数,确保 --gpu-memory-utilization 0.9--max-model-len 4096
文字输入失败ADB Keyboard 未设为默认输入法进入设置手动切换,并测试发送文本
连接频繁断开WiFi 不稳定或设备休眠关闭手机自动锁屏,保持 Wi-Fi 始终连接
打卡失败但界面正常图像识别误判增加截图对比阈值,或添加显式等待条件
安全提醒:不建议在生产环境中完全关闭人工确认机制。对于涉及支付、身份验证的操作,务必保留人工审核环节。

5. 总结

5.1 核心价值回顾

本文详细介绍了如何利用 Open-AutoGLM 框架构建一个自动打卡机器人,涵盖从环境配置、设备连接到指令执行的全流程。该方案的核心优势在于:

  • 低门槛接入:无需逆向工程或修改 APK,仅依赖 ADB 和视觉识别即可实现自动化。
  • 自然语言驱动:用户无需编写代码,只需描述任务目标,AI 自动完成拆解与执行。
  • 跨应用通用性:适用于企业微信、钉钉、飞书等多种主流办公平台。
  • 可扩展性强:支持远程调试、API 集成与集群化部署,易于融入企业自动化体系。

5.2 应用前景展望

除了考勤打卡,该框架还可拓展至更多高频重复场景,例如:

  • 自动填写日报、周报;
  • 每日健康上报;
  • 社交媒体内容发布;
  • 移动端 UI 测试自动化。

随着视觉语言模型能力的持续进化,未来有望实现更复杂的多步骤任务编排,甚至支持跨设备协同操作。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 ZEEKLOG星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Read more

Cursor 2.2更新:可视化编辑器+Debug Mode,写前端的有福了

Cursor 2.2更新:可视化编辑器+Debug Mode,写前端的有福了

加我进AI讨论学习群,公众号右下角“联系方式” 文末有老金的 开源知识库地址·全免费 这两天Cursor连续放大招 12月10日,Cursor发布了2.2版本,主打Debug Mode。 12月11日,又发了个重磅更新:Browser可视化编辑器。 说实话,看到这个功能的时候,我愣了好几秒。 这不就是我之前一直想要的东西吗?点哪改哪,拖拽布局,AI直接改代码。 写前端的朋友,这波真的有福了。 可视化编辑器:点哪改哪 这是12月11日刚发布的功能,老金我觉得比Debug Mode还炸裂。 简单说就是:在Cursor里打开一个内置浏览器,显示你的网页,然后你可以直接在上面拖拽、点击、修改,AI自动帮你改代码。 拖拽式布局 以前改布局,你得: 1. 1. 打开浏览器看效果 2. 2. 切回代码改CSS/HTML 3. 3. 保存刷新看效果 4.

OpenClaw dashboard命令后,无法登录web控制面板(在systemd服务无法启动的一些虚拟机里会碰到)

OpenClaw dashboard命令后,无法登录web控制面板(在systemd服务无法启动的一些虚拟机里会碰到)

先上结论 执行OpenClaw dashboard命令后,无法登录web控制面板,是因为OpenClaw的gateway服务没有起来。原来小龙虾OpenClaw 的命令没有学明白,先弄清楚命令: openclaw onboard 是配置 openclaw dashboard是显示web控制面板登录信息 openclaw gateway --verbose 是启动网关 openclaw gateway start是启动网关服务 问题就是因为这台系统的systemd没有起作用,导致openclaw的gateway服务没有起来,所以控制面板无法登录。 OpenClaw status Overview ┌─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Item │ Value │ ├─────────────────┼────────────────────────────────────

MCP 教程:将 Figma 设计稿转化为前端代码

📋 MCP:将 Figma 设计稿转化为前端代码 🎯 概述 还在手动从设计稿提取样式、编写基础代码?试试 Trae IDE 的模型上下文协议(MCP)功能吧。通过使用 MCP Server - Figma AI Bridge,自动将你的 Figma 设计稿转换为整洁的前端代码,并生成相应的网页。简单高效,无需复杂配置,跟随文中的步骤操作,即可体验智能化的设计交付。让我们开始吧! 🚀 效果展示 使用 Trae IDE 的 Figma AI Bridge MCP Server 将设计稿转换为前端代码的效果展示: * 设计稿到代码的自动转换: 无需手动编写 HTML、CSS 代码 * 响应式布局: 自动生成适配不同屏幕尺寸的响应式代码 * 组件化结构: 智能识别设计中的组件,生成可复用的组件代码

Linux下libwebkit2gtk-4.1-0安装实战案例(从零实现)

Linux下 libwebkit2gtk-4.1-0 安装实战:从零搞定GTK 4应用的Web渲染引擎 你是否在开发一个基于 GTK 4 的桌面程序时,突然发现 webkit_web_view_new() 编译报错? 或者运行时提示“找不到 libwebkit2gtk-4.1.so.0 ”? 别急——这不是你的代码写错了,而是系统里缺了那个关键的 Web 渲染库: libwebkit2gtk-4.1-0 。 这玩意儿看起来只是个动态链接库,但它其实是现代 Linux 桌面应用中嵌入网页内容的“心脏”。无论是 OAuth 登录窗口、帮助文档展示,还是像 Epiphany 浏览器那样的完整 Web 客户端,都离不开它。 但问题来了:为什么这个包这么难装? 因为它依赖复杂、版本敏感、发行版支持参差不齐。Ubuntu