Travel Assistant:基于 Open-AutoGLM 的语音旅行规划助手

tanqi
2
2025-12-20

项目背景

在体验了 Open-AutoGLM 这个开源手机自动化框架后,我被它的潜力深深吸引。于是萌生了一个想法:能否利用它打造一个真正实用的应用场景?

旅行规划是一个典型的多步骤、跨应用任务——需要在携程查机票、用高德规划路线、上美团订酒店。这些操作繁琐重复,正是 AI Agent 大显身手的地方。

于是,Travel Assistant 诞生了。

它能做什么?

一句话概括:说一句"小助手,我明天要去杭州西湖玩",它就能自动帮你完成整个旅行规划。

具体来说:

  • 语音唤醒:说"小助手"唤醒,然后说出你的旅行计划

  • 智能解析:自动识别目的地、出发日期、景点等关键信息

  • 自动化执行

    • 打开携程,搜索机票(自动用 GPS 定位出发地)

    • 打开高德,规划从机场到景点的路线

    • 打开美团,搜索景点附近的酒店

  • 报告生成:汇总所有信息,生成旅行规划报告

全程无需手动操作,看着手机屏幕自己动,还挺解压的。

技术架构

语音输入 → FunASR 识别 → 命令解析 → 工作流引擎 → PhoneAgent 执行
                                         ↓
                              携程 → 高德 → 美团
                                         ↓
                                    报告生成

核心模块:

模块

技术栈

功能

ASR

FunASR + WebSocket

实时语音识别、唤醒词检测

工作流

自研 DAG 引擎

任务调度、上下文传递

GUI

PySide6

手机屏幕预览、状态显示

Agent

Open-AutoGLM

手机自动化控制

遇到的挑战

手机权限!!!!!!!

1. GPS 定位问题

最初机票搜索总是从"北京"出发,后来发现是 Agent 太"热心",总想帮忙修改出发地。

解决方案:在 prompt 中明确告诉它"不要动出发地,让 App 自己用 GPS"。

2. App 界面适配

手机和平板的界面布局不同,同一个 App 在不同设备上按钮位置也不一样。

解决方案:用"视觉搜索"策略,让 Agent 根据文字和图标找元素,而不是固定坐标。

3. 循环检测

Agent 有时会陷入死循环,反复点击同一个位置。

解决方案:在 prompt 中加入循环检测规则,连续 3 次相同操作就强制退出。

效果演示

用户:小助手,我明天要去贵州黔灵山公园玩
​
系统:正在规划行程...
​
[携程] 搜索机票:天津 → 贵阳
  - CA2863 07:20-09:55 ¥2130
  - GS6500 14:00-16:30 ¥980
​
[高德] 路线规划:贵阳龙洞堡机场 → 黔灵山公园
  - 打车:约45分钟,¥60
  - 地铁:1号线换乘,约70分钟,¥5
​
[美团] 酒店推荐:
  - 全季酒店(黔灵山店) ¥329 4.8分
  - 汉庭酒店(贵阳公园路店) ¥218 4.6分

快速开始

# 克隆项目
git clone https://github.com/zqaini002/Travel-Assistant.git
​
# 安装依赖
pip install -r requirements.txt
pip install -r travel_assistant/requirements.txt
​
# 运行
python travel_assistant/main.py \
    --base-url <模型服务地址> \
    --apikey <API密钥> \
    --asr-url <ASR服务地址>

项目结构

travel_assistant/
├── main.py                 # 入口文件
├── agent/                  # Agent 封装
├── asr/                    # 语音识别模块
├── gui/                    # 图形界面
├── workflow/               # 工作流引擎
│   └── tasks/              # 预定义任务
│       ├── flight_search.py    # 携程机票
│       ├── route_planning.py   # 高德路线
│       └── hotel_booking.py    # 美团酒店
└── report/                 # 报告生成

写在最后

这个项目是我对 AI Agent 落地应用的一次探索。虽然还有很多可以改进的地方,但它已经能够完成基本的旅行规划任务了。

如果你对手机自动化、语音交互或者工作流引擎感兴趣,欢迎 Star 和 PR!

GitHub: https://github.com/zqaini002/Travel-Assistant


致谢:感谢 Open-AutoGLM 项目提供的核心框架支持。

动物装饰