运行时依赖
安装命令
点击复制技能文档
IQS 天气查询 - 7 天天气预报查询 使用阿里云 IQS 的 web 搜索(UnifiedSearch)和页面阅读(ReadPageBasic)能力,查询任何城市的 7 天天气预报。 基础服务:alibabacloud-iqs-search 混合解析策略: 已知站点(weather.cma.cn, weather.com.cn):专用解析器提取结构化 JSON → parseMode: "structured" 未知站点:ReadPage 提取主内容(readabilityMode: article),返回带有提取提示的原始文本 → parseMode: "raw",agent(LLM)直接解释 输出字段描述 parseMode "structured"(解析的 JSON)或 "raw"(agent 的文本) weather 天气状况(晴、多云、雨等) temperature 温度范围 windSpeed 风速/级别 windDirection 风向 环境配置 预检:ALIYUN_IQS_API_KEY 如果输出为 'API Key 未配置',则 API Key 未配置。 如何获取 ALIYUN_IQS_API_KEY:请参考 Aliyun IQS 文档 配置环境变量(选择一个): 选项 1:临时(当前终端会话) export ALIYUN_IQS_API_KEY="your-api-key-here" 选项 2:永久(推荐) 将以下内容添加到 ~/.zshrc 或 ~/.bashrc: export ALIYUN_IQS_API_KEY="your-api-key-here" 运行 source ~/.zshrc 或 source ~/.bashrc 应用。 另一种方法:将 API Key 放在 ~/.alibabacloud/iqs/env 文件中: ALIYUN_IQS_API_KEY=your-api-key-here 工作流 用户输入(城市名称) │ ┌─────────────────────────┐ │ 步骤 1:UnifiedSearch │ 搜索:"{city} 天气预报 未来7天" (Web 搜索) 优先级:weather.cma.cn > weather.com.cn └──────────┬──────────────┘ │ 最佳天气 URL ┌─────────────────────────┐ │ 步骤 2:ReadPageBasic │ 已知站点 → readabilityMode: normal (页面阅读) 未知站点 → readabilityMode: article └──────────┬──────────────┘ │ 页面内容 已知站点? ╱ ╲ 是 否 │ │ ▼ 解析器返回 rawText 路由器 + 提示 agent (parseMode: raw) ▼ 结构化 JSON(parseMode: structured) 使用 前提条件 Node.js >= 18(本地 fetch 支持所需) 无需额外的 npm 依赖 执行查询 node scripts/weather.mjs 示例: node scripts/weather.mjs 北京 node scripts/weather.mjs 上海 node scripts/weather.mjs 杭州 node scripts/weather.mjs 东京 输出格式 结构化模式(已知站点 — 成功解析): { "success": true, "data": { "city": "北京", "parseMode": "structured", "queryTime": "2026-03-26T10:00:00.000Z", "forecastDays": 7, "forecast": [ { "date": "3月26日", "weather": "晴", "temperature": "5°C ~ 18°C", "windDirection": "北风", "windSpeed": "3-4级" } ], "source": "https://weather.cma.cn/..." } } 原始模式(未知站点 — agent 解释文本): { "success": true, "data": { "city": "北京", "parseMode": "raw", "hint": "以下是北京天气网页的正文内容,请从中提取未来7天的天气预报信息...", "rawText": "北京天气预报\n今天 晴 18°C/5°C ...", "evolveHint": "[持续进化] 当前站点 \"example.com\" 没有匹配的解析器...", "source": "https://example.com/weather/beijing" } } 使用的 IQS API API 端点 目的 文档 UnifiedSearch cloud-iqs.aliyuncs.com/search/unified 网页搜索天气页面 文档 ReadPageBasic cloud-iqs.aliyuncs.com/readpage/scrape 读取和解析天气网页 文档 搜索优先站点(带有专用解析器): weather.cma.cn(中国气象局)— parseCmaWeather → readabilityMode: normal baidu.weather.com.cn / sq.weather.com.cn(中国天气网移动版)— parseBaiduWeatherComCn → readabilityMode: normal weather.com.cn(中国天气网,所有其他子域)— parseWeatherComCn → readabilityMode: normal 其他站点 — 无解析器,返回原始文本 → readabilityMode: article(更干净的正文提取) 错误处理 错误代码 描述 解决方案 CREDENTIALS_MISSING API Key 未配置 设置 ALIYUN_IQS_API_KEY 环境变量 NO_RESULTS 无天气结果 检查城市名称是否正确 QUERY_FAILED API 调用失败 检查网络,验证凭据 PARSE_FAILED 解析天气数据失败 目标站点的页面结构可能已更改;更新相应的解析器或添加新解析器(请参阅扩展部分) 最佳实践 使用中文城市名称进行国内天气查询以获得更好的准确性 Node.js >= 18 所需 - 本地 fetch API 用于, 无需 npm install 缓存感知 - ReadPage 使用 maxAge 未设置,始终获取最新数据 可扩展解析器 - 每个天气站点都有自己的解析器;通过在 PARSER_REGISTRY 中注册添加新站点 持续进化 此技能旨在随时间自我改进。当脚本遇到未知站点格式(无匹配解析器)时,它返回 parseMode: "raw",带有 evolveHint 字段。 agent 行为当 parseMode 为 "raw" 时,agent 将直接解释原始文本。