【腾讯位置服务开发者征文大赛】用 AI Agent + MCP 重构"周边去哪儿"决策链路:我的真实踩坑与落地复盘
项目:AI 周边决策助手(微信小程序 + Node.js)
核心能力:腾讯位置服务(地点搜索、逆地理、路线规划)+ AI Agent 意图理解 + MCP 工具编排
关键词:真实痛点、真实使用、可解释推荐、工程稳定性、可复现
文章目录
- [【腾讯位置服务开发者征文大赛】用 AI Agent + MCP 重构"周边去哪儿"决策链路:我的真实踩坑与落地复盘](#【腾讯位置服务开发者征文大赛】用 AI Agent + MCP 重构“周边去哪儿”决策链路:我的真实踩坑与落地复盘)
-
- 为什么我要做这个项目:真实痛点来自每天都在发生的小犹豫
- 方案总览:把"搜索行为"升级成"决策服务"
- 我在项目里如何真实使用腾讯位置服务能力
- [AI Agent 与 MCP 在这个项目里到底解决了什么](#AI Agent 与 MCP 在这个项目里到底解决了什么)
-
- [AI Agent:负责理解"人话需求"](#AI Agent:负责理解“人话需求”)
- MCP:负责把多能力调用串成可控工作流
- [核心实现拆解:从一句话到 Top5 推荐的完整链路](#核心实现拆解:从一句话到 Top5 推荐的完整链路)
-
- [Step A:接收用户输入并做意图解析](#Step A:接收用户输入并做意图解析)
- [Step B:触发腾讯位置服务地点检索](#Step B:触发腾讯位置服务地点检索)
- [Step C:融合路线信息与场景评分](#Step C:融合路线信息与场景评分)
- [Step D:生成"可解释推荐理由"](#Step D:生成“可解释推荐理由”)
- [Step E:地图展示 + 一键导航](#Step E:地图展示 + 一键导航)
- 关键代码与工程化策略:稳定性、成本、可维护性
- 真实效果与复盘:哪些做对了,哪些还要继续优化
- 结语
为什么我要做这个项目:真实痛点来自每天都在发生的小犹豫
我做这个项目的起点,不是"为了做一个 AI Demo",而是一个很具体、很高频、很接地气的问题:
我们经常不是"找不到地方",而是"很难决定去哪一个地方"。
比如下班后你可能会说:
- "想找个安静点、能坐两小时、最好有插座的咖啡馆"
- "今天下雨,想去室内,别太远"
- "带娃出门,想找停车方便、适合小朋友活动的地方"
- "想散心,但不想走太远,也别太冷清"
这些表达里有明显的"约束条件"和"情境偏好"。
传统地图关键词搜索能解决"检索地点",但很难一次性解决"决策焦虑":
- 你要自己想关键词;
- 自己来回对比多个候选点;
- 再结合距离、路线、氛围做主观判断;
- 最后还得跳转导航。
这个过程非常碎片化,也非常耗费注意力。
所以我给自己定了一个清晰目标:把"找地点"变成"帮你做决定"。
方案总览:把"搜索行为"升级成"决策服务"
我的目标不是做一个"会聊天的地图壳子",而是做一条完整的可执行链路:
用户一句话需求 -> 系统理解意图 -> 检索周边候选 -> 生成可解释推荐 -> 地图展示并直接导航。
在体验上,我把它做成了微信小程序,用户路径尽量短:
- 输入自然语言需求;
- 若语义模糊,系统最多追问 1-2 个澄清问题;
- 返回 Top5 候选点(含距离、预计到达时间、推荐理由);
- 地图标注候选点,一键进入导航。
在架构上,我把后端拆成多个职责清晰的能力模块:
- 意图解析模块(规则兜底 + LLM 优先);
- 位置能力模块(腾讯位置服务能力封装);
- 推荐排序模块(多因素加权);
- 文案解释模块(让推荐"可理解");
- 健康检查与配置模块(保障服务可用性)。
这样做的好处是:后续想扩展更多场景(约会、亲子、旅游、校园)时,不需要推翻重做。
我在项目里如何真实使用腾讯位置服务能力
这部分是本文最核心的"真实体验"内容。
我不是只调用了一个接口,而是把腾讯位置服务放在了完整决策链路的关键节点。
地点搜索:把用户需求映射为可检索关键词
用户说的是自然语言,不是标准 POI 关键词。
我做了一个"意图 -> 检索词"映射层,例如把"适合久坐办公"映射到"咖啡馆/书店/共享办公空间"等候选检索词。
然后调用腾讯位置服务地点搜索能力,拿到候选 POI 列表。
这里我踩过两个坑:
- 关键词太宽:返回结果噪声高;
- 半径太大:候选很多,但实际不实用。
最终我做了"分层检索 + 半径动态收敛"策略:先用主关键词查一轮,再按用户约束补充次级关键词,最后按距离和场景过滤。
逆地理与位置元信息:补齐用户上下文
很多时候用户并不会明确输入当前位置。
我通过逆地理能力补齐"用户当前区域语义",比如商圈、街道、行政区,辅助推荐文案更贴近真实语境。
这一步在体验上很重要:
同样是"离你 1.2km",和"在你当前商圈步行可达"相比,后者更容易让用户快速决策。
路线规划:把"可去"变成"值得现在去"
很多推荐系统只给"地点",我更关注"行动成本"。
我接入路线规划能力,支持步行/骑行/驾车三种模式,实时给出预计耗时。
这让推荐结果从"信息展示"变成"决策辅助":
- 当用户赶时间时,15 分钟内可达优先;
- 当用户想放松时,步行可达且路线舒适优先;
- 下雨或夜间场景时,室内 + 打车便利可加权。
我的真实体会是:路线耗时信息显著提升了结果的可用性和说服力。
AI Agent 与 MCP 在这个项目里到底解决了什么
很多文章会把 AI Agent 写得很玄,我这里说人话:
它主要解决"理解需求"和"任务编排"两件事。
AI Agent:负责理解"人话需求"
用户表达通常不标准,甚至是模糊的。
AI Agent 在我的项目中负责:
- 抽取核心意图(找吃饭/学习/散步/亲子);
- 识别约束条件(安静、人少、室内、可久坐、价格);
- 判断是否需要澄清提问;
- 产出结构化检索参数。
我没有把系统完全绑死在单一模型上,而是做了"LLM 优先 + 规则回退"的双轨逻辑。
当模型不可用或响应异常时,系统不会直接失败,仍能返回可用结果。
MCP:负责把多能力调用串成可控工作流
在我的理解里,MCP 的价值不在"炫酷",而在"统一工具调用边界"。
我把地点搜索、逆地理、路线规划等能力封装成标准工具,Agent 通过 MCP 进行调用编排。
这样做的好处很实际:
- 工具接口统一,后续新增能力成本低;
- 日志更清晰,方便排查问题;
- 可单独 mock 某个工具,做稳定性与回归测试;
- 可做调用策略控制(例如超时、重试、降级)。
一句话总结:AI Agent 决定"做什么",MCP 保证"怎么做得稳"。
核心实现拆解:从一句话到 Top5 推荐的完整链路
这里给出我项目里的实际处理流程,便于复现:
Step A:接收用户输入并做意图解析
输入示例:
"附近找个安静点、能坐两小时办公的咖啡馆"
解析结果(结构化)大致如下:
- 场景:学习办公
- 类别偏好:咖啡馆
- 约束:安静、可久坐、有可能需要插座
- 距离偏好:附近(默认半径)
- 出行模式:未指定(后续补齐)

Step B:触发腾讯位置服务地点检索
用主关键词先检索,再根据约束补充候选词扩展。
通过半径和结果质量阈值控制,筛掉"看起来相关但体验不匹配"的点。

Step C:融合路线信息与场景评分
对每个候选点补齐路程与耗时信息,再按综合分排序。
综合分主要考虑:
- 场景匹配度(约束命中情况);
- 到达成本(距离/耗时);
- 结果稳定性(数据完整度)。

Step D:生成"可解释推荐理由"
我坚持每个候选结果都要有一句可读理由,比如:
- "步行约 9 分钟,环境相对安静,适合短时办公"
- "离你更近,通勤成本低,且周边配套更完整"
这部分看似简单,实际上是用户是否"信任推荐"的关键。
Step E:地图展示 + 一键导航
最终结果不是停在列表,而是直接落到地图 marker,用户可以点选任意候选点发起导航。
从"看到推荐"到"开始行动"的路径被尽可能缩短。

关键代码与工程化策略:稳定性、成本、可维护性
一个能参加比赛、还能长期维护的项目,必须在工程层面有基本盘。
我重点做了三件事:
健康检查与错误分级
通过健康检查接口快速判断:
- 环境变量是否齐全;
- 外部能力是否可达;
- 当前运行模式(mock 还是 live)。
错误处理上我做了"可恢复优先":
- 外部调用超时 -> 尝试降级结果;
- LLM 不可用 -> 回退规则解析;
- 路线失败 -> 保留 POI 结果并提示部分能力受限。
可测性设计
我把意图解析、推荐排序、位置服务封装分开,便于单测覆盖。
同时提供了端到端烟雾验证脚本,确保核心链路可跑通。
可扩展结构
我尽量避免把逻辑都堆在一个路由里,而是拆成服务层与工具层。
这样后续想接入更多推荐策略、更多业务场景时,改动范围会更可控。
真实效果与复盘:哪些做对了,哪些还要继续优化
做对的部分
-
聚焦一个真实痛点场景
没有做成"万能生活助手",而是先把"周边去哪儿决策"这条链路跑通。
-
强调可解释推荐
用户愿意点导航,不是因为你返回了 5 个点,而是因为你说清楚了"为什么是这 5 个点"。
-
工程化优先于炫技
mock/live、降级回退、健康检查这些能力,在比赛演示里反而更容易体现专业度。
-
把热门话题变成可落地价值
AI Agent、MCP 不是概念堆砌,而是实实在在提升了理解能力与编排能力。
仍需优化的部分
- 个性化还不够:目前更多是"场景推荐",下一步会引入偏好学习;
- 推荐排序还可更精细:可加入时间段、天气、拥挤度等因子;
- 多轮对话可以更自然:澄清问题应更短更聚焦,减少用户负担;
- 结果反馈闭环待完善:计划加入"本次推荐是否满意"用于在线学习。
结语
这次项目让我最有收获的一点是:
地图能力的价值,不只在于"知道地点在哪",更在于"帮助用户更快做决定并立刻行动"。
腾讯位置服务给了我稳定可靠的位置能力底座,
AI Agent 让我能更自然地理解用户意图,
MCP 则把多能力调用变成可治理的工作流。
如果你也在做地图 + AI 的项目,欢迎交流你的场景与实现思路。
你觉得"周边决策助手"下一个最值得做的方向,是亲子、约会、旅行,还是校园?
如果这篇文章对你有帮助,也欢迎点赞、评论、转发,一起把"AI + 位置服务"的真实落地案例做得更扎实。