alibabacloud-iqs-search
Prerequisites
- Node.js >= 18.0.0 (scripts use native fetch API, no external npm dependencies)
When to Use
- User asks for current/recent information
- User provides a URL to read
- Need to verify facts or get real-time data
- Research tasks requiring multiple sources
Decision Tree
Step 1: Determine Operation Type
- If user provides a URL → Use
readpage - If user asks a question needing web info → Use
search
Step 2: For Search Operations
Follow the best practices to determine parameter values. Use default values when uncertain:
- engineType
- timeRange
- contents
Step 3: For Page Reading
Follow the best practices to determine parameter values. Use default values when uncertain:
- format
- extractArticle
- stealthMode
CRITICAL: Execution Method
You MUST execute the scripts via bash command (e.g., node scripts/search.mjs ... or node scripts/readpage.mjs ...). Do NOT use your built-in web_search, WebFetch, or any other internal tools as substitutes. If the script fails, retry or report the error — do NOT fall back to built-in tools.
Parameters & Best Practices
Search Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
--query | string | Yes | - | Search query (1-500 chars) |
--engineType | string | No | LiteAdvanced | Search engine type |
--timeRange | string | No | NoLimit | Time range filter |
--contents | string | No | - | Type of return content |
--numResults | int | No | 10 | Number of search results (1-10) |
Search Best Practices
1. Query Optimization (--query)
- Keep queries concise (< 30 chars for best results)
- Use specific keywords, avoid stop words
- For news: include time context in query
2. Engine Selection (--engineType)
LiteAdvanced: Semantic search, 1-50 results, general useGeneric: Fast, 10 results, news/realtime
3. Time Range Selection (--timeRange)
NoLimit: Default when uncertain - engine optimizes based on query relevanceOneDay: Today onlyOneWeek: Last 7 daysOneMonth: Last 30 daysOneYear: Last 365 days
4. Content Return (--contents)
mainText: Return full main text content - Use when detailed information is needed, such as technical documentation, research reports, or in-depth articlessummary: Return concise summary only - Use when a quick overview is sufficient, or when the page content is too large and token reduction is needed
5. Result Count (--numResults)
- Control number of results returned (default: 10, range: 1-10)
ReadPage Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
--url | string | Yes | - | Target page URL |
--format | string | No | markdown | Return format |
--timeout | number | No | 60000 | Total timeout in milliseconds |
--pageTimeout | number | No | 15000 | Page load timeout in milliseconds |
--stealth | number | No | 0 | Enable stealth mode (0 or 1) |
--extractArticle | boolean | No | false | Extract main article content only |
ReadPage Best Practices
1. Format Selection (--format)
markdown: Best for articles, preserves structure (default)text: Best for data extractionhtml: When structure analysis needed
2. Article Extraction (--extractArticle)
- Enable for: blogs, news articles
- Disable for: product pages, directories
3. Handling Failures (--timeout, --stealth)
- If timeout: Retry with increased
--timeoutvalue - If blocked: Enable
--stealth 1 - If still fails: Report to user
Command Line Usage
Search Examples
Basic Search
node scripts/search.mjs --query "量子计算原理" --engineType LiteAdvanced
Real-time Information Search
node scripts/search.mjs --query "最新金融政策" --engineType Generic --timeRange OneWeek
Search with Results Limit
node scripts/search.mjs --query "www.aliyun.com" --engineType LiteAdvanced --numResults 3
Search with Full Content
node scripts/search.mjs --query "AI 法案" --engineType LiteAdvanced --contents mainText
Search with Summary Only
node scripts/search.mjs --query "人工智能行业年度报告" --engineType LiteAdvanced --contents summary
ReadPage Examples
Page Reading with Markdown Format
node scripts/readpage.mjs --url "https://example.com/article" --format markdown --extractArticle true
Page Reading with Plain Text Format
node scripts/readpage.mjs --url "https://example.com/article" --format text --timeout 60000
Page Reading with Stealth Mode
node scripts/readpage.mjs --url "https://example.com/article" --format markdown --stealth 1 --extractArticle true
Output Verification
After executing any search.mjs or readpage.mjs command:
- Check the exit code: If non-zero, the command failed — do not claim success.
- Verify output exists: If you saved results to a file, run
ls -la <filepath>andhead -20 <filepath>to confirm the file exists and contains valid data. - Never fabricate results: If the command failed or returned an error, report the failure honestly. Do not generate content from your own knowledge and present it as search results.
Error Handling
ALIYUN_IQS_API_KEY Configuration Error
If the script returns an error about missing API key:
-
STOP the current task immediately. Do NOT fall back to built-in tools (WebFetch, web_search, curl, etc.) as substitutes.
-
Report the error to the user and ask the user to configure the API key:
-
Retry the task with following instruction: Method 1: Environment Variable
export ALIYUN_IQS_API_KEY="your-api-key"
Method 2: Configuration File
Create or edit ~/.alibabacloud/iqs/env:
ALIYUN_IQS_API_KEY=your-api-key