Files
api_health/agent/skills/baidu-ai-map/SKILL.md
2026-05-30 16:41:26 +08:00

8.1 KiB
Raw Blame History

name, description
name description
baidu-ai-map 为Agent提供地图和位置相关的能力例如 AI 地点检索周边信息、AI 路线规划、地理编码与逆地理编码、天气查询等地图工具。

百度地图服务 Agent Plan

提供大模型友好调用的地图工具skills/baidu-ai-map/SKILL.md支持POI搜索、导航、语义化 AI 搜索、语义化 AI 路线规划、地理编码与逆地理编码、天气查询。

使用准则

准则 1API 端点

所有能力统一使用:

Base URL: https://api.map.baidu.com/

准则 2SK 凭证安全处理

SKService Key是调用所有 API 的必须凭证:

  1. 优先读取环境变量 BAIDU_MAP_AUTH_TOKEN
  2. 如果为空,提示用户前往 百度地图 Agent Plan 申请。
  3. 设置环境变量:
export BAIDU_MAP_AUTH_TOKEN="你的SK"

准则 3统一鉴权方式Header 传入)

调用所有 API 时,统一通过 Header 传入:

  • Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN

示例:

curl --get "https://api.map.baidu.com/agent_plan/v1/place" \
  -H "Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN" \
  --data-urlencode "user_raw_request=帮我找北京可带宠物的咖啡馆" \
  --data-urlencode "region=北京市"

准则 4优先使用http_get工具避免直接调用curlcurl在window下支持不好

全局参数与行为约束

  1. user_raw_request 必须是完整的用户需求,不可压缩为关键词。
  2. user_raw_request 出现“我附近”等非明确地点时,可根据上下文为用户推理为具体地点名称,但不可对坐标进行推理。
  3. user_raw_request 需保留定语/约束词例如“评分最高”“最近”“最便宜”“3公里内”。
  4. 不得编造坐标;center / location / refer_pois 仅可来自用户明确提供或可信来源,当无可靠坐标时,必须先向用户澄清或先调用 geocoding / place 等工具获取。
  5. 统一使用 Header 鉴权:Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN
  6. 经纬度至少保留小数点后 6 位。
  7. 所有工具返回坐标类型统一为 gcj02
  8. 禁止使用 grep/sed/awk/jq/python脚本 正则裁剪响应后再推断字段,这会造成百度地图 Agent Plan 巨额的token消耗短时间内遇到相同或高度相似请求时应优先基于结果直接推理避免重复发起请求。
  9. direction 可能返回两类结果:路线结果,或起终点澄清结果。当返回起终点澄清结果时,应先根据用户需求推理最合理候选;若仍无法唯一确定,应引导用户在候选中选择后再继续规划。

工具详解

1. Place语义化AI地点检索

API

GET /agent_plan/v1/place

参数输入(给模型)

Required:

  • user_raw_request: 用户原始需求原样完整传入不可压缩为关键词保留约束词如“评分最高”“最近”“3公里内”
  • region: 城市或区域限制

Optional:

  • center: 检索中心点和排序参考点(lat,lnggcj02
  • sort: distancerelevance(默认 relevance

Rules:

  • sort=distance 时,center 必传
  • center 只能来自用户明确提供或可信来源,禁止推测/编造,可通过 geocoding / place 等工具获取
  • 经纬度至少保留小数点后 6 位

鉴权

  • GETHeader Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN

示例

# 1) 帮我查一下八达岭长城附近的五星级酒店
curl --get "https://api.map.baidu.com/agent_plan/v1/place" \
  -H "Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN" \
  --data-urlencode "user_raw_request=帮我查一下八达岭长城附近的五星级酒店" \
  --data-urlencode "region=延庆区" \
  --data-urlencode "sort=relevance"

# 2) 离我最近的火锅店distance 排序)
curl --get "https://api.map.baidu.com/agent_plan/v1/place" \
  -H "Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN" \
  --data-urlencode "user_raw_request=离我最近的火锅店" \
  --data-urlencode "region=北京市" \
  --data-urlencode "center=40.056800,116.308300" \
  --data-urlencode "sort=distance"

2. Direction语义化AI路线规划

API

GET /agent_plan/v1/direction

参数输入

Required:

  • user_raw_request: 用户原始需求,包含起点和终点;保留路线约束词,需要推理并改写用户原始的交通方式
  • location: 用户当前位置坐标(lat,lnggcj02

Optional:

  • refer_pois: 地点精确映射,格式 地点名称:uid,纬度,经度;地点名称:uid,纬度,经度

Rules:

  • 当前仅支持驾车、步行、骑行、公交路线规划。user_raw_request 中出现其他交通方式时,需要改写到这四种交通方式
  • location 当起点有歧义(如同名地标、模糊起点)时,路线规划服务会基于当前位置推理最合理的起点位置
  • refer_pois 默认不传,用于同名地点消歧,仅在 user_raw_request 中明确有歧义地点时传入
  • refer_pois / location 的经纬度至少保留小数点后 6 位,禁止推测/编造,可通过 geocoding / place 等工具获取

鉴权

  • GETHeader Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN

示例

# 1) 帮我规划从故宫到颐和园的驾车路线
curl --get "https://api.map.baidu.com/agent_plan/v1/direction" \
  -H "Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN" \
  --data-urlencode "user_raw_request=帮我规划从故宫到颐和园的驾车路线" \
  --data-urlencode "location=39.914590,116.403770"

# 2) “我家”别名映射
curl --get "https://api.map.baidu.com/agent_plan/v1/direction" \
  -H "Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN" \
  --data-urlencode "user_raw_request=步行去我家附近最近的中餐厅" \
  --data-urlencode "location=40.056800,116.308300" \
  --data-urlencode "refer_pois=我家:fbc88a21464370106e3e1b52,40.092180,116.345310"

# 2) 交通方式推理改写:从王府井打车去三里屯要多久
curl --get "https://api.map.baidu.com/agent_plan/v1/direction" \
  -H "Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN" \
  --data-urlencode "user_raw_request=从王府井驾车去三里屯要多久" \
  --data-urlencode "location=39.914590,116.403770"

3. Geocoding地理编码

API

GET /agent_plan/v1/geocoding

参数输入

Required:

  • address: 要解析的完整地址

Optional:

  • region: 城市/区域提示(减少歧义)

Rules:

  • 地址越完整,解析越稳定

鉴权

  • GETHeader Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN

示例

curl --get "https://api.map.baidu.com/agent_plan/v1/geocoding" \
  -H "Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN" \
  --data-urlencode "address=北京市海淀区上地十街10号百度大厦" \
  --data-urlencode "region=北京市"

4. Reverse Geocoding逆地理编码

API

GET /agent_plan/v1/reverse_geocoding

参数输入

Required:

  • location: lat,lng 格式坐标gcj02

Rules:

  • 经纬度至少保留小数点后 6 位

鉴权

  • GETHeader Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN

示例

curl --get "https://api.map.baidu.com/agent_plan/v1/reverse_geocoding" \
  -H "Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN" \
  --data-urlencode "location=40.056800,116.308300"

5. Weather天气查询

API

GET /agent_plan/v1/weather

参数输入

Optional:

  • region: 行政区划名称
  • location: lat,lng 格式坐标gcj02

Rules:

  • regionlocation 至少传一个
  • location 传入时,经纬度至少保留小数点后 6 位

鉴权

  • GETHeader Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN

示例

# 1) 按坐标查询天气
curl --get "https://api.map.baidu.com/agent_plan/v1/weather" \
  -H "Authorization: Bearer $BAIDU_MAP_AUTH_TOKEN" \
  --data-urlencode "location=38.766230,116.432130"

错误处理

  1. 如果缺少 token提示用户执行
    申请地址:https://lbs.baidu.com/apiconsole/agentplan
    export BAIDU_MAP_AUTH_TOKEN="<YOUR_BAIDU_MAP_AUTH_TOKEN>"
  2. 如果提示参数错误重新阅读本Skills查阅如何传参