关于 didi-ride
didi-ride 是通过 DiDi MCP 服务操作用户滴滴账户的技能,支持估价、叫车、订单跟踪与取消,以及路线和地点查询;叫车和取消须先预览并获得明确确认。
主要功能
- 01估算车费并创建行程
- 02查询和取消订单
- 03搜索地点并解析地址
- 04规划驾车、公交、步行和骑行路线
- 05确认前预览受控操作
适用场景
- 01叫车前估算费用
- 02确认行程信息后预约车辆
- 03查看司机和订单状态
- 04查找附近地点或比较路线
MCP 相关
该技能通过 `didi` BYOC 连接器及其注入的 `DIDI_MCP_KEY` 连接 DiDi MCP 服务。辅助脚本使用 MCP Streamable-HTTP 列出并调用可用工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ acedatacloud/ skills --skill didi-ride安装后在 Claude Code 中输入/didi-ride确认已加载。
附带文件references/api_references.mdscripts/didi.py
详细介绍
滴滴出行(滴滴出行)
通过滴滴 MCP 服务操作用户的 滴滴出行(滴滴出行) 账户: 叫车、估算费用、追踪订单、取消订单和规划路线。
didi BYOC 连接器会向沙盒注入一个环境变量:
DIDI_MCP_KEY— 用户的滴滴 MCP 密钥。机密信息 — 切勿回显、打印或记录。
如果缺少 DIDI_MCP_KEY,请告知用户前往
studio.acedata.cloud/console/connectors
连接滴滴连接器
(用户可通过扫描滴滴出行 App 中的二维码获取密钥,或访问
https://mcp.didichuxing.com/claw 获取)。
CLI
此技能提供了一个仅依赖标准库的辅助脚本,用于通过 MCP Streamable-HTTP
协议与滴滴通信。请在下方每个 Bash 代码块开头运行此解析器 —
每次 Bash 调用都会启动一个全新的 Shell,而 $SKILL_DIR 指向本轮最后加载的技能,因此请定位到我们自己的脚本:
DIDI="$SKILL_DIR/scripts/didi.py"; [ -f "$DIDI" ] || DIDI=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/didi.py' 2>/dev/null | head -1)
[ -f "$DIDI" ] || { echo "didi-ride script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
两个命令:
python3 $DIDI list # list tools + their JSON input schemas
python3 $DIDI call <tool> '<json-args>' # call any tool
调用前,请务必查看 references/api_references.md,确认准确的工具和参数名称。 不确定时,运行 python3 $DIDI list — 它会直接从滴滴返回每个工具的权威输入架构。不要猜测参数名称(常见错误:keyword → keywords、region → city、四个坐标字段 → 六个 from_name/from_lat/from_lng/to_name/to_lat/to_lng)。
所有参数值都必须是字符串(包括坐标和 product_category),例如 {"product_category":"1"},而不是 {"product_category":1}。
写入操作的确认门槛(真实费用 / 真实司机)
taxi_create_order 和 taxi_cancel_order 受到确认门槛限制:如果不加末尾的
--confirm,辅助脚本只会进行试运行,不会做任何更改。先在不加 --confirm 的情况下运行一次以预览,待用户批准后,再将 --confirm 作为最后一个参数重新运行:
python3 $DIDI call taxi_create_order '{"estimate_trace_id":"...","product_category":"1"}' --confirm
- 即使用户说“打车”或“取消订单”,也要先确认具体信息
(叫车时确认起终点和车型;取消时确认订单),然后才能添加
--confirm。 - 表达取消意图 ≠ 确认取消 — 务必先询问“确认取消吗?”
叫车流程(最小可执行)
- 解析地址 — 使用
maps_textsearch(绝不要编造坐标;不要复用之前对话中的坐标 — 用户可能已经移动)。- 如果用户提到你不知道的地址别名(家 / 公司 / 等),请询问用户;此技能不会存储偏好设置。
- 确认起点和终点 — 如果
maps_textsearch返回 ≥2 个候选项,至少列出排名前三的选项并让用户选择;如果只有一个准确匹配项,则无需确认。 - 估价 — 使用
taxi_estimate;记录返回的traceId/estimate_trace_id。该 ID 会过期(-32021)— 如果已过期,请重新估价。 - 选择车型 — 以用户当前消息为准(“叫快车”→
product_category1,“专车”→8);否则请询问。仅使用taxi_estimate响应中包含的类别;绝不要擅自替换为不同服务级别(快车1≠ 特惠快车201)。 - 创建订单 — 使用最新的
estimate_trace_id调用taxi_create_order(试运行 → 确认 →--confirm)。 - 告知结果 — 提供订单 ID、起终点、车型和预估费用。告知用户可以发送「查询订单」来查看状态。
查询订单
订单 ID 按以下优先级获取:用户消息 → 本次对话中最近创建的订单 → 否则询问用户。
python3 $DIDI call taxi_query_order '{"order_id":"ORDER_ID"}'
状态码(code):
| code | 含义 | 输出 |
|---|---|---|
| 0 | 匹配中 | ⏳ 正在为您匹配司机 |
| 1 | 司机已接单 | 展示司机姓名、车型、车牌、电话、距离与预计到达时间 |
| 2 | 司机已到达 | 🔔 司机已到达上车点 |
| 4 | 行程进行中 | 🚗 行程已开始 |
| 5 | 订单完成 | ✅ 行程结束(展示费用,如有) |
| 6 | 系统取消 | ❌ 订单已被系统取消 |
| 7 | 已取消 | ❌ 订单已取消 |
| 3 / 8-12 | 其他终态 | 显示对应状态描述 |
路线与地点(无需订单)
python3 $DIDI call maps_direction_driving '{"from_name":"...","from_lat":"...","from_lng":"...","to_name":"...","to_lat":"...","to_lng":"..."}'
python3 $DIDI call maps_direction_transit '{...}' # 公交
python3 $DIDI call maps_direction_walking '{...}' # 步行
python3 $DIDI call maps_direction_bicycling '{...}' # 骑行
python3 $DIDI call maps_place_around '{"keywords":"咖啡","lat":"...","lng":"..."}'
python3 $DIDI call maps_regeocode '{"lat":"...","lng":"..."}'
注意事项
- 切勿打印密钥或原始端点 URL——辅助程序会处理传输,并将密钥保存在内部。
taxi_create_order只接受estimate_trace_id、product_category和可选的caller_car_phone。不要传入估价中的坐标或名称字段。- 不保存偏好设置:此技能不会记住家庭/工作地址或车型——请询问用户,或在更高层接入更丰富的记忆功能。
- 身份验证失败会显示为
-32002(或 HTTP 401/403):密钥缺失或已过期 → 让用户重新连接连接器。
**设置:**请参阅身份验证。此技能使用
didi连接器注入的DIDI_MCP_KEY,而非ACEDATACLOUD_API_TOKEN。