home / skills / openclaw / skills / bocha-search

bocha-search skill

/skills/sunjingji/bocha-search

This skill enables comprehensive web search via Bocha Search API, returning structured results with optional summaries for AI agents.

npx playbooks add skill openclaw/skills --skill bocha-search

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
3.0 KB
---
name: bocha-search
description: 博查搜索 API 插件,从全网搜索网页信息,结果准确、摘要完整,适合 AI 使用。
version: 1.0.0
author: Jowin
---

# 博查搜索 (Bocha Search)

基于博查 AI 搜索 API 的网页搜索插件,返回结构化的搜索结果,适合大模型使用。

## 功能特点

- 🔍 全网搜索,结果准确
- 📝 可选返回网页摘要 (summary)
- ⏰ 支持时间范围过滤
- 🌐 Response 格式兼容 Bing Search API

## 配置

### 方式一:配置文件 (推荐)

编辑 `config.json`:
```json
{
  "apiKey": "sk-your-api-key"
}
```

### 方式二:环境变量

```bash
export BOCHA_API_KEY="sk-your-api-key"
```

> API Key 获取:https://open.bochaai.com → API KEY 管理

## 使用方法

```bash
node scripts/search.js <query> [options]
```

### 参数说明

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `<query>` | string | ✅ | 搜索关键词 |
| `--count <n>` | number | ❌ | 返回结果数量,范围 1-50,默认 10 |
| `--freshness <v>` | string | ❌ | 时间范围过滤,默认 noLimit |
| `--summary` | flag | ❌ | 是否返回网页摘要 |

### freshness 取值说明

| 值 | 说明 |
|------|------|
| `noLimit` | 不限时间 (默认,推荐) |
| `oneDay` | 一天内 |
| `oneWeek` | 一周内 |
| `oneMonth` | 一个月内 |
| `oneYear` | 一年内 |
| `YYYY-MM-DD..YYYY-MM-DD` | 自定义日期范围,如 `2025-01-01..2025-04-06` |
| `YYYY-MM-DD` | 指定日期,如 `2025-04-06` |

> ⚠️ 推荐使用 `noLimit`,搜索算法会自动优化时间范围。指定时间范围可能导致无结果。

## 示例

### 基本搜索
```bash
node scripts/search.js "沪电股份"
```

### 限制数量
```bash
node scripts/search.js "人工智能" --count 5
```

### 带摘要
```bash
node scripts/search.js "DeepSeek" --summary
```

### 限定时间范围
```bash
node scripts/search.js "AI新闻" --freshness oneWeek --count 10
```

### 组合使用
```bash
node scripts/search.js "阿里巴巴ESG报告" --count 5 --freshness oneMonth --summary
```

## 输出格式

### 成功响应
```json
{
  "type": "search",
  "query": "搜索词",
  "totalResults": 12345,
  "resultCount": 10,
  "results": [
    {
      "index": 1,
      "title": "网页标题",
      "url": "https://example.com/page",
      "description": "网页内容的简短描述",
      "summary": "网页内容的详细摘要 (需 --summary)",
      "siteName": "网站名称",
      "publishedDate": "2025-01-01T12:00:00+08:00"
    }
  ]
}
```

### 错误响应
```json
{
  "type": "error",
  "code": "401",
  "message": "Invalid API KEY",
  "log_id": "xxxx"
}
```

### 常见错误码

| 错误码 | 说明 | 处理方式 |
|--------|------|----------|
| 400 | 参数缺失 | 检查 query 参数 |
| 401 | API Key 无效 | 检查 config.json 或环境变量 |
| 403 | 余额不足 | 前往 open.bochaai.com 充值 |
| 429 | 请求频率限制 | 稍后重试 |

## API 文档

- 博查开放平台:https://open.bochaai.com
- API 文档:https://bocha-ai.feishu.cn/wiki/RXEOw02rFiwzGSkd9mUcqoeAnNK

Overview

This skill integrates the Bocha Search API to perform web-wide searches and return structured results optimized for AI consumption. It delivers accurate search hits, optional page summaries, and output compatible with Bing Search API formats. The skill supports count limits and time-range filtering for targeted results.

How this skill works

The skill submits queries to the Bocha AI Search API and returns a JSON response containing search metadata, ranked results, and optional summaries. It accepts parameters for result count, freshness (time range), and a summary flag, and maps API responses into a predictable structure that includes title, URL, description, site name, and publishedDate. Errors are surfaced with standard HTTP-like codes and messages to simplify handling.

When to use it

  • Pulling current web content for research, reporting, or fact-checking.
  • Feeding structured search results into a larger AI pipeline or agent.
  • Generating summaries of web pages without scraping full HTML.
  • Filtering search results by time range for news or trend analysis.
  • Replacing ad-hoc web searches when you need machine-friendly output.

Best practices

  • Provide a clear, focused query to improve relevance and reduce noise.
  • Use --count to limit returned items to the number your application needs (1–50).
  • Prefer freshness 'noLimit' unless you specifically need a date range—the API optimizes relevance across time by default.
  • Enable --summary only when you need extracted page summaries to save bandwidth and processing.
  • Handle common error codes (400, 401, 403, 429) with retries, credential checks, or billing checks.

Example use cases

  • Automated news aggregation: fetch week-old articles about a topic using freshness oneWeek and store structured results.
  • Research assistant: retrieve top 10 authoritative pages on a technical topic and include summaries for quick review.
  • Monitoring: run periodic searches for brand mentions with count set low and parse publishedDate to detect trends.
  • AI pipeline input: feed Bocha Search JSON directly into an LLM prompt for citation-aware responses.
  • Data archival: export search results and metadata for compliance or offline analysis.

FAQ

How do I provide the API key?

Set BOCHA_API_KEY as an environment variable or include apiKey in a config.json file; the skill reads either location.

What does the freshness parameter accept?

Use presets like noLimit, oneDay, oneWeek, oneMonth, oneYear, a single date YYYY-MM-DD, or a range YYYY-MM-DD..YYYY-MM-DD.

What happens if I request summaries?

The API returns a summary field per result; enable --summary to include this, which may increase response size and processing time.