用Open-AutoGLM做了个自动打卡机器人,省时省力
每天早上八点,闹钟还没响,手机屏幕已经自动亮起——它正打开企业微信,滑动到考勤页面,点击“上班打卡”,再截屏保存记录。整个过程不到23秒,而我还在被窝里翻了个身。这不是科幻电影的桥段,而是我用Open-AutoGLM搭出来的自动打卡机器人的真实日常。
它不写代码、不调API、不碰ADB命令行,我只对它说了一句话:“每天早上8:05,在企业微信里完成上班打卡并截图”。然后,它就记住了,执行了,持续了整整47天零失误。
这背后没有复杂的调度系统,没有定制化脚本,也没有反复调试的XPath定位——只有一套真正理解手机界面、能看懂按钮文字、会判断页面状态、还能在关键时刻喊你“来按一下验证码”的AI代理。今天,我就带你从零开始,亲手把这个“数字同事”请进你的生活。
1. 为什么是Open-AutoGLM?不是RPA,也不是传统自动化
1.1 它不是“录屏回放”,而是“看懂再操作”
传统手机自动化工具(比如Tasker或Auto.js)依赖固定坐标、ID或文本匹配。一旦APP更新按钮位置、改了文案、换了图标,整个流程就崩了。我试过用Auto.js写打卡脚本,结果企业微信一次小版本更新,打卡按钮从右下角挪到了左上角,脚本直接点了通讯录。
Open-AutoGLM完全不同。它通过视觉语言模型实时分析当前屏幕截图,像人一样“看”:
- 这是不是企业微信的首页?→ 看顶部状态栏和底部导航栏
- 这个蓝色方块是不是“工作台”?→ 识别文字+颜色+形状+相对位置
- “考勤打卡”按钮在哪?→ 不靠坐标,靠语义理解+区域聚焦
它不记路径,只认意图。你告诉它“打卡”,它自己找入口、找按钮、判断是否已打、决定下一步——这才是真·智能。
1.2 它不绕开安全机制,而是“合作式接管”
很多自动化工具遇到登录页、短信验证码就卡死。Open-AutoGLM的设计哲学很务实:AI不逞强,人在关键节点兜底。
- 当检测到输入框带“验证码”字样,它会暂停执行,弹出提示:“请手动输入验证码,完成后按回车继续”
- 当发现账号未登录,它会停止操作,截图发给你,并说:“检测到需登录,请处理后告诉我”
- 所有敏感操作(如删除聊天、转账、修改密码)默认禁用,必须显式授权
这种“人机协同”模式,既保障了安全性,又保留了自动化效率——它不是取代你,而是把你从重复劳动中解放出来,把注意力留给真正需要判断的事。
1.3 它跑在手机端,但“大脑”在云端,隐私不落地
你可能担心:它要 constantly 截图传到服务器?会不会泄露隐私?
Open-AutoGLM采用分层架构:
- 手机端只做三件事:截图、执行ADB指令(点击/滑动/输入)、上传当前截图
- 所有理解、规划、决策都在云端模型完成,返回的是具体操作指令(如“点击坐标(520, 840)”)
- 截图仅用于单次推理,不存储、不缓存、不上传历史记录
- 你甚至可以部署在私有服务器上,全程数据不出内网
我把它部署在自己家里的NAS上,用vLLM服务,公网IP都不暴露,完全可控。
2. 三步搭建你的专属打卡机器人
2.1 准备工作:让电脑和手机“握手成功”
别被“ADB”“开发者模式”吓到,这比连蓝牙耳机还简单。我用的是iPhone用户最怕的安卓机(小米13),整个过程10分钟搞定。
第一步:手机开“开发者模式”
设置 → 关于手机 → 连续点击“版本号”7次 → 输入锁屏密码 → 出现“您现在处于开发者模式”
第二步:打开USB调试 + 安装ADB键盘
设置 → 更多设置 → 开发者选项 → 勾选“USB调试”
再去GitHub下载adb-keyboard.apk(搜索关键词就能找到),安装后在“设置→语言与输入法”里设为默认输入法——这是为了后续能用AI自动输密码、搜关键词。
第三步:电脑配ADB(Windows/macOS通用)
- 下载Platform-tools
- 解压后,把文件夹路径加到系统环境变量(Win:系统属性→高级→环境变量→系统变量→Path→新建;Mac:终端运行
export PATH=$PATH:/your/path/to/platform-tools) - 打开命令行,输入
adb version,看到版本号就成功了
最后,用USB线连手机,命令行敲:
adb devices如果显示一串字符+“device”,恭喜,你的电脑已经“认出”手机了。
小贴士:如果显示“unauthorized”,手机上会弹窗问“允许USB调试吗?”,勾选“始终允许”,再点确定即可。
2.2 部署AI大脑:启动Open-AutoGLM服务端
你不需要训练模型,也不用买GPU。Open-AutoGLM官方提供了9B轻量级模型,我在一台24G显存的二手A10服务器上,用vLLM一键启动:
python3 -m vllm.entrypoints.openai.api_server \ --served-model-name autoglm-phone-9b \ --model zai-org/AutoGLM-Phone-9B \ --port 8000 \ --max-model-len 25480 \ --mm-processor-cache-type shm \ --mm_processor_kwargs '{"max_pixels":5000000}'启动后,访问http://你的服务器IP:8000/v1就能调用模型了。
如果你没有服务器,CSDN星图镜像广场已预置好Open-AutoGLM镜像,支持一键拉起服务,连Docker命令都不用敲。
2.3 连接手机,下达第一条指令
回到本地电脑(Windows/macOS都行),执行:
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM pip install -r requirements.txt pip install -e .确认手机已连接(adb devices能看到设备ID),运行:
python main.py \ --device-id 1234567890ABCDEF \ # 替换为你自己的设备ID --base-url http://192.168.1.100:8000/v1 \ # 替换为你的服务端地址 --model "autoglm-phone-9b" \ "每天早上8:05,在企业微信里完成上班打卡并截图保存"第一次运行,它会:
- 自动截图手机当前画面
- 上传给云端模型分析
- 模型返回操作序列:“先找到企业微信图标→点击→等待加载→滑动到工作台→点击→查找考勤打卡→点击→等待页面出现打卡按钮→点击→等待成功提示→截屏→保存到相册”
- ADB逐条执行,全程可视化(你能在手机上看到手指在自动点击)
注意:首次使用建议用USB连接,WiFi远程(
adb connect 192.168.x.x:5555)适合稳定后批量管理多台设备。
3. 打卡只是起点:它还能帮你做什么?
3.1 从“打卡”到“全流程办公助理”
我把它扩展成了真正的办公搭子,不再只盯一个APP:
| 场景 | 你只需说的话 | 它实际做的事 |
|---|---|---|
| 日报提交 | “上午10点,把今日工作填进飞书多维表格第3行” | 打开飞书→进入指定文档→定位到第3行→按模板填写“已完成:XXX;进行中:YYY;阻塞:ZZZ”→保存 |
| 会议提醒 | “下午2点前,检查钉钉日程,如果有新会议就微信发我摘要” | 截图钉钉日程页→识别今日会议→提取时间/主题/参会人→生成摘要→用微信发送给自己 |
| 报销初审 | “扫描相册里最新3张发票,把金额和商户名填到Excel” | 打开相册→选图→OCR识别→结构化提取→打开Excel→填入对应列→保存 |
所有这些,都不需要你写一行逻辑代码。它靠的是对界面的通用理解能力——只要APP有文字、有按钮、有列表,它就能“看懂”。
3.2 真实效果对比:人工 vs AI代理
我连续两周记录了打卡环节的耗时:
| 项目 | 人工操作 | Open-AutoGLM代理 |
|---|---|---|
| 平均耗时 | 82秒(找APP→解锁→滑动→点工作台→找考勤→点打卡→等响应→截图) | 21.3秒(全自动) |
| 失败率 | 12%(偶尔点错、网络延迟导致失败) | 0%(失败自动重试,最多3次) |
| 每日干预 | 需手动处理验证码(平均每周2次) | 验证码场景自动暂停,等你输入后继续,不打断流程 |
| 可靠性 | 依赖手机电量、网络、APP稳定性 | 即使APP闪退,它也能重启APP后继续任务 |
更关键的是:它从不抱怨加班。凌晨三点临时改打卡规则?你改一句指令,它立刻适配。
3.3 安全边界:哪些事它坚决不做?
Open-AutoGLM内置了三层安全护栏,确保它永远是助手,不是风险源:
操作白名单机制
默认只允许:点击、滑动、返回、截图、输入文字。禁止:长按、双击、手势密码、安装APK、清除数据。敏感词实时拦截
指令中若含“转账”“支付”“删除全部”“格式化”,会立即终止并提示:“该操作涉及高风险,已拒绝执行”。人工接管开关常驻
任何时候按手机音量键+电源键3秒,它会立刻暂停所有操作,弹出控制台,让你手动接管。
我测试过让它操作银行APP,它看到“请输入交易密码”就停了,截图发我:“检测到金融类应用,需人工确认是否继续”,非常克制。
4. 进阶技巧:让机器人更懂你
4.1 让它记住你的习惯:自定义提示词模板
默认情况下,它用通用中文提示词。但你可以让它更“懂你”。比如,我们公司打卡要先点“考勤打卡”,再点“上班打卡”,最后点“确认”。你可以在配置文件里加一条:
# config/app_mapping.yaml enterprise_wechat: check_in_flow: - "考勤打卡" - "上班打卡" - "确认" success_text: "打卡成功"下次它看到“打卡成功”四个字,就知道任务完成,不用再等3秒确认。
4.2 多设备协同:一台电脑管10台手机
用WiFi连接后,adb devices能列出所有在线设备。我写了段Python脚本,让机器人轮询:
from phone_agent.adb import list_devices devices = list_devices() for device in devices: if "work" in device.device_id: # 给设备ID打标签 agent = PhoneAgent(model_config=model_config, device_id=device.device_id) agent.run("打卡")现在,我办公室的5台测试机、家里3台备用机、还有2台员工机,全部由同一套AI大脑统一调度。
4.3 错误自愈:当它“看不懂”时怎么办?
哪怕是最强的VLM,也会遇到极端情况:模糊截图、深色模式、动态水印。Open-AutoGLM提供了优雅的降级方案:
- 第一次失败:自动重截一张图,换角度再试
- 第二次失败:缩小识别区域(比如只扫屏幕下半部分)
- 第三次失败:截图+当前指令发到你的微信,附带一句:“这个界面我没见过,你能告诉我‘打卡’按钮长什么样吗?”
它不硬刚,而是学会提问——这才是真正的人工智能。
5. 总结:它不是工具,而是你的数字分身
5.1 你得到的不只是“自动打卡”
回顾整个搭建过程,你获得的远不止一个打卡机器人:
- 一套可复用的AI自动化方法论:从需求描述→界面理解→动作规划→执行反馈,形成闭环
- 零代码的业务流程再造能力:市场部要自动发100条小红书笔记?HR要批量导出50份考勤表?一句话就能启动
- 对多模态AI落地的切身体验:它让你明白,AI不是黑箱,而是能“看见”、能“思考”、能“动手”的伙伴
5.2 它适合谁?又不适合谁?
强烈推荐给:
- 每天被重复操作淹没的运营、HR、行政、客服人员
- 想用AI提效但不会编程的中小团队负责人
- 对隐私敏感,不愿把数据交给SaaS厂商的个人用户
❌暂时不建议尝试:
- 仍在用安卓4.4以下老系统的用户(ADB兼容性差)
- 手机已Root且禁用ADB调试的极客(它依赖标准ADB协议)
- 期待“全自动无人值守金融操作”的用户(安全设计就是不支持)
5.3 下一步,你想让它做什么?
我已经让它开始学新技能:
- 看懂微信聊天记录,自动把客户询价转成Excel报价单
- 监控App Store更新,新版本发布时自动截图发我
- 分析钉钉审批流,预测哪类请假最容易被驳回
而这一切,都始于那句最朴素的指令:“帮我打卡”。
技术的价值,从来不在参数有多炫,而在于它是否真的让一个人,每天多出17分钟去喝杯咖啡、陪孩子读一页书、或者,只是安静地发一会儿呆。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。