Skip to content

【外滩大会2026】OneTrail 一径:徒步路线规划助手 #69

Description

@eurekaneon

比赛提交材料

参赛项目名称

OneTrail 一径:徒步路线规划助手

团队 / 作者

成员:eurekaneon、RealTapeL

项目简介

周末临时想去徒步时,真正让人犹豫的往往不是“哪里有山”,而是几个连续的问题:这条路线会不会太累?当天会不会下雨?从我现在的位置怎么过去?要不要带登山杖?同行的人能不能走完?这些信息通常散落在地图、天气、攻略和购物 App 里,用户需要自己拼出一个决定,最后还可能因为信息过多而放弃出发。

OneTrail 一径就是从这个真实场景出发做的产品。它把一次徒步看成一个完整的决策过程:先理解人,再理解路线,最后把结论变成可以照着执行的行程。用户填写日期、目的地、人数、预算、体能、兴趣和已有装备后,不是得到一堆搜索结果,而是得到“为什么推荐这条路、有什么风险、怎么到、需要带什么”的完整答案。

产品体验上,我们没有把徒步做成冷冰冰的工具,而是用暗黑像素风构建一种带有游戏感的户外探索体验:深色底、像素化图标、荧光绿/橙色状态提示、等高线与网格纹理,结合 Stats HUD、路线等级、风险警报和任务式清单,让用户感觉自己正在解锁一张真实地图、准备一次真实冒险。规划页用明确的目标卡和少量关键输入降低开始门槛;推荐页用 Top 卡片、路线评分和“适合你的理由”制造探索动力;路线详情用海拔、距离、难度和安全标签呈现户外硬核数据;执行页用时间线、补给点和装备清单把计划变成行动;移动端则用底部 Tab 让用户在规划、路线库、行程和装备之间快速切换。整体风格追求“游戏化但不幼稚、科技感但不疏离”,让用户愿意迈出第一步,并在一次次完成路线后爱上徒步。

我做了什么

我使用百炼 AI 编程能力完成了 OneTrail 从产品原型、前后端开发、智能决策逻辑、数据接入到部署打包的完整工程落地,并与队友通过 Git 分支协作完成合并、联调和验证。整个过程不是先做一个“看起来像 App”的页面,而是围绕用户从产生想法到真正出发的路径,逐步解决每一个体验断点。

1. 从“我想去走走”到“我知道今天怎么走”

  • 设计并实现“开始规划”入口:收集日期、目的地/当前位置、同行人数、预算、体能、兴趣标签和已有装备。
  • 实现智能路线规划:先根据距离、爬升、预计耗时和难度进行硬筛选,再结合用户偏好、历史能力、兴趣、天气、位置距离等因素进行多维度评分,输出 Top 3/Top 5 推荐和备选路线。
  • 为每条推荐生成可解释的决策依据,说明路线为什么适合用户,并给出天气影响、泥泞风险、体能匹配度和安全注意事项。
  • 将路线推荐结果继续串联到路线详情、加入计划和执行助手,形成从“想去”到“出发”的完整旅程。

我们把一次使用拆成了一个很具体的故事:周五晚上,用户打开 OneTrail,输入“周六、杭州、半天、预算有限、体能一般、想看溪流、已有背包”。系统先确认用户真正关心的不是路线数量,而是强度、时间和景观是否匹配;随后给出几条可比较的路线。用户点开其中一条,可以看到适合自己的原因、天气影响、交通方式和风险提示;点击“加入计划”后,推荐结果不再停留在卡片里,而是进入执行页,变成出发时间、交通、补给和装备清单。

这个闭环解决的是“信息找到了,但仍然不敢出发”的问题:每个结论都尽量回答一个实际疑问,每一步都能回到下一步行动。

2. 让阿里云百炼 Agent 自主完成路线规划协同

  • 在阿里云百炼中采用 Agent 应用承载自主路线规划:Agent 负责理解“我想在周六去杭州、半天、体能一般、想看溪流”等自然语言需求,自主判断需要查询哪些数据并组织回答。百炼官方将旅行规划列为 Agent 适用场景,Agent 可以调用知识库和 MCP 服务完成任务。
  • 通过百炼 MCP 接入地图与实时地理信息工具,优先使用官方 Amap Maps MCP 查询天气、地理位置和交通等信息;路线库、用户偏好、历史徒步、补给点和装备目录等项目数据,则通过自定义 MCP 服务或高代码应用中的工具接入百炼 Agent。
  • 使用百炼知识库承载路线说明、地形标签、安全须知和装备知识;明确选用 text-embedding-v4 作为路线语义向量模型,将路线描述与用户需求向量化,用于语义召回,再结合距离、爬升、耗时、难度等结构化字段过滤。知识库需要更高精度时,可叠加 qwen3-rerank 对召回结果二次排序。
  • 使用百炼平台的自定义 Skill 能力挂载徒步领域能力,具体配置为:onetrail-route-retrieval(路线语义检索)、onetrail-route-decision(体能/时间/兴趣/预算综合决策)、onetrail-weather-risk(天气与泥泞风险评估)、onetrail-trip-builder(交通、时间线、补给点编排)、onetrail-gear-check(已有装备与装备缺口分析)和 onetrail-recommendation-explainer(生成可解释推荐理由)。这些是 OneTrail 自定义 Skill,不冒充百炼官方预置 Skill;每个 Skill 的 ZIP 根目录包含 SKILL.md,定义名称、描述、触发条件、输入字段和结构化输出。
  • Agent 先把自然语言需求整理成结构化约束,再按需调用 MCP、知识库和向量检索:当前位置不明确时先做定位/逆地理编码,天气影响较大时优先检查预报和泥泞风险,路线确定后再查询交通、补给点和装备缺口。
  • 百炼 Agent 的主模型明确选用 qwen3.7-plus:负责需求理解、工具选择、候选路线分析、风险摘要和推荐理由生成;路线知识检索使用 text-embedding-v4,知识库检索需要二次排序时使用 qwen3-rerank。最终推荐仍受到后端距离、爬升、耗时、难度和天气等硬约束校验,避免只凭自然语言做不安全的路线决定。
  • 让模型输出结构化的路线分析结果,包括候选排序、匹配原因、风险提示、行程建议和装备建议,前端以卡片、时间线和清单形式展示。
  • 对天气、路线、装备和历史记录进行统计分析,形成用户能力画像、偏好画像和路线适配度,为后续推荐提供数据基础。

注:百炼 API/MCP 负责智能分析、上下文编排和解释生成;高德 Web Service API 负责真实的地图、天气、逆地理编码、交通和周边地点数据;业务规则负责硬筛选和安全兜底。

这套设计的重点是“自主,但不失控”:百炼 Agent 负责理解需求、选择工具、组织分析和解释结果,后端业务规则负责安全边界;如果外部数据没有配置或调用失败,系统明确提示依赖不可用,不用虚构天气、路线或装备信息。模型输出采用结构化字段,前端只展示经过校验的路线、风险和建议,用户可以看懂,也可以自行判断。对于固定的筛选和输出链路,也可以使用百炼 Workflow 固化为可重复执行的流程。

3. 用暗黑像素风把徒步做成一次可玩的探索

我参与了前端信息架构、视觉语言和交互取舍,把功能收束为四个清晰入口:开始规划、路线库、我的行程、装备。桌面端使用顶部导航,移动端使用底部 Tab,保持同一套用户心智模型。视觉上以暗黑像素风为主线,将徒步路线、海拔、天气和装备数据设计成类似游戏 HUD 的信息模块;用户不是在填写复杂表格,而是在领取一次探索任务、查看路线属性、补齐装备并完成挑战。页面之间通过按钮串联,而不是让用户反复回到首页:需求输入 → 推荐结果 → 路线详情 → 执行助手,装备缺口再自然进入装备比选。

  • 规划页:用暗色背景、像素化控件和清晰的任务目标,让用户像接受一次探索任务一样开始规划。
  • 推荐页:用 Top 3 卡片、路线等级、匹配理由和荧光状态色承载决策,让用户产生“想解锁这条路线”的动力。
  • 路线详情:用数据 HUD、等高线/网格视觉、地形与安全标签呈现硬核户外信息,同时保留评价和“值得去”判断建立信任。
  • 执行助手:用时间线、交通、补给和装备清单模拟任务面板,降低临出发前的记忆负担。
  • 装备页:用品类 Tab、对比卡和 GAP PICKS,让“缺什么”比“买什么”更明确,像完成出发前的装备检查。
  • 移动端:针对拇指操作、状态栏遮挡、WebView 回弹和底部导航重新适配,让户外场景下的单手操作更直接,而不是简单缩小桌面页面。

4. 完成路线库与路线可信档案

  • 实现路线搜索、标题/描述/区域关键词检索和景观标签筛选。
  • 实现路线列表、路线详情、距离/爬升/耗时/难度等数据展示。
  • 增加地形、安全信息、适合人群、路线标签和路线气质印象。
  • 实现路线评价、评分聚合、印象投票、“值得去”判断和“想去/去过”收藏。
  • 支持登录用户继续录入真实路线,路线库可持续扩充。

5. 完成出行执行助手

  • 将选中的路线转化为可执行行程。
  • 展示驾车、公交/地铁等交通方案和到达信息。
  • 展示出发时间、徒步时间、关键节点等行程时间线。
  • 查询路线起点附近的补给点。
  • 提供装备清单、装备缺口提示、海拔/路线信息和出发前操作提醒,帮助用户从规划切换到实际执行。

6. 完成装备推荐与比选

  • 建立真实装备目录,按品类浏览和筛选。
  • 根据路线特点、天气、预算和用户已有装备生成装备参考。
  • 过滤用户已经拥有的装备,识别需要补齐的 GAP PICKS。
  • 实现装备评分、真实评价、评价聚合和装备对比卡片。
  • 将装备建议与路线规划结果联动,避免泛化地推荐无关装备。

7. 完成账号、用户画像与徒步成长数据

  • 实现邮箱密码注册、登录、JWT 鉴权和个人信息读取。
  • 保存用户的距离、爬升、耗时、难度和兴趣偏好。
  • 支持记录历史徒步活动,并据此计算能力画像;没有历史样本时明确提示使用静态偏好。
  • 实现徒步打卡和感受记录,让用户可以沉淀自己的徒步数据。
  • 完成 TBTI 徒步人格测试:参考 MBTI 的 16 型结构设计徒步者人格测评,将测试结果绑定账号,并参与路线推荐和个性化文案展示。

8. 完成双端产品与工程交付

  • 使用 Vue 3 + Vite 完成 Web 单页应用,并接通 FastAPI 后端真实接口。
  • 使用 FastAPI、SQLAlchemy、PostgreSQL 完成身份、路线、推荐、历史、评价、收藏、装备和平台服务等后端模块。
  • 使用高德 Web Service API 接入逆地理编码、天气预报、驾车/公交路线规划和周边徒步地查询。
  • 通过 Capacitor 打包安卓 APK,并完成移动端底部 Tab、状态栏安全区、WebView 滚动行为和响应式布局适配。
  • 增加健康检查、集成状态、前端错误上报和自动化测试,确保外部服务未配置时明确返回依赖错误或空结果,不伪造天气、路线、装备和评价数据。

技术亮点

OneTrail 的核心不是简单地“搜索一条路线”,而是把多源数据转化为可执行决策:

用户需求与画像
    ↓
百炼 Agent + Qwen + MCP + Skill:自主规划、工具调用、数据分析、推荐解释
    ↓
百炼知识库 + text-embedding-v4/v3:路线语义召回与相关性匹配
    ↓
路线/天气/交通/补给/装备数据汇总
    ↓
硬约束筛选:距离、爬升、耗时、难度、安全
    ↓
可解释评分与排序
    ↓
Top 推荐 + 备选路线 + 风险提示 + 行程时间线 + 装备清单

系统在真实数据不可用时不会编造外部结果;模型生成内容也必须基于已获取的结构化数据,并经过业务规则校验。

使用的工具与技术

· 百炼 CLI / 百炼 AI 编程能力:代码生成、代码审查、报错诊断、文档理解、调试、部署和打包。
· 阿里云百炼 Agent 主模型:qwen3.7-plus,负责自主规划、Function Calling/MCP 工具选择、路线分析和解释生成。
· 阿里云百炼官方 MCP:Amap Maps MCP,用于地理编码、天气、地点搜索和交通路线等实时地理信息。
· OneTrail 自定义 MCP:onetrail-route-data-mcp,暴露 search_routes、get_route_detail、get_user_profile、get_hiking_history、get_supply_points、list_equipment 等工具;通过百炼 MCP 管理部署并挂载到 Agent。
· 百炼向量模型:text-embedding-v4,用于路线描述、标签、用户需求的语义向量化;可选 qwen3-rerank 对召回路线进行精排。
· OneTrail 自定义 Skills:onetrail-route-retrieval、onetrail-route-decision、onetrail-weather-risk、onetrail-trip-builder、onetrail-gear-check、onetrail-recommendation-explainer,均以带 SKILL.md 的 Skill ZIP 包上传到百炼 Skill 管理并添加到 Agent。
· 前端:Vue 3、Vite、Vue Router、Capacitor。
· 后端:Python 3.11、FastAPI、Pydantic、SQLAlchemy 2.0、PostgreSQL、JWT、Argon2。
· 外部数据:高德 Web Service API。
· 工程协作:Git、GitHub、GitHub Release、Docker Compose、pytest、frp 内网穿透。

百炼官方技术参考:

· 百炼应用类型:Agent、Workflow 与高代码应用
· 百炼官方 MCP 服务
· 百炼 Skill
· 百炼模型上下文协议 MCP
· 百炼向量化模型

效果展示与项目链接

· 在线 Demo:http://150.158.126.172:8082
· 演示账号:admin@onetrail.dev / admin123456(登录页也提供一键进入)
· 安卓 APK:https://github.com/RealTapeL/Onetrail/releases/tag/v0.3.0
· GitHub 仓库:https://github.com/RealTapeL/Onetrail(develop 分支)

Image Image Image Image Image

产出为一个可注册登录、可定位、可生成个性化路线推荐、可查看天气与交通、可执行行程、可查询补给点、可比选装备、可评价收藏路线、可记录徒步、可完成 TBTI 测评的完整双端应用。

踩坑与解决

· Git 本地对象损坏:排查损坏 commit 对象后清理对应对象并重新拉取。
· 域名备案拦截:改用公网 IP + 端口 + frp 内网穿透保证服务访问。
· Failed to fetch:逐层排查 CORS、安全组端口和 frp 代理链路。
· 安卓 WebView 整页拖动:通过 fixed 布局和 overscroll-behavior: none 修复。
· 安卓状态栏遮挡:引入 safe-area 适配并调整移动端头部布局。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions