LifeAgent 智能生活助手

【生活娱乐赛道】Life Agent智能生活助手

一、Demo 简介

LifeAgent 是一款 AI 驱动的本地生活智能助手,用户通过自然语言对话即可完成出行规划、美食订餐、购物比价、就医挂号等日常高频生活服务。产品形态为 Web 应用(PWA),支持桌面端和移动端访问。

面向用户

  • 城市白领:日常出差订票、点外卖、比价购物

  • 家庭用户:就医挂号、出行规划

  • 对手机 App 操作不熟悉的老年人:用说话的方式完成生活服务

核心功能

功能 说明
出行规划 :airplane: 自然语言描述出差/旅行需求 → 自动查询航班、酒店 → 智能推荐最优组合 → 一键确认下单
美食订餐 :steaming_bowl: 支持堂食点餐 + 外卖配送双模式,智能推荐餐厅和团购套餐
购物比价 :shopping_cart: 输入商品名称和预算 → 跨平台比价 → 预算超限智能提醒 → 支持调整预算重新查询
就医挂号 :hospital: 智能分诊(20+紧急关键词识别)→ 医院→科室→医生三级选择 → 模拟挂号流程

图1:LifeAgent 首页 - 对话式 AI 交互界面


二、Demo 创作思路

灵感来源

日常生活中,我们经常需要在多个 App 之间切换来完成一个简单的需求:

  • 出差:「打开携程查机票 → 打开美团订酒店 → 打开滴滴叫车」

  • 购物:「打开淘宝搜商品 → 打开京东比价 → 打开拼多多看有没有更便宜的」

  • 看病:「打开挂号 App → 选医院 → 选科室 → 选医生」

每个步骤都需要手动操作,且信息分散在各平台。如果能有一个统一的对话入口,用自然语言描述需求就能完成这些操作,体验会大幅提升。

想解决的问题

  1. 跨平台操作繁琐:用户不需要在 3-4 个 App 之间切换

  2. 比价困难:同一商品在不同平台价格差异大,手动比价耗时长

  3. 就医挂号门槛高:不知道挂什么科室、哪个医院有号

  4. 适老化不足:老年人不擅长使用复杂的 App 界面

为什么选这个方向

  • 高频刚需:出行、吃饭、购物、看病是每个人每天/每周都要面对的场景

  • AI 天然适配:这些场景的核心是「理解用户意图 → 调用对应服务 → 给出结构化结果」,正是 LLM 擅长做的事

  • 业务闭环完整:从需求采集 → 信息确认 → 比价/推荐 → 下单,全链路可在对话中完成

图2:购物比价场景 - 自动识别需求并生成确认卡片


三、Demo 体验地址

:globe_with_meridians: 在线体验链接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 角色 特点
:cat_face: 比价猫 ShoppingAgent 精打细算,帮用户省钱
:steaming_bowl: 小饭桌 FoodAgent 懂吃会点,推荐最优套餐
:airplane: 出行助手 TravelAgent 规划最优行程组合
:hospital: 就医助手 HospitalAgent 紧急关键词识别,快速分诊

Step 4:智能比价 + 预算管理

ShoppingAgent 实现跨平台比价:

  1. 用户输入商品 + 预算 → LLM 提取结构化购物信息

  2. 生成确认卡片,用户确认后开始比价

  3. 超出预算时:自动过滤不可达平台 → 展示警告 → 提供"调整预算"或"查看其他品类"选项

  4. 预算重试:保留已填信息(商品/城市/地址),仅更新预算 → 重新比价(避免上下文丢失)

TRAE Session IDs

:warning: 以下为开发过程中的关键任务 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 反向代理

五、开发心得

踩坑记录

  1. LLM 识别不一致:关键词匹配结果被 LLM 二次调用覆盖 → 引入 scene_override 参数,router 层识别结果强制传递

  2. WebSocket 并发竞态:用户快速点击导致状态错乱 → 引入 asyncio.Lock 保护 CONFIRMING→SELECTING 转换

  3. 前端卡片交互:桌面端对比列表点击无响应 → 排查发现 price 字段缺失导致渲染空值,补充后端字段后修复

  4. 上下文丢失:「调整预算」操作清空了用户已填的商品信息 → 改为仅保留非预算字段,设置 budget_retry 标志跳过 LLM 采集

  5. **长记忆混乱:**我一般会创建Agent辅助开发,例如这次我创建了一个Devbuddy的Agent辅助我开发,但是长时间的开发沟通,会导致记忆过长Agent会出现记忆混乱,每当这个时候我都选择清空记忆,开启一个新的对话。

经验总结

  • 状态机是对话式应用的骨架:没有清晰的状态管理,多轮对话就是灾难

  • LLM 是锤子,不是瑞士军刀:能用规则解决的地方不用 LLM(快 + 稳定 + 省钱)

  • 先跑通再优化:MVP 阶段模拟数据就够了,等流程验证通过后再接入真实 API


参考资料

  • :trophy: 初赛报名帖:[预留:报名帖链接]

  • :hammer_and_wrench: 项目技术栈:Python 3.14 + FastAPI + flutter + WebSocket + Zhipu GLM-4-Flash + Docker