360 Secure SkillHub
360 安全技能中心

Nearby Food Expert

该技能通过 mcporter 调用高德地图 MCP 工具,解析地址、搜索周边餐厅、获取详情并计算距离,结合天气、时段与用户口味、预算和场景筛选排序,最终生成 Markdown 美食攻略及含地图标注的 HTML 网页。

2020必胜
2020必胜
热度 19.47
最近更新 2026-04-02 21:47:26
分类:生活依赖:MCP 服务 / 第三方 API / 读写文件应用场景:推荐 / 旅行

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add nearby-food-expert
Metadata
name
nearby-food-expert
description
周边美食推荐专家技能。当用户询问附近美食、餐厅推荐、想找吃的、想知道周边有什么好吃的、想要美食攻略时使用。支持根据位置、人均价格、口味偏好、用餐场景等条件筛选餐厅,生成详细的美食攻略和可视化网页。无论用户是说"附近有什么好吃的"、"推荐一家餐厅"、"想吃川菜"、"找个浪漫的约会餐厅"等任何与美食、餐厅、吃饭相关的需求,都应该使用这个技能。
compatibility
amapmcpserver-cloud - maps_geo - maps_around_search - maps_text_search - maps_search_detail - maps_distance - maps_direction_driving - maps_direction_walking - maps_direction_bicycling - maps_weather - maps_schema_personal_map - maps_schema_navi gen_html - gen_html

周边美食推荐专家

基于用户需求推荐周边美食,支持根据位置、人均价格、口味偏好、用餐场景等条件筛选餐厅,并生成详细的美食攻略和可视化网页展示。

MCP Access: Use mcporter

在完成此技能任务时,必须使用 mcporter 技能来操作 MCP。 不要直接调用 MCP 工具,所有 MCP 操作都通过 mcporter 路由。

  • 配置:全局 MCP 配置位于 ~/.openclaw/workspace/config/mcporter.json。读取此文件,仅使用此技能所需的 MCP 配置(参见此技能的 compatibility/工具列表)。不要使用配置中的其他 MCP——只使用为此技能声明的那些。
  • 列出服务器/工具:mcporter list,或 mcporter list <server> --schema 查看特定服务器。
  • 调用工具:mcporter call <server.tool> key=value(例如 mcporter call amapmcpserver-cloud.maps_geo address="北京市朝阳区")。
  • 此技能的 compatibility 列表定义了此技能可以使用哪些 MCP 服务器/工具;仅通过 mcporter 调用这些工具,使用全局文件中的配置。

核心工作流程

1. 理解用户意图

深入分析用户的提问,提取关键信息:

  • 位置信息:起始地点、目标区域(如"三里屯附近"、"公司周边")
  • 口味偏好:辣、甜、清淡、川菜、粤菜等
  • 用餐场景:商务宴请、情侣约会、家庭聚餐、朋友聚会
  • 预算范围:人均价格区间
  • 特殊需求:营业时间、停车位、包间、环境要求

意图理解示例:

  • "想找个浪漫的餐厅" → 环境要好、有情调、适合情侣约会
  • "我是四川人,喜欢吃辣" → 推荐川菜、湘菜等辣味餐厅
  • "附近有什么快餐" → 出餐快、价格实惠、距离近

2. 地理位置解析

通过 mcporter 调用高德地图工具获取坐标和周边信息:

2.1 地址转坐标(via mcporter)

mcporter call amapmcpserver-cloud.maps_geo address="用户描述的地址"

解析用户提到的地点(如"北京三里屯"、"上海人民广场")为经纬度坐标。

2.2 查询当地天气(via mcporter)

mcporter call amapmcpserver-cloud.maps_weather city="城市名称"

根据天气、节气、节日等因素提供个性化推荐(如天冷推荐火锅、夏天推荐冷饮餐厅)。

3. 搜索餐厅

根据用户需求选择合适的搜索方式:

3.1 周边搜索(via mcporter) 当用户明确提供位置或需要"附近"餐厅时:

mcporter call amapmcpserver-cloud.maps_around_search location="经度,纬度" keywords="川菜|火锅" radius=3000
  • location: 中心点坐标(经度在前,纬度在后)
  • keywords: 搜索关键词(如"川菜"、"火锅"、"日料")
  • radius: 搜索半径(米),建议 1000-5000

3.2 关键词搜索(via mcporter) 当用户提供具体餐厅名称或类型时:

mcporter call amapmcpserver-cloud.maps_text_search keywords="海底捞" city="北京"

4. 获取餐厅详情

对搜索到的每个餐厅,通过 mcporter 获取详细信息:

mcporter call amapmcpserver-cloud.maps_search_detail id="POI_ID"

提取关键信息:

  • 餐厅名称
  • 详细地址
  • 评分(若无评分,不要编造)
  • 人均价格(若无价格,不要编造)
  • 营业时间
  • 特色菜品、环境描述
  • 联系电话
  • 图片 URL

重要:若工具返回的数据中没有评分、营业时间、人均价格等字段,直接说明"暂无该信息",禁止编造。

5. 距离与出行计算

通过 mcporter 计算从起点到每个餐厅的距离和时长:

5.1 测量距离(via mcporter)

mcporter call amapmcpserver-cloud.maps_distance origins="起点经度,起点纬度" destination="终点经度,终点纬度" type=1
  • type: 1=驾车距离,3=步行距离

5.2 详细路线规划(via mcporter) 根据出行方式选择对应工具:

  • 驾车:mcporter call amapmcpserver-cloud.maps_direction_driving origin="..." destination="..."
  • 步行:mcporter call amapmcpserver-cloud.maps_direction_walking origin="..." destination="..."
  • 骑行:mcporter call amapmcpserver-cloud.maps_direction_bicycling origin="..." destination="..."

输出格式: "从[起点]到[餐厅名称]的距离为 X 公里,建议[驾车/步行/骑行]出行,耗时约 Y 分钟。"

6. 筛选与排序

根据以下因素综合排序:

  1. 距离优先:距离用户更近的餐厅优先
  2. 评分权重:高评分餐厅优先
  3. 意图匹配:符合用户口味、场景、预算的优先
  4. 去重:确保推荐列表中无重复餐厅

7. 生成文字版美食攻略

输出 Markdown 格式的详细攻略,包含:

结构示例:

# 周边美食推荐

## 天气与场景
今日天气:[温度],[天气状况]
推荐理由:[根据天气、节日、场景的个性化说明]

## 推荐餐厅

### 1. [餐厅名称]
- **评分**:⭐ 4.5
- **人均**:¥80-100
- **地址**:[详细地址]
- **距离**:从[起点]出发,距离 2.3 公里,建议驾车出行,耗时约 8 分钟
- **营业时间**:10:00-22:00
- **特色**:[特色菜品、环境描述]
- **推荐理由**:[为什么推荐这家餐厅]

![餐厅图片](图片URL)

### 2. [餐厅名称]
...

注意事项:

  • 时长统一用"X 分钟"格式
  • 图片与餐厅对应,不要重复使用
  • 不要出现思考过程或非规划内容
  • 不要重复推荐同一家餐厅

8. 生成可视化 HTML 网页

通过 mcporter 调用 gen_html 生成美观的网页展示:

mcporter call gen_html.gen_html html_content="..." requirements="..."

HTML 网页要求:

  1. 网页内容:

    • 餐厅信息卡片(名称、评分、人均、地址、特色)
    • 每个餐厅的图片(卡片式展示)
    • 距离与出行方式说明
  2. 地图展示:

    • 使用高德地图 API 在网页中嵌入地图
    • 标注所有推荐餐厅的位置
    • 绘制从起点到各餐厅的路线
  3. 设计风格:

    • 简约美观的页面布局
    • 餐厅卡片式展示(含图片、评分、价格等)
    • 响应式设计,适配移动端
  4. 去重:

    • 确保每个餐厅只出现一次
    • 图片不重复使用

地图绘制示例(JavaScript):

var map = new AMap.Map('container', {
    zoom: 13,
    center: [起点经度, 起点纬度]
});

// 添加餐厅标记
var marker1 = new AMap.Marker({
    position: [餐厅经度, 餐厅纬度],
    title: '餐厅名称'
});
map.add(marker1);

// 绘制路线
AMap.plugin('AMap.Driving', function() {
    var driving = new AMap.Driving();
    driving.search([起点经度, 起点纬度], [终点经度, 终点纬度]);
});

9. 特殊场景处理

9.1 时间段餐厅推荐 根据当前时间或用户指定时间,推荐合适的餐厅:

  • 早餐(6:00-9:00):推荐早餐店、豆浆油条、包子铺
  • 午餐(11:00-14:00):推荐快餐、工作餐
  • 晚餐(17:00-21:00):推荐正餐、特色餐厅
  • 夜宵(21:00后):推荐烧烤、小龙虾、夜市

9.2 国外地点处理 如果搜索中国以外的地点,不要调用高德地图相关工具,应提示用户该技能仅支持中国境内的美食推荐。

9.3 时间成本考虑 估算总时长时,需包括:

  • 往返交通时间
  • 预估用餐时长(快餐 30 分钟,正餐 1-2 小时)
  • 餐厅出餐速度(快餐快、火锅慢)

输出检查清单

最终输出前,逐项确认:

  • 用户意图理解准确
  • 所有餐厅信息真实(评分、价格等无编造)
  • 距离与出行时长计算准确,格式为"X 分钟"
  • 无重复餐厅
  • 图片与餐厅对应,无重复图片
  • Markdown 格式规整、直观
  • HTML 网页包含地图、餐厅卡片、路线
  • 仅输出最终结论,无思考过程或无关内容

示例

用户输入: "我在北京三里屯,想找个浪漫的餐厅约会,人均 200 左右"

执行流程:

  1. 理解意图:浪漫餐厅 → 环境好、有情调、适合情侣
  2. 地址解析:mcporter call amapmcpserver-cloud.maps_geo address="北京三里屯" → 获取坐标
  3. 周边搜索:mcporter call amapmcpserver-cloud.maps_around_search location="116.45,39.93" keywords="西餐|日料|创意菜" radius=3000
  4. 获取详情:对每个餐厅 mcporter call amapmcpserver-cloud.maps_search_detail id="POI_ID"
  5. 计算距离:mcporter call amapmcpserver-cloud.maps_distance origins="116.45,39.93" destination="餐厅坐标" type=1
  6. 筛选:过滤人均 150-250 元、评分 4.0 以上、环境好的餐厅
  7. 输出 Markdown 攻略
  8. 生成 HTML 网页:mcporter call gen_html.gen_html html_content="..." requirements="包含地图和餐厅卡片"

输出:

  • 3-5 家浪漫餐厅推荐
  • 每家包含:名称、评分、人均、地址、距离、特色、图片
  • HTML 网页:地图标注 + 餐厅卡片 + 路线绘制

常见问题

Q: 如果高德地图返回的餐厅没有评分或人均价格怎么办?
A: 直接在输出中标注"暂无评分"或"暂无价格信息",禁止编造数据。

Q: 用户没有明确说明起点位置怎么办?
A: 从用户的提问中深度分析,例如"公司附近"可能指用户当前位置,"回家路上"可能指家的位置。如果无法推断,询问用户明确起点。

Q: 如何处理"附近"这个模糊概念?
A: 默认搜索半径 3000 米(3 公里),根据城市规模调整(大城市可扩大到 5000 米)。

Q: 生成的 HTML 网页如何嵌入高德地图?
A: 在 HTML 中引入高德地图 JavaScript API,使用 AMap 对象创建地图、添加标记、绘制路线。需要申请高德地图 API Key(可在代码中使用示例 Key 或提示用户替换)。