携程问道(workbuddy 合作版)技能接入与使用文档
如果你正在接入携程问道(workbuddy 合作版)技能,这篇文章就是为你准备的。从接入流程到使用方法,从环境配置到注意事项,我们把整个流程拆解清楚,方便开发或运维的同事快速上手。
技能概述
一句话讲清楚这个技能是干什么的。
核心能力
这个技能专门用来响应旅行相关的问询场景,比如预订酒店、查询机票、推荐景点、规划行程、查询签证等。一旦触发,它会直接调用携程问道 API 来获取专业的旅行规划和攻略信息,而不是依赖通用知识库去回答。
核心约束
这里需要留个心:技能触发后,禁止用通用知识库来回答旅行问题,只能调用问道 API 获取结果。而且 API 返回的内容中,只把 result 字段展示给用户就行,其他字段(比如 events、messages、state)都属于内部日志,不需要对外展示。
前置准备
环境要求
运行环境需要安装 Node.js,版本要 v18 或以上。另外,必须能访问公网,保证能调通携程问道 API 的域名:https://externalcallback.ctrip.com。
获取 API Token
- 访问携程问道开放平台:https://www.ctrip.com/wendao/openclaw
- 按页面指引完成认证,申请并复制 API Token(也就是 API Key)。
- 有一点必须提醒:Token 是敏感信息,只能保存在可信环境中,不要截图或把完整密钥发到公开渠道。
环境配置(Token 设置)
API Token 通过环境变量 WENDAO_API_KEY 传入,优先级比临时传入高。下面几种配置方式,根据实际情况选择就好。
临时配置(当前终端会话有效)
macOS/Linux
export WENDAO_API_KEY='你的API Token'
Windows CMD
set WENDAO_API_KEY=你的API Token
Windows PowerShell
$env:WENDAO_API_KEY="你的API Token"
长期配置(本机永久生效)
macOS/Linux
~/.zshrc 或 ~/.bash_profile。
echo 'export WENDAO_API_KEY="你的API Token"' >> ~/.zshrc
source ~/.zshrc # 立即生效
Windows
WENDAO_API_KEY,值填你的 Token。
托管环境配置(OpenClaw / 腾讯云等)
在平台的技能环境变量配置页,新增一个 WENDAO_API_KEY,值填你的 API Token,确保技能运行时能读取到这个变量。
技能使用方法
脚本位置
技能目录下的 scripts/wendao_query.js 是核心调用脚本,支持通过命令行参数或环境变量传入用户查询内容。
执行方式
推荐用写文件的方式执行,避免引号嵌套出问题。
方式 1:命令行参数传入用户查询
# 格式:node scripts/wendao_query.js "用户的旅行相关查询内容"
node scripts/wendao_query.js "预订明天北京三里屯附近的酒店,预算800-1200元"
方式 2:环境变量传入用户查询
# 格式:WENDAO_QUERY="用户查询内容" node scripts/wendao_query.js
WENDAO_QUERY="规划7天日本自由行行程" node scripts/wendao_query.js
方式 3:临时传入 Token
如果没有提前配置 WENDAO_API_KEY,可以在执行命令时临时传入,仅本次调用有效。
# macOS/Linux
WENDAO_API_KEY="你的Token" node scripts/wendao_query.js "查询北京到上海的高铁票"
# Windows CMD
set WENDAO_API_KEY=你的Token && node scripts/wendao_query.js "查询北京到上海的高铁票"
# Windows PowerShell
$env:WENDAO_API_KEY="你的Token"; node scripts/wendao_query.js "查询北京到上海的高铁票"
脚本参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
WENDAO_API_KEY | 是 | API 认证 Token。优先级:环境变量 > 命令行临时传入 |
USER_QUERY | 是 | 用户的旅行相关自然语言查询,完整问句,例如“暑假去成都的景点推荐” |
timeout | 否 | API 请求超时时间,默认 30 秒(脚本内置,无需手动配置) |
结果输出
脚本执行后,控制台会打印 API 返回的 result 字段内容,格式是 Markdown。这个内容就是可以展示给用户的旅行相关结果。
常见场景示例
| 场景 | 执行命令示例 |
|---|---|
| 酒店预订 | node scripts/wendao_query.js "上海外滩五星级酒店,预算800-1200元" |
| 航班搜索 | node scripts/wendao_query.js "明天从北京到上海的航班,优先国航" |
| 景点推荐 | node scripts/wendao_query.js "成都周边适合亲子游的景点推荐" |
| 行程规划 | node scripts/wendao_query.js "7天日本蜜月旅行行程规划,含东京和京都" |
| 签证查询 | node scripts/wendao_query.js "2024年办理泰国旅游签证的流程和材料" |
API 响应解析说明
API 返回的 JSON 结构大致长这样:
{
"result": "Markdown格式的回复内容(字符串)",
"messages": [...], // 内部日志,忽略
"state": {"token": "...", "query": "..."}, // 内部状态,忽略
"events": [...], // 内部事件,忽略
"error": null
}
脚本会自动提取 result 字段。如果 result 是字符串,直接输出;如果是对象,就提取 result.content,没有的话就转成 JSON 字符串输出。
安全与合规注意事项
- :确保 API 请求只发送到官方域名
域名验证
https://externalcallback.ctrip.com,不能改用其他未知域名。 - :提前确认 Token 的权限范围、计费规则、QPS/配额限制,避免超额或误用。
权限与计费
- :API 返回的结果可能包含链接、营销文案,需要根据自己的产品策略决定是否展示、过滤或做摘要处理。
内容处理
故障排查
脚本执行报错“缺少 token 或 query”
- 检查
WENDAO_API_KEY是否已配置,值不能为空。 - 检查用户查询内容是否传入(命令行参数或
WENDAO_QUERY环境变量),确保非空。
API 请求返回 HTTP 错误(如 401/403)
- 验证 Token 是否有效,有没有过期。
- 检查 Token 的权限是否覆盖了当前查询场景(比如酒店、机票、签证等)。
脚本无输出或输出非预期内容
- 确认 API 返回的
result字段是否有值。 - 检查 Node.js 版本是否 ≥ v18,避免兼容性问题。
附录
技能触发规则
当用户查询包含以下关键词或句式时,技能会自动触发:
- 中英文旅行相关操作词 + 场景词,比如“预订酒店”“search flight”“行程规划”“visa application”。
- 旅行场景限定词,比如“亲子游”“商务出差”“黄金周旅行”“honeymoon trip”。
- 具体目的地 + 场景,比如“北京到上海的高铁票”“hotels in Shanghai”。
