一路同行

举报
yd_217356579 发表于 2026/09/02 10:17:43 2026/09/02
【摘要】 「一路同行」智能体实践总结一个基于智能体架构的出行同伴匹配系统,帮助用户找到志同道合的出行伙伴。 一、项目概述「一路同行」 是一个面向出行社交场景的智能体(Agent)。用户只需用自然语言说出"某天想去哪里做什么",智能体便会自动解析意图、匹配已有活动、推荐同行伙伴。如果已有同目的地同时间的活动,用户可以直接加入;如果没有,用户可以一键创建新活动,等待其他伙伴加入。核心价值:让「一个人想去...

「一路同行」智能体实践总结

一个基于智能体架构的出行同伴匹配系统,帮助用户找到志同道合的出行伙伴。


一、项目概述

「一路同行」 是一个面向出行社交场景的智能体(Agent)。用户只需用自然语言说出"某天想去哪里做什么",智能体便会自动解析意图、匹配已有活动、推荐同行伙伴。如果已有同目的地同时间的活动,用户可以直接加入;如果没有,用户可以一键创建新活动,等待其他伙伴加入。

核心价值:让「一个人想去但不想一个人去」的出行需求,变成「找到组织、有人同行」的真实体验。


二、功能全景

用户输入 "明天想去紫金山"
         │
         ▼
┌─────────────────────────────────────┐
│  📍 意图解析                          │
│  日期→2026-07-24  地点→紫金山           │
│  城市→南京  标签→🏃爬山 🥾徒步 🌸观光    │
└─────────────────────────────────────┘
         │
         ▼
┌─────────────────────────────────────┐
│  🔍 四级智能匹配                       │
│  🔴 精确匹配  同天+同地点               │
│  🟠 标签匹配  同城+同标签               │
│  🟡 城市匹配  同城+不同地点+不同标签     │
│  🟢 日期临近  前后1+同地点             │
└─────────────────────────────────────┘
         │
    ┌────┴────┐
    ▼         ▼
 加入活动   创建活动
    │         │
    ▼         ▼
┌─────────────────────────────────────┐
│  ⏰ 活动前1小时自动提醒                 │
│  优先短信 → 降级 Web 推送              │
└─────────────────────────────────────┘

2.1 已实现功能清单

序号 功能 说明
1 自然语言意图解析 识别"明天"“周五”"下周"等时间表达,提取地点与活动类型
2 地点自动归类 迪士尼→上海、玄武湖→南京 等确定性映射,模糊地点需确认
3 标签智能推断 根据活动描述关键词自动打标签(跑步→🏃跑步,爬山→⛰️爬山)
4 四级匹配推荐 精确→标签→城市→日期临近,按相关性分层展示
5 加入已有活动 收集姓名/性别/联系方式,追加参与者,设提醒
6 创建新活动 含集合地点、标签选择、人数上限等完整信息收集
7 发起人信息展示 展示发起人姓名+联系方式,方便参与者联系
8 当天其他活动推荐 按兴趣标签分层推荐同城其他活动
9 定时提醒 基于 cron 的活动前1小时自动提醒
10 查看/搜索活动 按日期、标签查看活动
11 虚拟测试数据 11个南京活动,覆盖7/24-7/26三天,7种标签类型

三、技术架构

3.1 项目结构

skills/travel-companion/
├── SKILL.md              # 智能体技能定义(角色、工作流、模板)
├── data/
│   └── activities.json   # 活动数据库(11条测试数据)
├── scripts/
│   └── send_sms.py       # 阿里云短信发送脚本(纯标准库)
└── config/
    ├── sms_config.example.json   # 短信配置模板
    └── sms_config.json           # 实际短信配置(需用户填入凭证)

3.2 技术栈

层级 技术 说明
智能体框架 JiuwenSwarm 智能体调度、cron 定时、文件读写、Shell 执行
对话模型 DeepSeek V4 Pro / Kimi K2.6 / GLM 5.2 多模型可切换
数据存储 JSON 文件 activities.json,轻量级、人类可读
定时任务 Cron(Quartz 7段式) 精确到秒的一次性或周期性提醒
短信发送 阿里云 SMS API Python 标准库实现,无需 pip install
运行环境 Windows / PowerShell 本地智能体沙箱

3.3 数据模型

{
  "id": "act_20260724_nanjing_zhongshanling_001",
  "location": "中山陵",
  "city": "南京",
  "date": "2026-07-24",
  "time": "08:00",
  "meeting_point": "中山陵博爱坊前",
  "activity_desc": "中山陵徒步登顶",
  "tags": ["徒步", "观光"],
  "creator": {
    "name": "老周",
    "gender": "男",
    "contact": "13700003331"
  },
  "participants": [
    {
      "name": "老周",
      "gender": "男",
      "contact": "13700003331",
      "joined_at": "2026-07-20T16:00:00+08:00"
    }
  ],
  "status": "open",
  "max_participants": 10,
  "created_at": "2026-07-20T16:00:00+08:00",
  "reminder_job_id": "travel_reminder_xxx"
}

四、核心设计

4.1 智能标签体系(7大类 40+ 标签)

大类 标签示例 图标
运动户外 跑步、爬山、骑行、徒步、露营、滑雪、健身、球类 🏃⛰️🚴🥾🏕️⛷️🏋️⚽
美食逛吃 美食、火锅、烧烤、下午茶、咖啡、探店、夜市 🍜🫕🍖🍰☕🔍🌃
文艺展览 展览、博物馆、美术馆、话剧、音乐会、Livehouse 🎨🏛️🖼️🎭🎵🎸
休闲娱乐 游乐园、剧本杀、密室、KTV、桌游、逛街、温泉 🎢🎭🔐🎤🎲🛍️♨️
自然观光 赏花、看海、日出、日落、公园、动物园、古镇 🌸🌊🌅🌇🌳🐘🏘️
学习成长 图书馆、自习、讲座、工作坊、读书会 📚✏️🎓🔧📖
演出赛事 演唱会、音乐节、体育赛事、漫展、脱口秀 🎪🎤🎵🏟️🎮🎌

自动推断:用户说"想去爬山拍照"→ 自动标签 ["爬山", "拍照"],创建时用户可以修改。

4.2 地点-城市自动映射

"迪士尼"     → 上海      "故宫"       → 北京
"西湖"       → 杭州      "兵马俑"     → 西安
"玄武湖"     → 南京      "洪崖洞"     → 重庆
"环球影城"   → 北京/多城(需确认)

覆盖全国 50+ 知名景点,确定性映射 16 条 + 模糊匹配(需向用户确认)。

4.3 四级匹配策略

优先级 层级 命中示例
🔴 第1层 精确匹配 用户想去紫金山 → 已有紫金山晨跑活动
🟠 第2层 标签匹配 用户想去栖霞山(爬山)→ 推荐中山陵徒步(同标签徒步)
🟡 第3层 城市匹配 同城当天其他活动(不同地点、不同标签)
🟢 第4层 日期临近 前后1天 + 同一地点

五、工作流程

Step 1: 意图解析
   ├── 日期转换("明天""2026-07-24")
   ├── 地点提取 + 城市自动补全
   ├── 标签自动推断
   └── 回显确认

Step 2: 四级匹配
   ├── 读取 activities.json
   ├── 逐层匹配
   ├── 分组展示结果
   └── 等待用户选择

Step 3: 加入 / 创建
   ├── 收集:姓名 + 性别 + 联系方式 + 集合地点 + 标签
   ├── 确认信息
   └── 写入 activities.json

Step 4: 设置提醒
   ├── 创建 cron 定时任务(活动前1小时)
   ├── 触发时发送短信(如有配置)
   └── Web 推送作为兜底

六、实践演进过程

「一路同行」不是一蹴而就的,而是通过多轮迭代逐步完善的:

阶段 时间 内容 产出
V1 基础搭建 7/23 上午 核心匹配逻辑 + 数据模型 + 创建/加入流程 SKILL.md + activities.json
V2 智能增强 7/23 上午 地点自动归类 + 兴趣标签体系 + 四级匹配升级 标签系统 + 50+地点映射
V3 首次实操 7/23 中午 叮当创建玄武湖散步活动,系统正式运行 首个真实活动数据
V4 测试数据 7/23 中午 生成 10 个虚拟南京活动,覆盖 3 天 7 种标签 11 条完整活动数据
V5 短信功能 7/23 下午 集成阿里云短信 + dry-run 测试 + 降级兜底 send_sms.py + 配置模板
V6 体验增强 7/23 下午 集合地点 + 发起人联系方式展示 数据模型扩展 + 模板升级
V7 多用户验证 7/23-24 蓝天加入栖霞山、清水加入中山陵,多用户并发测试 真实多人活动体验

七、后续拓展方向

7.1 📱 短信提醒(优先)

当前状态:脚本已就绪(send_sms.py),支持阿里云 SMS API,纯 Python 标准库,dry-run 测试通过。

待完成

步骤 操作 预计时间
1 阿里云开通短信服务,获取 AccessKey 10 分钟
2 申请短信签名「一路同行」 0.5-2 小时(审核)
3 申请通知模板 0.5-2 小时(审核)
4 填入 sms_config.json 1 分钟
5 真实发送测试 1 分钟

技术实现

# cron 触发时自动调用
python send_sms.py \
  --config sms_config.json \
  --recipients '[{"phone":"18888652356","name":"叮当"}]' \
  --activity "玄武湖散步" \
  --time "2026-07-24 14:00" \
  --location "南京玄武湖"

降级策略:未配置短信时自动降级为 Web 推送,不影响核心功能。

费用估算:0.045 元/条,100 条仅需 4.5 元。首次开通通常赠送试用额度。


7.2 📧 邮箱提醒

  • 识别 @ 格式的联系方式,调用 SMTP 发送邮件
  • 与短信互补,覆盖不同偏好的用户

7.3 🗺️ 活动地图可视化

  • 将同城活动标注在地图上
  • 一键查看"附近有哪些活动"

7.4 ⭐ 用户信用与评价系统

  • 参与者互评机制
  • 发起人信用分
  • 降低鸽子率

7.5 💬 活动内聊天

  • 加入活动后自动建群(飞书/微信/系统内置)
  • 活动前讨论具体安排

7.6 📊 活动热度与推荐算法

  • 基于历史数据推荐热门活动
  • 个性化推荐(根据用户偏好标签)

7.7 🔗 外部平台对接

  • 飞书机器人集成
  • 微信小程序
  • Telegram Bot

八、测试数据一览

当前系统共有 11 个活动,覆盖 2026-07-24 至 07-26:

日期 活动 标签 人数
7/24(周五) 玄武湖散步 🌿观光 🌸公园 1
7/24(周五) 紫金山晨跑看日出 🏃跑步 🌅日出 5
7/24(周五) 老门东美食探店 🍜美食 🔍探店 3
7/24(周五) 中山陵徒步登顶 🥾徒步 🌿观光 6
7/25(周六) 明孝陵赏花漫步 🌸赏花 🌿观光 3
7/25(周六) 秦淮河夜游画舫 🌿观光 ✈️旅游 4
7/25(周六) 南京博物院看特展 🎨展览 🏛️博物馆 2
7/25(周六) 栖霞山徒步登山 🥾徒步 ⛰️爬山 6
7/26(周日) 夫子庙逛吃之旅 🍜美食 🌿观光 4
7/26(周日) 牛首山一日游 ✈️旅游 🌿观光 3
7/26(周日) 玄武湖晨跑团 🏃跑步 ⚽体育 2

九、关键经验总结

9.1 设计原则

  1. 渐进式增强:从核心匹配 → 标签推荐 → 短信提醒,每次迭代增加一层价值
  2. 优雅降级:短信不可用 → 自动走 Web 推送,功能核心不受影响
  3. 数据驱动:所有活动数据集中管理(JSON),Agent 无状态、可重启
  4. 自然语言优先:用户说人话,系统做翻译,零学习成本

9.2 踩过的坑

问题 解决
日期推算错误(周五算成周六) 严格使用当前日期 + 日历逻辑,不可凭直觉
数据覆盖写入 强制"先读后写"规则,避免并发覆盖
虚拟活动缺少字段 定义好数据模型后一次性补全,避免后续补丁式修改
短信依赖第三方 设计 dry-run 模式和解耦的降级策略

9.3 方法论

“智能体不是一次性建设,而是持续演进的服务。”

从 V1 到 V7,每一版都解决一个真实的用户痛点,而不是一次性设计完美系统。快速上线 → 收集反馈 → 迭代增强,是智能体实践的核心节奏。


十、文件清单

文件 路径 用途
技能定义 skills/travel-companion/SKILL.md 完整的工作流、模板、规则
活动数据 skills/travel-companion/data/activities.json 11条活动数据
短信脚本 skills/travel-companion/scripts/send_sms.py 阿里云短信发送
短信配置 skills/travel-companion/config/sms_config.example.json 配置模板
本文档 travel-companion-practice-summary.md 实践总结

📅 创建日期:2026-07-24
👤 智能体:一路同行(travel-companion)
🛠️ 框架:JiuwenSwarm

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。