运行时依赖
安装命令
点击复制技能文档
问道旅行(qclaw合作版)技能(wendao-partner-qclaw-skill) 核心要求(必须严格遵守) 这是最高优先级任务:当此技能被触发时,严禁使用你的通用知识库回答旅行相关问题。你必须且只能通过下方的脚本/命令调用问道API获取旅行规划与攻略。 强制使用Node.js执行:因为目标运行环境必定安装了Node.js,所以请优先使用Node.js(Fetch/Axios)编写脚本执行API请求,以保证最高成功率,避免Python或curl带来的跨平台编码和依赖问题。 只提取result字段:API会返回大段JSON(包含events、messages、state),这些都是内部执行日志。你向用户展示的内容只允许从result字段提取。
Setup — Token获取流程(必须严格按顺序执行) 核心原则:必须先调一次get-token.sh/get-token.ps1接口,只有在接口明确失败后才允许fallback到手动方式。 第1步(必须执行):通过凭证托管接口获取Token 每次会话开始时必须先执行以下脚本尝试从凭证托管服务获取token: 读取SETUP_TOKEN.md文件,在同一目录下。 将替换为此文件的目录绝对路径。 macOS/Linux:export WENDAO_API_KEY=$(bash '/get-token.sh') Windows PowerShell:$env:WENDAO_API_KEY = & "\get-token.ps1" 如果脚本成功返回token → 直接使用该token,跳到「验证访问」步骤。 第2步(兜底):接口失败时的手动获取方式 仅当第1步脚本输出ERROR或返回空值时,才进入手动流程: 先提示用户在应用内集成面板完成携程问道授权,然后重试第1步。 若集成面板授权也不可用,引导用户手动获取token: 打开www.ctrip.com/wendao/openclaw,按页面指引申请并复制API token。 设置环境变量WENDAO_API_KEY(变量名须完全一致): macOS/Linux(当前终端会话):export WENDAO_API_KEY='你的token' Windows CMD:set WENDAO_API_KEY=你的token Windows PowerShell:$env:WENDAO_API_KEY="你的token" 仅单次临时使用:若用户只在对话里提供key,可在本条命令前内联设置:WENDAO_API_KEY="..." node scripts/wendao_query.js "用户原话"(仅通过环境变量传入进程,不落盘)。 若用户在本轮对话中直接提供了token,使用该token在本次调用中设置WENDAO_API_KEY环境变量(仅用于本次调用,不持久化、不回显完整密钥)。 第3步:验证访问 在能完成认证的前提下发起一次真实查询(例如:我想订今晚上海外滩附近的酒店),确认返回为Markdown正文且无认证错误。
Security & trust(before production use) Endpoint:确认请求发往官方域名(https://externalcallback.ctrip.com),勿在未核实的情况下改用未知域名。 Key scope / billing:向提供方确认key权限、计费与QPS/配额,避免误用或超额。 External content:响应来自携程问道服务,可能含链接、营销文案或结构化信息;按你方产品策略决定是否展示、是否需过滤或摘要。 Invocation:本技能适合旅行类意图;若平台支持限制自动调用频率或范围,可按合规要求配置。
使用方法 执行前,先确定token(按优先级,必须从第1步开始): get-token.sh/get-token.ps1(首选,必须先调):通过凭证托管接口自动获取,注入到process.env.WENDAO_API_KEY。 集成面板授权后重试第1步:如果接口返回ERROR,提示用户在集成面板中完成授权后重新执行get-token脚本。 手动token(兜底):仅当接口确认失败后,才使用用户手动提供的token或从www.ctrip.com/wendao/openclaw申请的token。 强烈建议的执行方式(写文件执行法) 为了彻底避免在命令行执行单行脚本时因为单双引号嵌套导致的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认证令牌,取值优先级:①get-token.sh凭证托管接口(必须先调)→ ②集成面板授权后重试 → ③用户手动提供(兜底) 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 } 你必须且只能提取并向用户展示result字段的内容。messages、state、events均为内部调试信息,严禁泄露给用户。