Open-AutoGLM审批流程代理:请假申请执行自动化部署
1. 什么是Open-AutoGLM?手机端AI Agent的轻量革命
Open-AutoGLM不是又一个云端大模型API封装,而是一套真正跑在手机边侧、能“看见”屏幕、“理解”界面、“动手”操作的AI智能体框架。它由智谱开源,核心定位很明确:让AI代理不再依赖持续联网和高算力服务器,而是以视觉语言模型为眼睛和大脑,以ADB为双手,在真实安卓设备上完成端到端任务闭环。
你可能用过语音助手或网页自动化脚本,但它们都有明显短板——语音助手听不懂界面元素,脚本只能机械点击固定坐标。Open-AutoGLM不同。它把手机屏幕截图实时送入多模态模型,模型不仅能识别“搜索框”“关注按钮”“返回箭头”,还能理解当前页面语义:“这是小红书首页”“这是抖音个人主页”“这是企业微信审批列表”。更关键的是,它能把自然语言指令(比如“请帮我提交本周五的年假申请”)拆解成一连串可执行动作:打开企业微信→进入工作台→点击OA审批→选择请假类型→填写起止时间→上传附件→点击提交→确认弹窗。
这不是概念演示,而是已在真机上稳定运行的工程实现。它不追求参数规模,而专注“感知-规划-执行”链路的鲁棒性与低延迟。对开发者而言,这意味着你能快速构建面向真实办公场景的轻量级AI助理,无需训练模型,不用写XPath,只要会说人话,就能让手机自己干活。
2. Phone Agent如何接管你的审批流程?
Phone Agent是基于Open-AutoGLM构建的垂直落地版本,专为移动办公场景优化。它的能力结构非常清晰:三层协同——视觉感知层、意图规划层、动作执行层。
2.1 视觉感知:让AI真正“看懂”手机屏幕
每次操作前,Phone Agent会通过ADB截取当前屏幕图像,并调用轻量化视觉语言模型(autoglm-phone-9b)进行多模态理解。这个过程不是简单OCR,而是语义级解析:
- 它能区分“提交”按钮和“暂存”按钮的视觉差异与功能差异;
- 能识别企业微信中不同审批单的表单结构(如请假单有日期控件,报销单有金额输入框);
- 在弹出验证码时,能判断这是需要人工介入的敏感环节,自动暂停并等待用户扫码或输入。
这种理解能力,让Phone Agent摆脱了传统UI自动化对坐标、ID、XPath的强依赖。即使APP更新导致界面微调,只要视觉逻辑不变,它依然能准确找到目标元素。
2.2 意图规划:从一句话到可执行动作序列
当你输入“帮我提交张三的病假申请,从明天开始休3天”,Phone Agent不会直接去点“提交”,而是先做任务分解:
- 定位入口:打开企业微信 → 进入工作台 → 找到“OA审批”应用;
- 选择模板:在审批模板列表中识别“病假申请”并点击;
- 填充表单:
- 点击申请人字段 → 调出通讯录 → 搜索“张三” → 选择;
- 点击开始日期 → 唤起日历 → 选择“明天”;
- 点击天数字段 → 输入“3”;
- 确认提交:检查必填项是否完整 → 点击“提交” → 在弹窗中点击“确定”。
整个过程由模型自主规划,每一步都附带置信度评估。如果某步失败(如日历控件未加载),它会主动重试或降级为文字提示:“日历未就绪,已手动输入日期”。
2.3 动作执行:安全、可控、可接管的自动化
执行层完全基于ADB命令,但做了大量工程优化:
- 操作原子化:所有点击、滑动、输入都被封装为带超时和重试的原子操作;
- 敏感操作熔断:涉及支付、删除、权限授予等动作时,强制触发二次确认弹窗;
- 人工接管通道:在登录页、验证码页、生物验证页,自动暂停并推送通知,用户扫码/输入后继续;
- 远程调试支持:通过WiFi ADB连接,开发时无需插线,真机调试效率提升3倍以上。
这使得Phone Agent不仅是个“自动化工具”,更是一个可信任的“数字同事”——它知道什么时候该自己干,什么时候该喊你。
3. 本地控制端部署:四步完成真机接管
部署Phone Agent审批代理,不需要GPU服务器,一台普通笔记本+一部安卓手机即可。整个过程分为四个清晰阶段,我们跳过理论,直奔可运行步骤。
3.1 环境准备:让电脑认识你的手机
硬件要求极低:Windows/macOS笔记本 + Android 7.0+真机(推荐Pixel、小米、华为等主流机型)。重点在于ADB配置是否到位。
Windows用户:下载Android SDK Platform-Tools,解压后记下路径(如
D:\platform-tools);Win+R→ 输入sysdm.cpl→ 高级 → 环境变量 → 系统变量 → Path → 新建 → 粘贴路径 → 确定;
打开CMD,输入adb version,看到版本号即成功。macOS用户:终端执行以下命令(路径按实际调整):
export PATH=${PATH}:~/Downloads/platform-tools echo 'export PATH=${PATH}:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc adb version
关键提醒:ADB必须能识别设备。如果
adb devices返回空或unauthorized,说明手机USB调试未开启或未授权。请务必完成下节手机设置。
3.2 手机端设置:三步打通控制通道
很多部署失败,卡在这一步。请严格按顺序操作:
开启开发者模式:
设置 → 关于手机 → 连续点击“版本号”7次 → 弹出“您现在处于开发者模式”。开启USB调试:
设置 → 系统 → 开发者选项 → 向下滚动 → 打开“USB调试” → 弹出授权窗口时,勾选“始终允许”。安装ADB Keyboard(解决中文输入问题):
下载ADB Keyboard APK → 手机安装 → 设置 → 系统 → 语言与输入法 → 虚拟键盘 → 选择“ADB Keyboard”并设为默认。
为什么必须?普通输入法在ADB命令下无法响应,会导致“输入文字”指令失效。
完成这三步后,用USB线连接手机与电脑,再次运行adb devices,应看到类似8A5X1234567890AB device的输出——设备已就绪。
3.3 控制端代码部署:克隆、安装、验证
现在,让本地电脑成为AI代理的“指挥中心”:
# 1. 克隆官方仓库(国内用户建议加代理或使用镜像) git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 创建虚拟环境(推荐,避免依赖冲突) python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # 3. 安装核心依赖(含ADB通信、模型调用模块) pip install -r requirements.txt pip install -e . # 4. 验证安装(无报错即成功) python -c "from phone_agent.adb import ADBConnection; print('ADB模块加载成功')"此时,你的本地控制端已具备与手机通信、调用云端模型、解析指令的能力。下一步,就是让它“上岗”。
4. 请假审批自动化实战:从指令到提交
我们以最常见的“企业微信年假申请”为例,完整走一遍自动化流程。整个过程无需一行新代码,全部通过命令行指令驱动。
4.1 准备云端模型服务(前提)
Phone Agent本身不包含大模型,它依赖外部vLLM服务提供推理能力。你需要提前在云服务器(或本地高性能机器)部署autoglm-phone-9b模型:
# 示例:使用vLLM启动(需GPU) python -m vllm.entrypoints.api_server \ --model zai-org/autoglm-phone-9b \ --tensor-parallel-size 1 \ --max-model-len 4096 \ --port 8800部署成功后,服务地址为http://<云服务器IP>:8800/v1。这是后续--base-url参数的来源。
4.2 一条命令启动审批代理
确保手机已通过USB或WiFi连接(adb devices可见),在Open-AutoGLM根目录执行:
python main.py \ --device-id 8A5X1234567890AB \ --base-url http://123.56.78.90:8800/v1 \ --model "autoglm-phone-9b" \ "在企业微信中提交我的年假申请:2024年10月25日至10月27日,共3天,事由为调休"--device-id:替换为adb devices显示的真实ID;--base-url:替换为你的云服务器公网IP和端口;- 指令字符串:用自然语言描述需求,越具体越好(包含时间、天数、事由)。
执行后,你会看到终端实时打印日志:
[INFO] 截取屏幕 → 已发送至模型 [INFO] 模型返回动作:点击「工作台」图标 [INFO] 执行点击(x=540, y=1200)→ 成功 [INFO] 截取屏幕 → 已发送至模型 [INFO] 模型返回动作:滑动查找「OA审批」→ 点击 ... [INFO] 检测到「提交成功」Toast → 流程结束几秒内,手机自动完成打开APP、导航菜单、填写表单、点击提交全过程。整个过程可录像回放,便于审计与复盘。
4.3 Python API方式:嵌入你自己的审批系统
如果你已有内部OA系统,想将Phone Agent作为后台服务集成,推荐使用Python API方式调用:
from phone_agent.agent import PhoneAgent from phone_agent.adb import ADBConnection # 1. 初始化ADB连接(支持USB/WiFi) conn = ADBConnection() conn.connect("8A5X1234567890AB") # 或 "192.168.1.100:5555" # 2. 创建AI代理实例 agent = PhoneAgent( device_id="8A5X1234567890AB", base_url="http://123.56.78.90:8800/v1", model_name="autoglm-phone-9b" ) # 3. 发送指令并获取执行结果 result = agent.run( instruction="提交张三的病假申请,2024年10月25日开始,休2天,事由:感冒", timeout=120 # 最长执行2分钟 ) print(f"执行状态: {result.status}") # success / failed / interrupted print(f"耗时: {result.duration:.1f}秒") print(f"操作步骤: {len(result.steps)}步")这种方式让你能将AI代理无缝接入企业审批流,例如:当HR系统生成请假单后,自动触发Phone Agent执行提交;或在审批驳回时,自动执行“修改-重新提交”闭环。
5. 故障排查与稳定性保障:让自动化真正可靠
再好的框架,上线后也会遇到现实问题。以下是高频问题及经过验证的解决方案:
5.1 连接类问题
| 现象 | 根本原因 | 解决方案 |
|---|---|---|
adb devices显示unauthorized | 手机未授权电脑调试 | 断开USB → 手机弹出授权窗口 → 勾选“始终允许” → 重连 |
adb connect 192.168.x.x:5555失败 | WiFi ADB未启用或防火墙拦截 | 先USB连接执行adb tcpip 5555→ 关闭手机WLAN开关再重开 → 检查路由器是否禁用ADB端口 |
Connection refused(调用base-url时) | 云服务器端口未映射或防火墙屏蔽 | 在服务器执行curl http://localhost:8800/v1/models→ 若失败,检查vLLM是否运行;若成功,检查云服务商安全组是否放行8800端口 |
5.2 执行类问题
- 模型返回乱码或空动作:大概率是vLLM启动参数不匹配。重点检查
--max-model-len是否≥4096,--dtype是否为auto或half,显存是否充足(autoglm-phone-9b最低需8GB VRAM)。 - 点击位置偏移:手机开启了“字体大小放大”或“显示缩放”。进入设置 → 显示 → 字体大小与样式 → 设为“默认”;显示大小 → 设为“默认”。
- 中文输入失败:确认已安装ADB Keyboard并设为默认输入法;若仍失败,在指令中改用拼音(如“nian jia”代替“年假”),模型兼容性更好。
5.3 生产环境建议
- 稳定性优先:生产环境强烈推荐USB连接,WiFi易受干扰,导致ADB断连;
- 日志审计:启用
--log-level DEBUG,所有截图、模型请求、ADB命令均记录,满足企业合规要求; - 失败降级:在代码中捕获
agent.run()异常,自动切换为邮件通知管理员人工处理,保障SLA; - 资源隔离:为不同员工分配独立ADB设备ID,避免操作串扰。
6. 总结:让审批从“点击”走向“交付”
Open-AutoGLM审批流程代理的价值,不在于它能多快点完一个按钮,而在于它重构了人机协作的边界。过去,员工要花3分钟手动打开APP、找入口、填表单、反复核对;现在,一句话发出,20秒后收到“提交成功”通知——这节省的不仅是时间,更是决策精力。
它不是替代HR系统,而是成为系统与人之间的智能适配器:理解人的语言,翻译成系统的操作,再把结果用人话反馈回来。对于IT部门,它降低了RPA实施门槛;对于业务部门,它让自动化触手可及;对于员工,它消除了重复劳动的烦躁感。
更重要的是,这套方案完全开源、可审计、可定制。你可以把它部署在私有云,数据不出内网;可以针对钉钉、飞书、自研APP定制专属动作库;甚至可以训练自己的审批意图分类模型,让AI更懂你们公司的流程术语。
自动化真正的终点,不是无人值守,而是让人回归创造——把时间留给需要判断、沟通、创新的真正工作。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。