alibabacloud-iqs-search

前置条件

  • Node.js >= 18.0.0(脚本使用原生 fetch API,无外部 npm 依赖)

使用时机

  • 用户询问当前 / 最新信息
  • 用户提供 URL 要阅读
  • 需要核实事实或获取实时数据
  • 需要多来源的调研任务

决策树

步骤 1:确定操作类型

  • 如果用户提供 URL → 使用 readpage
  • 如果用户提问需要网络信息 → 使用 search

步骤 2:搜索操作

遵循最佳实践确定参数值。不确定时使用默认值:

  • engineType
  • timeRange
  • contents

步骤 3:页面阅读

遵循最佳实践确定参数值。不确定时使用默认值:

  • format
  • extractArticle
  • stealthMode

关键:执行方式

你必须通过 bash 命令执行脚本(例如 node scripts/search.mjs ...node scripts/readpage.mjs ...)。不要用你的内置 web_search、WebFetch 或任何其他内部工具作为替代。如果脚本失败,重试或报告错误——不要回退到内置工具。

参数与最佳实践

搜索参数

参数类型必填默认值说明
--querystring-搜索查询(1-500 字符)
--engineTypestringLiteAdvanced搜索引擎类型
--timeRangestringNoLimit时间范围过滤
--contentsstring-返回内容类型
--numResultsint10搜索结果数(1-10)

#### 搜索最佳实践

1. 查询优化(--query

  • 保持查询简洁(< 30 字符效果最佳)
  • 使用具体关键词,避免停用词
  • 新闻类:在查询中包含时间上下文

2. 引擎选择(--engineType

四种引擎在延迟、召回深度、内容长度和成本上差异显著。选满足任务的最便宜引擎——不要默认用 Deep;它比标准引擎慢约 10 倍、贵约 50 倍。

引擎平均 RT结果数snippetmainText高级过滤多语言成本比(vs Standard)用例
Generic~950ms~10~150 字符≤3000 字符通用搜索、新闻 / 实时、天气等场景查询(支持 city/ip
LiteAdvanced~500ms1-50~500 字符≤3000 字符Lite 层 1×默认推荐:低延迟语义搜索;snippet 已足够丰富
Deep~6s1-50≤500 字符≤50000 字符好(中 / 英)垂直领域 50×复杂多步推理、研究报告、需要深度浏览的离线 / Agent 任务

决策规则:

  • 默认 → LiteAdvanced:低延迟 + 语义搜索 + snippet 覆盖大多数 Agent 需求,无需额外 mainText 获取。
  • Generic 当:查询简短且明显是信息性的(新闻、天气、简单事实),或最小化成本重要时;也是唯一支持 city / ip 场景结果(天气等)的引擎。
  • 仅在以下情况选 Deep:问题是多跳 / 复杂推理(FRAMES/BrowseComp 风格),你需要很长的 mainText(≤50000 字符,约为其他引擎的 16 倍)用于下游 LLM 推理。
  • ⚠️ 避免 Deep 用于:实时聊天、简单查找、高 QPS 场景——延迟(~6s)和成本(50×)过高。

3. 时间范围选择(--timeRange

  • NoLimit:不确定时的默认值——引擎根据查询相关性优化
  • OneDay:仅今天
  • OneWeek:最近 7 天
  • OneMonth:最近 30 天
  • OneYear:最近 365 天

4. 内容返回(--contents

  • mainText:返回完整正文内容——需要详细信息时使用,如技术文档、研究报告或深度文章
  • summary:仅返回简洁摘要——快速概览足够时,或页面内容过大需要减少 token 时使用

5. 结果数(--numResults

  • 控制返回结果数(默认:10,范围:1-10)

ReadPage 参数

参数类型必填默认值说明
--urlstring-目标页面 URL
--formatstringmarkdown返回格式
--timeoutnumber60000总超时(毫秒)
--pageTimeoutnumber15000页面加载超时(毫秒)
--stealthnumber0启用隐身模式(0 或 1)
--extractArticlebooleanfalse仅提取正文内容

#### ReadPage 最佳实践

1. 格式选择(--format

  • markdown:最适合文章,保留结构(默认)
  • text:最适合数据提取
  • html:需要结构分析时

2. 正文提取(--extractArticle

  • 启用:博客、新闻文章
  • 禁用:产品页、目录

3. 处理失败(--timeout--stealth

  • 超时:增大 --timeout 值重试
  • 被拦截:启用 --stealth 1
  • 仍失败:报告给用户

命令行用法

搜索示例

#### 基础搜索

node scripts/search.mjs --query "量子计算原理" --engineType LiteAdvanced

#### 实时信息搜索

node scripts/search.mjs --query "最新金融政策" --engineType Generic --timeRange OneWeek

#### 带结果数限制的搜索

node scripts/search.mjs --query "www.aliyun.com" --engineType LiteAdvanced --numResults 3

#### 带完整内容的搜索

node scripts/search.mjs --query "AI 法案" --engineType LiteAdvanced --contents mainText

#### 仅摘要的搜索

node scripts/search.mjs --query "人工智能行业年度报告" --engineType LiteAdvanced --contents summary

#### 深度研究搜索(复杂多跳 / 长 mainText)

每个结果返回最多 50000 字符 mainText;延迟约 6s。Deep 默认超时自动提升到 60s。

node scripts/search.mjs --query "对比 GPT-5 与 Claude Opus 4.7 的代码能力差异" --engineType Deep --numResults 5 --contents mainText


### ReadPage 示例

#### Markdown 格式页面阅读

node scripts/readpage.mjs --url "https://example.com/article" --format markdown --extractArticle true


#### 纯文本格式页面阅读

node scripts/readpage.mjs --url "https://example.com/article" --format text --timeout 60000


#### 隐身模式页面阅读

node scripts/readpage.mjs --url "https://example.com/article" --format markdown --stealth 1 --extractArticle true

输出验证

执行任何 search.mjs 或 readpage.mjs 命令后:

  1. 检查退出码:若非零,命令失败——不要声称成功。
  2. 验证输出存在:若将结果保存到文件,运行 ls -la &lt;filepath&gt;head -20 &lt;filepath&gt; 确认文件存在且含有效数据。
  3. 绝不编造结果:若命令失败或返回错误,诚实报告失败。不要从自己的知识生成内容并作为搜索结果呈现。

错误处理

ALIYUN_IQS_API_KEY 配置错误

若脚本返回缺少 API key 的错误:

  1. 立即停止当前任务。不要回退到内置工具(WebFetch、web_search、curl 等)作为替代。
  2. 向用户报告错误并请用户配置 API key:
  1. 用以下说明重试任务:

方式 1:环境变量

export ALIYUN_IQS_API_KEY="your-api-key"

方式 2:配置文件

创建或编辑 ~/.alibabacloud/iqs/env

ALIYUN_IQS_API_KEY=your-api-key