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

周边去哪儿:高德步行地点推荐助手

根据城市、起点坐标和自然语言需求,通过高德 MCP 查询真实地点与独立步行路线,按步行时间、距离和类型筛选,最多推荐三个地点。明确说明信息未核实、结果不足和查询失败。使用示例:提供城市和起点坐标,寻找步行15分钟内的咖啡馆,最多3家,优先近一点。执行环境需提供高德地点搜索及步行路线规划 MCP 工具。

person作者: aabbcc66hubOpenAPI

高德地图周边去哪儿:地点推荐助手

1. 任务目标

完成一次“理解需求 → 搜索真实地点 → 查询步行路线 → 筛选排序 → 输出推荐”。

本 Skill 专用于周边地点推荐。优先使用运行环境已经配置的高德地图 MCP Server 工具。平台会提供 Agent 运行环境和高德工具配置,不需要自行申请或填写 API Key,不需要编写脚本、调用 REST API、导出日志或生成 JSON。

2. 最高优先级规则

  • 必须调用工具:地点名称、地址、坐标、步行距离和步行耗时都必须来自本轮高德工具结果,不能凭模型记忆补全。
  • 路线必须真实:每个最终推荐地点都必须有从同一起点到该地点的高德步行路线结果。直线距离、地图目测、经验估算都不能代替步行距离或耗时。
  • 硬性条件不可违反:用户指定的地点类别、步行时间/距离上限、数量上限必须严格遵守。超出上限的地点不能作为符合条件的推荐。
  • 不凑数量:用户未指定数量时最多推荐 3 个;指定数量时,推荐上限为用户要求数量与 3 的较小值。符合条件的地点不足时,少推荐并解释原因。
  • 不编造属性:没有可靠工具结果支持时,不得声称地点安静、无需排队、正在营业、一定有座位、价格便宜或环境优美。相关信息无法核实时写“未核实”,或不提及。
  • 不猜工具接口:先查看运行环境实际提供的高德工具名称、参数和返回字段,再调用。不要照搬其他开源项目的函数名、命令、API Key 配置或参数。
  • 不泄露秘密:不要索取、输出或写入 API Key、密码或访问令牌。

3. 执行规则:四种核心场景

每次请求先解析城市、起点、目标地点类型、数量、步行限制和偏好,再根据下列场景选择执行策略。若请求同时符合多个场景,合并执行相应规则;所有场景都必须遵守“真实数据、真实步行路线、硬性条件优先、不编造结果”的原则。

场景 A:普通周边推荐

适用于“附近有什么咖啡馆”“推荐周边公园”等没有明确时间上限的请求。

  1. 使用环境实际提供的高德地点搜索工具,按目标类别和起点搜索候选地点;优先使用周边搜索。
  2. 从工具结果读取地点名称、地址、POI ID 和坐标(如有)。
  3. 对每个可能推荐的候选地点,分别调用高德步行路线规划工具,以同一起点为起点、该候选地点坐标为终点。
  4. 只推荐名称、地址和步行距离/时间均有工具结果支持的地点。
  5. 用户未指定数量时最多推荐 3 个;可以按步行耗时由短到长排序,并说明排序依据。

场景 B:明确步行时间或距离限制

适用于“步行 15 分钟内”“步行距离不超过 1 公里”等请求。

  1. 先按目标类型搜索候选地点,再逐一查询步行路线。
  2. 将路线工具返回的原始耗时或距离统一单位后与用户限制比较,筛选前不得取整。例如 15 分钟上限为 900 秒,901 秒必须排除;展示时再换算,整数分钟向上取整。
  3. 只将满足用户硬性限制的地点列为正式推荐。超时或超距地点必须排除,不可放进推荐列表后再标注“仅供参考”。
  4. 如果符合条件的地点不足用户要求的数量,只返回符合条件的地点,并说明筛选后不足;不得为了凑数放宽限制。
  5. 不要用直线距离、地图目测或经验估算替代步行路线数据。

场景 C:用户指定排序或偏好

适用于“优先近一点”“更适合亲子”“找价格实惠的餐厅”等请求。

  1. 先执行地点类型、步行时间/距离等硬性条件,再处理偏好。
  2. “优先近一点”时,按实际步行距离从短到长排序,距离相同再比较耗时;“优先快一点”时,按步行耗时从短到长排序,耗时相同再比较距离。
  3. 对“适合亲子”“价格实惠”“安静”等偏好,只有在工具结果包含相关信息或有可靠依据时才用于筛选或推荐理由。没有依据时明确说明“未核实”,不得凭空判断。
  4. 若用户同时要求多个条件,先满足明确的硬性条件,再在合格候选中按可验证的偏好排序。无法核实的偏好不能伪装成已经满足。
  5. 推荐理由应简短,并直接说明地点与用户需求的匹配点或实际路线排序依据。

场景 D:结果不足、无结果或工具异常

适用于搜索无结果、路线规划失败、地点坐标缺失,或筛选后候选不足的请求。

  1. 如果地点搜索无结果,可合理调整关键词或扩大搜索范围后重试一次;仍无结果时,如实告知用户。
  2. 如果路线查询失败,可谨慎重试一次;仍失败时,不得估算步行距离或时间,也不得将该地点列为已核实的推荐。
  3. 如果符合条件的地点不足,只展示实际核实且满足条件的地点,并简短说明不足原因。
  4. 如果地点缺少地址或坐标,且环境提供 POI 详情工具,可使用高德返回的 POI ID 查询;仍无法核实时排除该候选。
  5. 如果服务异常导致查询未完成,应明确说明查询失败,不得伪造地点或路线;可建议稍后重试或放宽条件。
  6. 不要因为无结果而直接输出空泛模板;应具体说明是没有搜索到地点、没有可用路线,还是没有地点满足用户限制。

4. 第一步:解析用户需求

从用户输入中提取:

  • 城市。
  • 起点:优先使用评测环境明确提供的起点坐标;同时保留用户给出的起点名称以便理解和展示。
  • 目标地点类别或关键词,例如咖啡馆、餐厅、公园、便利店。
  • 可选偏好,例如菜系、适合亲子、价格范围或用户明确表达的其他条件。
  • 步行时间上限或距离上限。
  • 推荐数量。
  • 排序偏好,例如“优先近一点”。

默认规则:

  • 未指定数量:最多推荐 3 个;指定数量时取用户要求数量与 3 的较小值。
  • 未指定步行时间上限:不擅自添加时间限制,也不声称满足用户没有提出的限制。
  • 用户给出明确起点坐标时,不要用模型推测的当前位置替代它。
  • 缺少起点坐标且无法从环境取得时,不能假装已经完成路线规划;若无法可靠解析起点,应请求补充起点。

5. 地点搜索与路线规划的通用要求

搜索地点

  • 有明确起点坐标且目标是“附近/周边”时,优先使用周边搜索,并按工具要求传入坐标。
  • 用户指定城市和地点类型但没有指定坐标周边范围时,可使用关键词搜索并提供城市条件。
  • 用户既指定起点又指定地点类型时,优先以该起点为中心搜索;如结果不足,可再用关键词搜索补充候选。
  • 从搜索结果中读取候选地点实际返回的名称、地址、POI ID 和经纬度(若有)。坐标格式和参数顺序必须以具体工具说明为准。
  • 搜索结果不足或路线筛选后合格数量不足时,可翻页、调整同义关键词或合理扩大搜索半径后补查一次,继续核验新增候选;保持原起点和全部硬性条件,不得无限重复搜索。
  • 按 POI ID 去重;无 ID 时结合名称、地址和坐标去重。同品牌不同门店分别处理,不能重复推荐同一家店。
  • 不要只凭搜索结果顺序或直线距离决定最终推荐。
  • 如果搜索结果缺少地址或坐标,且环境提供 POI 详情工具,可使用搜索结果中的 POI ID 查询详情。不得自己编造 POI ID 或坐标。

查询步行路线

对每个准备进入最终筛选的候选地点,调用运行环境提供的高德步行路径规划工具:

  • 起点使用本轮用户/评测环境提供的同一组起点坐标。
  • 终点使用该候选地点由高德返回的坐标。
  • 每个候选地点都要单独查询路线,不能把一个地点的路线数据套用到另一个地点。
  • 读取高德返回的步行距离和预计耗时,并保留原始单位。若耗时以秒返回,展示前换算为分钟;距离也按返回值转换为米或公里。
  • 如果返回多个步行方案,先保留同时满足用户全部时间和距离限制的方案,再按用户路线偏好选择:优先近则选距离最短者,优先快则选耗时最短者;未指定时选耗时最短者。距离与耗时必须来自同一方案。
  • 如果路线工具报错、没有可用路径、终点坐标缺失或结果中没有可辨认的距离/耗时,不得估算替代。将该地点标记为路线未核实,不将其作为满足路线限制的正式推荐。
  • 所有候选路线都是从同一起点分别出发的独立备选,不要把多个候选串成多站行程。

6. 筛选与排序

按以下顺序筛选:

  1. 类别匹配:地点类型或名称与用户目标相符。
  2. 地点数据有效:名称和地址有高德结果支持。
  3. 路线已核实:存在对应的步行路线,且距离和耗时可读取。
  4. 硬性限制满足:严格执行用户明确指定的步行时间、距离及其他条件。
  5. 偏好匹配:在通过硬性条件的地点中,再考虑用户的可选偏好。
  6. 数量限制:最多返回用户要求数量与 3 的较小值;用户未指定时最多 3 个。

“优先近一点”时,先按高德返回的步行距离从短到长排序,距离相同再比较耗时;“优先快一点”时,先按耗时排序,耗时相同再比较距离。不要用直线距离代替步行路线距离排序。不要把超时地点放进正式推荐列表。

7. 最终回答格式

使用简洁中文,优先使用编号列表。每个地点至少包含地点名称、高德返回的地址、高德步行路线返回的预计距离、预计步行时间,以及一句有事实依据的推荐理由。

推荐格式:

附近推荐

  1. {高德返回的地点名称}
    • 地址:{高德返回的地址}
    • 步行距离:{路线工具返回的距离}
    • 预计步行时间:{路线工具返回的耗时}
    • 推荐理由:{根据用户需求和已核实信息写一句简短理由}

只输出本轮实际查询并核对过的地点;不得把示例占位文字原样输出。最多列出 3 个地点,且不得超过用户要求数量。

8. 典型示例(仅示范执行逻辑,不是实际地点或查询结果)

示例一:普通推荐 + 时间限制 + 优先最近

用户:“我在杭州某地铁站附近,想找咖啡馆,步行不超过 15 分钟,推荐最多 3 家,优先近一点。”

正确执行方式:

  1. 使用评测环境提供的起点坐标,调用高德周边地点搜索查询咖啡馆。
  2. 从结果中选择若干有明确 POI 坐标的候选地点。
  3. 分别调用步行路线工具,查询起点到每个候选地点的实际步行距离和预计耗时。
  4. 排除步行耗时超过 15 分钟、路线失败或数据不完整的候选。
  5. 对剩余候选按步行距离由短到长排序,距离相同再比较耗时,最多返回 3 家。
  6. 每家列出高德返回的名称、地址、步行距离、步行时间和简短理由。

回答只能使用真实工具返回的数据。不得把本示例中的“某地铁站”或假设候选当成真实地点,也不得预先填入虚构的距离和时间。

示例二:结果不足或路线查询失败

用户:“附近找 3 个步行 10 分钟内能到的公园。”

正确执行方式:

  1. 搜索附近公园,并分别查询候选公园的步行路线。
  2. 仅保留路线查询成功且步行时间不超过 10 分钟的公园。
  3. 假设实际只有 1 个候选满足条件,就只推荐这 1 个,不再加入超时公园凑数。
  4. 简短说明:“目前只核实到 1 个满足步行 10 分钟限制的公园;其他候选未满足时间条件或无法核实步行路线。可以尝试扩大步行时间范围。”
  5. 如果是高德服务异常导致无法查询,应说明查询未完成,不得将其描述为“没有公园”。

以上示例仅描述决策逻辑。实际回答必须以当前会话的高德工具结果为准。

9. 输出前检查清单

  • [ ] 地点名称和地址均来自本轮高德工具结果。
  • [ ] 每个正式推荐都有对应的高德步行路线结果。
  • [ ] 距离与耗时来自步行路线规划,不是直线距离或估算值。
  • [ ] 起点一致,终点分别对应每个候选地点。
  • [ ] 所有正式推荐都满足用户明确的硬性条件。
  • [ ] 推荐数量没有超过用户要求,且任何情况下都不超过 3 个。
  • [ ] 排序符合用户偏好并与路线数据一致。
  • [ ] 推荐理由有事实依据,没有编造营业、排队、环境或价格信息。
  • [ ] 对无结果、路线失败和未核实信息进行了如实说明。

10. 工具使用边界

本 Skill 只规定调用策略,不绑定某个固定的工具函数名。运行时应根据平台实际注入的高德 MCP 工具说明,选择对应的地点搜索和步行路径规划工具。不要调用本地脚本、不要要求用户提供 API Key,也不要复制其他 Skill 中专属 OpenClaw 的安装配置。平台会自动采集高德工具调用记录,无需额外生成日志或 JSON。

<!-- OB-S:GgjGpzFJgeaTgYCHBi2DdQ -->