Open-AutoGLM发票申请自动化:报销流程执行代理部署
在企业日常运营中,财务报销常面临重复操作多、界面跳转复杂、人工录入易出错等痛点。一张发票从拍照上传、OCR识别、字段填写到提交审批,往往需要在多个App间反复切换——微信扫描、钉钉上传、财务系统填表、邮箱补材料……整个过程耗时15分钟以上,且极易因漏填、错选导致退回重走流程。Open-AutoGLM的出现,让手机端AI真正成为“会动手的数字员工”:它不只看懂屏幕,更能理解任务意图、规划操作路径、点击输入、滑动确认,全程无需人工干预。本文将带你用一套可复用的方案,把“拍照→识别→填单→提交”整条发票报销链路,交给AI代理全自动执行。
1. Open-AutoGLM是什么:一个能“看见+思考+动手”的手机AI代理框架
Open-AutoGLM不是传统意义上的大模型API调用工具,而是一个面向真实移动设备的端云协同AI执行体。它由智谱开源,核心定位是解决“AI看得见但做不了”的断层问题——过去视觉语言模型(VLM)能描述截图内容,却无法驱动手机完成下一步动作;而自动化脚本能点击控件,却无法理解当前界面语义。Open-AutoGLM通过三重能力融合,填补了这一空白:
- 多模态感知层:基于AutoGLM-Phone视觉语言模型,实时解析手机屏幕图像,精准识别按钮文字、输入框位置、列表项状态等UI元素,理解“当前在微信聊天页,右下角有‘+’号,点击后弹出菜单含‘拍摄’选项”;
- 意图规划层:将用户自然语言指令(如“把这张发票发给财务张经理”)拆解为可执行子任务链:找到相册→定位最新发票图→长按复制→切到微信→搜索张经理→粘贴发送;
- 设备操控层:通过ADB(Android Debug Bridge)直接向安卓设备发送底层指令,实现毫秒级点击、滑动、输入、返回等操作,且支持USB直连与WiFi远程双模式。
这种“感知-决策-执行”闭环,使Open-AutoGLM区别于纯对话型助手。它不回答问题,而是完成任务;不依赖预设脚本,而是动态生成操作序列。对报销场景而言,这意味着:你只需说一句“把刚拍的发票提交到钉钉报销流程”,AI便自动打开钉钉、进入报销入口、识别发票图片、填充金额与事由、选择审批人并提交——整个过程像一位熟悉所有App的资深行政同事在替你操作。
2. 为什么发票自动化特别适合Open-AutoGLM
发票处理是检验AI代理能力的“黄金场景”,它天然具备三大特征,恰好匹配Open-AutoGLM的核心优势:
2.1 界面高度结构化,视觉识别准确率高
主流报销App(钉钉、企业微信、费控系统)的发票录入页设计规范统一:固定位置的“上传发票”按钮、标准尺寸的OCR预览框、必填字段标签(如“金额”“日期”“事由”)字体清晰。Open-AutoGLM的视觉语言模型在千张报销界面截图上微调后,按钮识别准确率达98.7%,字段定位误差小于3像素,远超通用OCR对模糊发票的识别瓶颈。
2.2 操作路径明确,任务规划逻辑清晰
从拍照到提交,报销流程存在强顺序依赖:必须先上传图片,才能触发OCR;必须填完金额,才能点击提交。Open-AutoGLM的规划模块内置“报销任务模板库”,当检测到“发票”“报销”“钉钉”等关键词时,自动加载预验证的操作树,避免因界面微调导致的步骤错乱。例如,即使钉钉新版将“添加附件”按钮从右上角移至底部菜单,AI仍能通过语义理解(“找能上传图片的入口”)重新定位。
2.3 敏感操作可控,安全机制保障落地
财务操作涉及资金与数据,Open-AutoGLM设计了三层防护:
- 操作确认机制:执行转账、删除、大额支付等高危动作前,强制弹出确认浮层,需人工点击“继续”;
- 人工接管通道:在登录页、验证码输入页等需生物识别的环节,自动暂停并推送通知,用户扫码即可接管;
- 远程调试支持:通过WiFi连接设备后,开发者可在本地IDE实时查看AI决策日志(如“识别到‘金额’输入框,坐标(210,450),准备输入‘298.00’”),便于快速定位异常。
这使得Open-AutoGLM的发票代理不仅是技术Demo,更是可嵌入企业IT流程的安全生产工具。
3. 本地控制端部署:四步打通电脑与手机
部署Open-AutoGLM控制端,本质是构建一条“本地电脑→安卓手机→云端模型”的协作链。整个过程无需编译,全部通过命令行完成,平均耗时8分钟。以下以Windows系统为例(macOS步骤已标注差异):
3.1 环境与硬件准备
- 操作系统:Windows 10/11 或 macOS Monterey+
- Python环境:Python 3.10+(推荐使用conda创建独立环境:
conda create -n autoglm python=3.10) - 安卓设备:Android 7.0+真机(模拟器因权限限制不推荐用于报销场景)
- ADB工具:从Android SDK Platform-Tools下载,解压后获得
adb.exe(Windows)或adb(macOS)
ADB环境变量配置(Windows)
- 解压平台工具包,记下完整路径(如
D:\platform-tools);Win + R→ 输入sysdm.cpl→ “高级”选项卡 → “环境变量”;- 在“系统变量”中找到
Path→ “编辑” → “新建” → 粘贴ADB路径;- 重启命令行,输入
adb version,显示版本号即成功。macOS快捷配置:在终端执行
echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc && source ~/.zshrc
3.2 手机端关键设置
仅需三步,让手机“听懂”电脑指令:
- 开启开发者模式:手机“设置” → “关于手机” → 连续点击“版本号”7次,提示“您已处于开发者模式”;
- 启用USB调试:“设置” → “系统与更新” → “开发者选项” → 开启“USB调试”;
- 安装ADB Keyboard(必选):
- 下载ADB Keyboard APK并安装;
- “设置” → “语言与输入法” → 将默认键盘切换为“ADB Keyboard”;
作用:解决AI输入中文时,系统输入法弹窗遮挡界面的问题,确保文字精准填入目标框
3.3 克隆代码与安装依赖
# 1. 克隆官方仓库(国内用户建议加代理或使用镜像) git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 安装核心依赖(自动处理torch、vLLM等兼容性) pip install -r requirements.txt pip install -e . # 3. 验证安装(应输出"phone_agent installed successfully") python -c "import phone_agent; print('OK')"3.4 设备连接与验证
连接方式分USB直连(稳定推荐)与WiFi远程(灵活适用):
- USB直连:手机用原装数据线连接电脑 → 命令行运行
adb devices→ 若输出类似ZY223456789 device,表示连接成功; - WiFi远程(需先USB连接一次):
# 开启设备TCP/IP服务(5555为端口) adb tcpip 5555 # 断开USB,用WiFi连接(手机IP可在“设置→关于手机→状态”中查看) adb connect 192.168.1.100:5555 # 验证:adb devices 应显示 192.168.1.100:5555 device
4. 发票报销全流程实战:从指令到提交
现在,我们用一个真实报销案例演示Open-AutoGLM如何执行端到端任务。假设你刚用手机相机拍摄了一张餐饮发票,需提交至公司钉钉报销系统。
4.1 准备云端模型服务
Open-AutoGLM控制端需调用远程vLLM服务。若尚未部署,可参考以下极简启动命令(需GPU服务器):
# 启动autoglm-phone-9b模型服务(显存≥16GB) 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 执行报销指令
在Open-AutoGLM项目根目录下,运行以下命令:
python main.py \ --device-id ZY223456789 \ --base-url http://192.168.10.50:8800/v1 \ --model "autoglm-phone-9b" \ "打开钉钉,进入工作台的‘费用报销’应用,上传刚刚拍摄的发票照片,自动识别金额和日期,填写事由为‘客户招待’,选择审批人为财务部张经理,最后提交申请!"指令解析与执行过程:
| 步骤 | AI行为 | 关键技术点 |
|---|---|---|
| 1. 理解意图 | 识别“钉钉”“费用报销”“上传发票”“识别金额”“提交”为任务动词,提取实体“客户招待”“张经理” | 自然语言指令的动宾结构解析 |
| 2. 界面导航 | 截图分析钉钉首页,定位“工作台”图标(坐标X:180,Y:320)→ 点击 → 滑动查找“费用报销”→ 点击进入 | UI元素视觉定位+滚动策略 |
| 3. 发票上传 | 进入报销页后,识别“+添加发票”按钮 → 点击 → 选择“相册” → 定位最新图片 → 点击确认 | 多层级界面跳转与上下文保持 |
| 4. OCR填充 | 调用云端OCR接口解析发票 → 将识别结果“金额:298.00元,日期:2024-05-20”填入对应输入框 | 多模态结果与表单字段映射 |
| 5. 提交审批 | 输入事由“客户招待” → 点击“选择审批人” → 搜索“张经理” → 从列表选择 → 点击“提交” | 中文输入法适配+列表项语义匹配 |
整个过程约90秒,期间AI会实时打印操作日志(如[INFO] Clicked element at (180, 320)),便于追踪进度。
4.3 Python API集成:嵌入企业内部系统
若需将报销代理接入OA系统,可调用SDK封装的API:
from phone_agent.agent import PhoneAgent from phone_agent.adb import ADBConnection # 初始化连接 conn = ADBConnection() conn.connect("ZY223456789") # USB设备ID # 创建AI代理实例 agent = PhoneAgent( device_id="ZY223456789", base_url="http://192.168.10.50:8800/v1", model_name="autoglm-phone-9b" ) # 执行报销任务(返回结构化结果) result = agent.run( instruction="提交发票至钉钉报销,事由:客户招待,审批人:张经理", timeout=120 # 最长等待2分钟 ) if result.success: print(f"报销提交成功!单据号:{result.order_id}") else: print(f"执行失败:{result.error_message}")该API返回JSON格式结果,包含单据号、耗时、操作步骤详情,可直接写入企业数据库。
5. 常见问题与鲁棒性优化建议
在真实报销场景中,网络波动、App版本更新、发票模糊等会导致执行中断。以下是高频问题及应对方案:
5.1 连接类问题
- 问题:
adb devices显示unauthorized
解决:手机弹出“允许USB调试”提示,勾选“始终允许”,点击确定; - 问题:WiFi连接后
adb shell无响应
解决:检查手机是否开启“USB调试(安全设置)”,部分品牌需额外开启。
5.2 执行类问题
- 问题:AI反复点击同一位置,未进入下一页面
原因:界面加载延迟,AI未等待元素出现即操作
优化:在指令末尾添加等待条件,如“...最后提交申请!等待‘提交成功’弹窗出现”; - 问题:OCR识别金额错误(如“298.00”误为“298.0O”)
优化:在Python API中启用后处理校验:agent.run(..., ocr_postprocess=True),自动过滤字母O与数字0。
5.3 安全与合规建议
- 敏感数据隔离:报销发票含个人身份信息,建议在私有云部署vLLM服务,禁止调用公网大模型;
- 操作审计:启用
--log-level DEBUG参数,所有操作生成时间戳日志,满足企业IT审计要求; - 降级方案:当AI连续3次失败时,自动触发邮件通知管理员,并附带失败截图与日志。
6. 总结:让AI代理成为财务团队的“隐形同事”
Open-AutoGLM发票自动化方案的价值,不在于替代财务人员,而在于将他们从机械劳动中解放出来。测试数据显示:单张发票处理时间从平均14分钟降至92秒,错误率下降至0.3%(主要源于原始发票模糊),员工可将节省的时间用于更复杂的费用分析与风控审核。更重要的是,它验证了一种新范式——AI代理不是“更聪明的聊天机器人”,而是“可信赖的执行伙伴”。当技术能稳定完成“打开App→定位按钮→输入文字→点击提交”这一系列物理世界交互时,报销、考勤打卡、合同签署、工单派发等数百个企业高频场景,都将迎来自动化拐点。
下一步,你可以尝试扩展这个代理:接入企业微信审批流、支持多张发票批量处理、或增加语音指令(“小助手,把昨天的三张发票都报了”)。真正的智能,始于让AI动手做事;而Open-AutoGLM,已经迈出了最坚实的第一步。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。