【生活娱乐赛道】Life Agent智能生活助手
一、Demo 简介
LifeAgent 是一款 AI 驱动的本地生活智能助手,用户通过自然语言对话即可完成出行规划、美食订餐、购物比价、就医挂号等日常高频生活服务。产品形态为 Web 应用(PWA),支持桌面端和移动端访问。
面向用户
-
城市白领:日常出差订票、点外卖、比价购物
-
家庭用户:就医挂号、出行规划
-
对手机 App 操作不熟悉的老年人:用说话的方式完成生活服务
核心功能
| 功能 | 说明 |
|---|---|
| 出行规划 |
自然语言描述出差/旅行需求 → 自动查询航班、酒店 → 智能推荐最优组合 → 一键确认下单 |
| 美食订餐 |
支持堂食点餐 + 外卖配送双模式,智能推荐餐厅和团购套餐 |
| 购物比价 |
输入商品名称和预算 → 跨平台比价 → 预算超限智能提醒 → 支持调整预算重新查询 |
| 就医挂号 |
智能分诊(20+紧急关键词识别)→ 医院→科室→医生三级选择 → 模拟挂号流程 |
图1:LifeAgent 首页 - 对话式 AI 交互界面
二、Demo 创作思路
灵感来源
日常生活中,我们经常需要在多个 App 之间切换来完成一个简单的需求:
-
出差:「打开携程查机票 → 打开美团订酒店 → 打开滴滴叫车」
-
购物:「打开淘宝搜商品 → 打开京东比价 → 打开拼多多看有没有更便宜的」
-
看病:「打开挂号 App → 选医院 → 选科室 → 选医生」
每个步骤都需要手动操作,且信息分散在各平台。如果能有一个统一的对话入口,用自然语言描述需求就能完成这些操作,体验会大幅提升。
想解决的问题
-
跨平台操作繁琐:用户不需要在 3-4 个 App 之间切换
-
比价困难:同一商品在不同平台价格差异大,手动比价耗时长
-
就医挂号门槛高:不知道挂什么科室、哪个医院有号
-
适老化不足:老年人不擅长使用复杂的 App 界面
为什么选这个方向
-
高频刚需:出行、吃饭、购物、看病是每个人每天/每周都要面对的场景
-
AI 天然适配:这些场景的核心是「理解用户意图 → 调用对应服务 → 给出结构化结果」,正是 LLM 擅长做的事
-
业务闭环完整:从需求采集 → 信息确认 → 比价/推荐 → 下单,全链路可在对话中完成
图2:购物比价场景 - 自动识别需求并生成确认卡片
三、Demo 体验地址
在线体验链接:https://lifecrew.junyaoai.com
部署说明:项目已通过 Docker 容器化部署在 Ubuntu 服务器,前端为 Vue3 SPA,后端 FastAPI 提供 WebSocket 长连接,支持毫秒级实时响应。
四、TRAE 实践过程
本项目完全基于 TRAE IDE 开发,从需求分析到代码实现均在 TRAE 中完成。
技术架构
code复制
┌─────────────────────────────────────────┐
│ 前端 (Vue3 + Vite) │
│ App_Web/index.html (SPA 单页应用) │
│ WebSocket ↔ JSON 双向通信 │
└─────────────────┬───────────────────────┘
│ ws://host:623/ws
┌─────────────────▼───────────────────────┐
│ 后端 (Python FastAPI) │
│ ┌───────────────────────────────────┐ │
│ │ SceneRouter 场景路由 │ │
│ │ ┌─────┐ ┌──────┐ ┌──────┐ ┌───┐│ │
│ │ │Travel│ │ Food │ │Shop │ │Hosp││ │
│ │ │Agent │ │Agent │ │Agent │ │Agent││ │
│ │ └──────┘ └──────┘ └──────┘ └────┘│ │
│ └───────────────────────────────────┘ │
│ ┌────────────────────────────────────┐ │
│ │ LLM Driver → Zhipu GLM-4-Flash │ │
│ │ State Machine → 状态流转控制 │ │
│ │ Tool Registry → 模拟数据工具集 │ │
│ └────────────────────────────────────┘ │
└─────────────────────────────────────────┘
开发关键步骤
Step 1:场景路由 + 意图识别
使用 TRAE 对话实现多场景自动分发。当用户输入"我想买个消毒柜",系统通过 LLM 识别意图为 shopping 场景,自动路由到 ShoppingAgent。
-
关键词规则匹配(一级):关键词命中 → 直接分发(0ms 延迟)
-
LLM 语义识别(二级):关键词未命中 → 调用 GLM-4-Flash 识别,返回场景名称
图3:出行规划场景 - 自动识别出行意图并收集需求信息
Step 2:状态机驱动的多轮对话
实现基于 TripState 的状态机,管理每个 Agent 的多轮对话流程:
code复制
INIT → COLLECTING → CONFIRMING → EXECUTING → COMPLETED
│ │ │ │
└────────┴────────────┴────────────┴──→ CANCELLED
关键适配:
-
SELECTING 状态支持多级选择(如就医:医院→科室→医生三级)
-
CONFIRMING 状态按场景分发确认逻辑(不同场景确认文案不同)
-
COMPLETED 状态下"确认"不再触发新流程,仅回复感谢
Step 3:Agent 身份角色设计
为每个场景的 Agent 赋予独立人格,提升交互体验:
| Agent | 角色 | 特点 |
|---|---|---|
| ShoppingAgent | 精打细算,帮用户省钱 | |
| FoodAgent | 懂吃会点,推荐最优套餐 | |
| TravelAgent | 规划最优行程组合 | |
| HospitalAgent | 紧急关键词识别,快速分诊 |
Step 4:智能比价 + 预算管理
ShoppingAgent 实现跨平台比价:
-
用户输入商品 + 预算 → LLM 提取结构化购物信息
-
生成确认卡片,用户确认后开始比价
-
超出预算时:自动过滤不可达平台 → 展示警告 → 提供"调整预算"或"查看其他品类"选项
-
预算重试:保留已填信息(商品/城市/地址),仅更新预算 → 重新比价(避免上下文丢失)
TRAE Session IDs
以下为开发过程中的关键任务 Session ID,用于证明作品由 TRAE IDE 开发完成。
| 序号 | Session ID | 任务描述 |
|---|---|---|
| 1 | [.4220391628478426:5cbf657eb315a8afeeb58a396a6ddecc_6a4e6b57f3357af14595058f.6a4efe0ff3357af1459508fc.6a4efe0e5188e63b3d8ed3aa:Trae CN.T(2026/7/9 09:49:03)] |
修复点餐场景字段渲染错误 |
| 2 | [.4220391628478426:a63811d11ee286c55f752e97dbb7b9b4_6a4e6b57f3357af14595058f.6a4efef8f3357af14595090f.6a4efef75188e63b3d8ed3ab:Trae CN.T(2026/7/9 09:52:56)] |
修复点餐场景下订餐联系人,电话等渲染错误 |
| 3 | [.4220391628478426:aface1048be86b9075c7f489a2ea2442_6a4e6b57f3357af14595058f.6a4f03cff3357af145950956.6a4f03ce5188e63b3d8ed3af:Trae CN.T(2026/7/9 10:13:35)] |
修复prompt 驱动LLM对话与思考,收集用户需求信息 |
| 4 | [.4220391628478426:9bdec98e9bf86f9287a1363d78504b62_6a4e6b57f3357af14595058f.6a4f076bf3357af1459509d7.6a4f076a5188e63b3d8ed3b2:Trae CN.T(2026/7/9 10:28:59)] |
修复医疗场景挂号提交时出现的错误信息。 |
| 5 | [.4220391628478426:c6721c42e9f7cc958f968a858b2ba4a0_6a4e6b57f3357af14595058f.6a4f09a8f3357af145950afd.6a4f09a85188e63b3d8ed3b4:Trae CN.T(2026/7/9 10:38:37)] |
修复医疗场景下挂号支付是出现订单金额错误的问题 |
| 6 | .4220391628478426:fae63655950fff05a6f8b4ee920374cd_6a4e6b57f3357af14595058f.6a4f6ad7f3357af1459511f8.6a4f6ad65188e63b3d8ed3c2:Trae CN.T(2026/7/9 17:33:11) | Docker Compose 编排 + Nginx 反向代理 |
五、开发心得
踩坑记录
-
LLM 识别不一致:关键词匹配结果被 LLM 二次调用覆盖 → 引入
scene_override参数,router 层识别结果强制传递 -
WebSocket 并发竞态:用户快速点击导致状态错乱 → 引入
asyncio.Lock保护 CONFIRMING→SELECTING 转换 -
前端卡片交互:桌面端对比列表点击无响应 → 排查发现
price字段缺失导致渲染空值,补充后端字段后修复 -
上下文丢失:「调整预算」操作清空了用户已填的商品信息 → 改为仅保留非预算字段,设置
budget_retry标志跳过 LLM 采集 -
**长记忆混乱:**我一般会创建Agent辅助开发,例如这次我创建了一个Devbuddy的Agent辅助我开发,但是长时间的开发沟通,会导致记忆过长Agent会出现记忆混乱,每当这个时候我都选择清空记忆,开启一个新的对话。
经验总结
-
状态机是对话式应用的骨架:没有清晰的状态管理,多轮对话就是灾难
-
LLM 是锤子,不是瑞士军刀:能用规则解决的地方不用 LLM(快 + 稳定 + 省钱)
-
先跑通再优化:MVP 阶段模拟数据就够了,等流程验证通过后再接入真实 API
参考资料
-
初赛报名帖:[预留:报名帖链接] -
项目技术栈:Python 3.14 + FastAPI + flutter + WebSocket + Zhipu GLM-4-Flash + Docker





