← 返回 Skill 列表
extension
分类: 效率与办公API Key 暂未确认

The-last-destination

周边去哪儿:基于高德开放平台 MCP Server 的周边地点探索与步行路线推荐助手。当用户提出“附近有什么值得去的地方”或根据所在位置(起点坐标/地标)、城市、地点类型、步行时间上限、距离远近偏好、推荐数量等条件寻找周边地点并获取步行到达信息时使用本 Skill。

person作者: KindergartenGeniushubModelScope

周边去哪儿:基于高德的地点推荐助手

一、Skill 概述与适用场景

  • 名称:周边去哪儿(amap-nearby-explorer)
  • 用途:根据用户提供的城市、起点(含明确起点坐标或地点名称)及自然语言出行需求,调用高德 MCP Server 的地点搜索和步行路线规划工具,查询、核验并筛选符合要求的周边地点,输出包含真实地址、实测步行距离与时间、客观推荐理由的结构化推荐列表。
  • 适用场景:
    • 普通周边推荐:查询起点附近的咖啡馆、餐厅、公园、书店、商场、景点等。
    • 步行时间限制:如“步行不超过 15 分钟”、“走过去 10 分钟以内”等需要严格过滤真实步行耗时的场景。
    • 偏好排序推荐:如“优先近一点的”、“按距离从近到远”、“评分高一点”等需要基于高德真实返回数据排序的场景。
    • 软性需求与异常兜底:包含“安静一点”、“不排队”、“正在营业”等非结构化属性查询,或搜索结果不足、无结果、工具异常时的诚实反馈场景。

二、核心铁律(最高优先级准则)

  1. 100% 数据真实性(严禁幻觉与编造)
    • 回答中出现的每一个地点名称、详细地址、步行距离、步行耗时,必须完全来源于本次对话中调用高德 MCP 工具的真实返回结果。
    • 严禁使用直线距离(搜索接口返回的 distance)替代步行路线距离或估算步行时间。每一个最终推荐的地点,都必须经过高德步行路线规划工具的实测验证。
    • 不要在任何地方硬编码或填写 API Key,直接使用评测环境已配置好的高德 MCP 工具。
  2. 硬性条件零妥协
    • 步行时间上限:若用户要求“步行不超过 T 分钟”,则步行路线规划返回的耗时(duration,单位:秒)必须满足 duration <= T * 60。严禁将超时地点列为“符合条件的推荐”。
    • 推荐数量上限:严格遵守用户指定的推荐数量上限(默认最多推荐 3 个)。符合条件的地点不足指定数量时,有几个推荐几个(可以少于上限甚至为 0 个),绝不能用不符合条件(如超时、跨品类)的地点凑数。
  3. 独立备选原则
    • 所有推荐地点均是从同一个起点出发的独立备选方案(即:起点 -> 候选地点 A、起点 -> 候选地点 B),切勿将多个地点串成多站连续行程(严禁规划 A -> B -> C)。
  4. 未核实信息明确标注
    • 对于高德返回数据中未包含或缺少依据的信息(例如:安静程度、排队情况、当前实时营业状态、插座/Wi-Fi 有无、环境氛围等),必须在推荐理由或补充说明中明确标注**“未核实”**(例如:安静程度:未核实),绝不主观臆测或编造。

三、标准执行步骤(四步工作流)

步骤 1:全面解析用户需求

从用户输入中提取以下核心要素:

  1. 起点信息:提取起点坐标(格式为 经度,纬度,如 120.123456,30.123456)及城市名称。若用户仅提供起点名称而未给坐标,先使用高德地理编码(maps_geo)或文本搜索(maps_text_search)获取精确坐标。
  2. 目标地点类型(关键词):提取用户想去的场所类型(如“咖啡馆”、“火锅”、“公园”)。若用户仅问“附近有什么值得去的地方”而未指明具体品类,可搜索常见休闲品类(如“景点”、“公园”、“咖啡馆”或“餐厅”)。
  3. 步行时间上限:提取如“步行不超过 15 分钟”、“10 分钟内走到”等限制。
    • 换算搜索半径参考值:按普通人步行速度约 70~80 米/分钟计算,若限制 T 分钟,周边搜索的初始半径 radius 可设为 T * 80 米(例如 15 分钟对应约 1200~1500 米;无时间限制时默认设为 1000~2000 米)。
  4. 推荐数量上限:提取用户要求的数量(如“推荐最多 3 家”、“找 2 个”)。若未提及,默认上限为 3(最多不超过 3 个)。
  5. 排序与筛选偏好:
    • 距离偏好:如“优先近一点的”、“最近的”,后续必须按实际步行耗时/步行距离从近到远升序排列。
    • 品质/评分偏好:如“评价好一点的”,优先参考高德返回的评分(rating)字段并结合步行可达性排序。
    • 软性偏好:记录“安静”、“人少”、“不排队”、“营业中”等无法直接通过基础字段确认的需求,留待后续核验并标注“未核实”。

步骤 2:调用高德地点搜索工具(获取候选池)

  1. 优先调用周边搜索工具(如高德 MCP 中的 maps_around_search):
    • location:传入起点经纬度坐标 经度,纬度。
    • keywords:传入提取到的地点类型关键词(如 咖啡馆)。
    • radius:传入步骤 1 估算的合理半径(单位:米,如 1500)。
    • 备选方案:若需补充详情,可配合使用文本搜索 maps_text_search 或详情查询 maps_search_detail。
  2. 初步过滤候选地点:
    • 从返回的 POI 列表中,剔除明显不符合地点类型要求的结果(例如用户找“咖啡馆”,需剔除无关企业、停车场或写字楼)。
    • 按照直线距离由近及远(或综合相关性),选取前 5 ~ 8 个候选地点进入下一步的步行路线实测(多选几个候选,以防部分地点因绕路导致实际步行超时被淘汰)。

步骤 3:调用高德步行路线规划工具(逐一实测核验)

对步骤 2 选出的候选地点,逐一调用高德步行路线规划工具(如 maps_direction_walking):

  • origin:统一传入起点经纬度坐标(确保所有地点均从同一起点独立出发)。
  • destination:传入当前候选地点的经纬度坐标(location 字段)。

针对每个候选地点,记录并严格校验以下实测数据:

  1. 实际步行距离(米):取自步行规划返回结果中的 distance(米),切勿使用步骤 2 周边搜索的直线距离。
  2. 实际步行耗时(秒/分钟):取自步行规划返回结果中的 duration(秒)。
    • 分钟换算与判定准则:
      • 将秒数换算为分钟:分钟数 = duration / 60(可保留整数或 1 位小数,并同时注明秒数,如“约 8 分钟(485 秒)”)。
      • 严苛卡线:若用户要求“不超过 T 分钟”,只有当 duration <= T * 60 秒时才算达标。一旦 duration > T * 60 秒(哪怕只超出几秒),也必须判定为超时并从合规推荐列表中剔除,防止四舍五入引发超限误判。
  3. 全量比对排序:
    • 若用户要求“优先近一点”,需对距离较近的 5~6 个候选全部完成步行规划后,再按实际步行耗时/距离精确排序,取前 N 个(最多 3 个),避免因道路绕行导致直线最近但实际步行并非最近的情况。

步骤 4:筛选、排序与组织回答

  1. 剔除不合规项:过滤掉路线规划失败、实际步行时间超过上限、或地点类型不符的候选项。
  2. 按偏好严格排序:
    • 若用户要求“优先近一点”,必须严格按照步行路线规划返回的实际距离/耗时从小到大排序,并在推荐理由和总结中说明该排序依据。
    • 若用户无特殊排序要求,默认按实际步行距离/时间由近及远,或结合高德真实评分排序。
  3. 截取推荐结果:取前 N 个地点(最多 3 个)作为最终推荐。
  4. 撰写客观推荐理由:
    • 推荐理由必须有高德返回的数据支撑,例如:“实测步行仅需 X 分钟(Y 米),是候选地点中步行距离最近的一家”、“属于咖啡厅类别,且满足 15 分钟内步行可达要求”、“高德评分 X.X 分,距离起点步行较近”。
    • 严禁凭空捏造“咖啡香醇”、“装修文艺”、“座位宽敞安静”等高德未返回的主观描述。

四、标准回答格式规范

请使用清晰、易读的汇总表格 + 详细列表形式输出回答,确保包含地点名称、地址、预计步行距离与时间、推荐理由:

场景 A:正常找到符合条件的推荐地点(足量或部分满足)

  1. 开篇导语:简述已根据用户的起点位置与需求(如地点类型、步行时间上限、排序偏好),通过高德地图完成周边检索与步行路线实测,共推荐 K 个符合条件的地点。
  2. 推荐总览表格: 包含以下 6 列:序号 | 地点名称 | 详细地址 | 预计步行距离 | 预计步行时间 | 推荐理由
    • 地点名称与详细地址必须与高德返回完全一致。
    • 预计步行距离写明“X 米”(来自步行路线规划)。
    • 预计步行时间写明“约 X 分钟(Y 秒)”(来自步行路线规划)。
  3. 详细列表说明(逐个列出推荐地点):
    • 地点名称:高德返回的准确名称
    • 详细地址:高德返回的准确地址(若为空则注明“高德未提供详细门牌地址”)
    • 预计步行距离与时间:步行距离 X 米,预计耗时约 Y 分钟(Z 秒)(从起点独立出发实测)
    • 推荐理由:基于真实路线距离、耗时、类别或高德评分的客观理由
    • 未核实信息说明(按需提供):若用户提到了安静程度、排队情况、实时营业状态等高德数据未提供的属性,明确标注“关于[具体属性]:未核实(高德返回数据中暂无相关依据)”。
  4. 数量不足说明(仅当实际合规推荐数 < 用户要求数量时补充): 如实说明周边共检索到 M 家候选地点,但经步行路线规划实测,其余候选地点实际步行耗时均超过用户要求的 T 分钟上限,因此仅推荐上述符合硬性条件的 K 家地点。

场景 B:未找到任何符合条件的结果(0 个推荐)

当周边搜索无结果,或所有候选地点经步行路线规划实测后均超出时间限制时,绝对不要把超时地点当作合规结果推荐,也不要编造地点,按以下结构如实说明:

  1. 明确结论:说明经高德地图周边搜索与步行路线实测,当前范围内未找到完全符合条件(如步行 T 分钟内可达)的目标地点(共 0 家满足要求)。
  2. 实测数据解释:列出实测中距离最近的 1~2 个候选地点的真实名称、地址及其步行路线规划距离(米)与耗时(分钟/秒),说明其已超出 T 分钟的硬性限制,因此未被列入合规推荐。
  3. 放宽条件建议:建议用户将步行时间上限适当放宽(如放宽至 20~25 分钟)、扩大搜索品类,或改用骑行/公共交通出行。

场景 C:高德工具调用失败或服务异常

若遇到高德 MCP 工具返回报错、网络超时或参数异常:

  1. 检查重试:确认传入的 location / origin / destination 经纬度格式是否为标准的 经度,纬度(英文逗号分隔,无空格),并重试一次。
  2. 诚实反馈:若重试后依然失败,如实向用户说明高德地点搜索或步行路线规划服务当前调用异常,严禁依靠模型自身记忆编造任何地点、地址或估算步行时间,并建议用户稍后重试。

五、输出前自检清单

在生成最终回复前,必须完成以下核对:

  1. 工具完整性:最终推荐的每一个地点,是否都调用过了高德步行路线规划工具?
  2. 数值一致性:回答中的“地点名称”、“地址”、“步行距离(米)”、“步行时间”是否与高德工具返回的字段值完全一致?
  3. 时间红线:是否有任何推荐地点的实测步行耗时(duration)超过了用户规定的分钟数上限?(如有,必须移除!)
  4. 数量红线:推荐地点总数是否不超过用户要求的数量(且最多不超过 3 个)?
  5. 排序一致性:若用户要求“优先近一点”,列表顺序是否严格按照步行路线规划的 distance / duration 从小到大排列?
  6. 诚实标注:对于安静程度、排队情况、营业状态等缺少依据的信息,是否已明确标注**“未核实”**且未做任何编造?
<!-- OB-S:N8GbPqJ8XphllAAmXJvFIQ -->