result 字段:API 会返回大段 JSON(包含 events, messages, state),这些都是内部执行日志。你向用户展示的内容只允许从 result 字段提取。
process.env.WENDAO_API_KEY(推荐):由平台在 skill 运行环境中配置该环境变量;脚本与请求中通过 process.env.WENDAO_API_KEY 读取,不操作任何配置文件。
WENDAO_API_KEY(例如 WENDAO_API_KEY="..." node scripts/wendao_query.js "..."),不持久化、不回显完整密钥。若 WENDAO_API_KEY 已设置,优先使用该环境变量。
我想订今晚上海外滩附近的酒店),确认返回为 Markdown 正文且无认证错误。
process.env.WENDAO_API_KEY 时
若运行环境中尚未设置 WENDAO_API_KEY(即 process.env.WENDAO_API_KEY 为空),请先指引用户完成配置,再执行 node scripts/wendao_query.js 或等价请求;不要假定密钥已自动存在。
WENDAO_API_KEY(变量名须完全一致):
export WENDAO_API_KEY='你的 token',在同一终端会话内再执行 node …。
set WENDAO_API_KEY=你的token,再在同一窗口执行 node …。
$env:WENDAO_API_KEY="你的token",再执行 node …。
export WENDAO_API_KEY=... 写入 ~/.zshrc 或 ~/.bash_profile,或在系统「环境变量」中添加用户级变量;勿把密钥写入仓库或公开配置。
WENDAO_API_KEY,确保运行时 process.env.WENDAO_API_KEY 可用。
WENDAO_API_KEY="..." node scripts/wendao_query.js "用户原话"(仍通过环境变量传入进程,不落盘)。
https://externalcallback.ctrip.com),勿在未核实的情况下改用未知域名。
| 场景 | 示例查询 |
|------|----------|
| 酒店预订 | "预订北京三里屯附近的酒店" / "上海外滩五星级酒店,预算 800-1200 元" |
| 航班搜索 | "搜索明天从北京到上海的航班" / "去纽约的国际航班多少钱" |
| 火车票查询 | "查一下北京到上海的高铁票" / "明天成都到重庆的动车还有票吗" |
| 景点推荐 | "成都周边有什么好玩的景点" / "带孩子去迪士尼的推荐攻略" |
| 行程规划 | "我要去日本,帮我规划一个 7 天行程" |
执行前,先确定 token(按优先级):
process.env.WENDAO_API_KEY 已设置,使用该值作为请求体里的 inputs.token。
process.env.WENDAO_API_KEY 时」 指引用户配置 WENDAO_API_KEY,或使用用户在本轮对话中提供的 token,在本次执行的命令环境里设置 WENDAO_API_KEY 后再跑脚本(仅用于本次调用,不持久化)。
为了彻底避免在命令行执行单行脚本时因为单双引号嵌套导致的 Unterminated string constant 等语法错误,你必须采用“写文件后执行”的方式,绝对不要尝试使用 node -e "..." 的单行执行模式!
scripts/wendao_query.js(已支持从命令行传入用户问话),执行:node scripts/wendao_query.js "<用户原话>"。
WENDAO_QUERY 环境变量或脚本的 query 变量,不得留占位符),例如 wendao_query.js。
node …(带参数或环境变量如上)。
scripts/wendao_query.js 勿删。
| 参数 | 必填 | 说明 |
|------|:----:|------|
| token | 是 | API 认证令牌,取值优先级:process.env.WENDAO_API_KEY > 用户在对话中提供(通过本次命令中的 WENDAO_API_KEY 传入) |
| query | 是 | 用户的自然语言查询 |
| timeout | 否 | 默认 30 秒,建议设置以避免长时间等待 |
query 如何取值(避免「请提供有效的 query(查询主题)」)
query 即用户说的话:将触发本技能时用户给出的完整问句或需求作为 query 传入 API。不要向用户再次索要「查询主题」;用户已经说过的内容就是有效 query。
query = 该句全文(可去掉无关寒暄,但须保留目的地、时间、偏好等关键信息)。
query 留空,也禁止使用字面量「用户查询的内容」等占位字符串;否则接口会返回上述错误。
scripts/wendao_query.js 时,把用户原话作为第一个命令行参数传入(脚本从 process.argv[2] 或环境变量 WENDAO_QUERY 读取):
node scripts/wendao_query.js "用户关于旅行的完整自然语言问题"
WENDAO_QUERY="同上" node scripts/wendao_query.js
inputs.query 字段必须为非空字符串,内容与上款一致。
API 返回结构如下:
{
"result": "Markdown 格式的回复内容(字符串)",
"messages": [...],
"state": {"token": "...", "query": "..."},
"events": [
{"type": "run_started", ...},
{"type": "run_finished", "result": "...(与 result 字段内容相同)"}
],
"error": null
}
共 1 个版本