博查搜索Python版
bocha-search-python
by andyli-gh
博查搜索 (Bocha Search) 的 Python 实现技能,提供增强的网页搜索能力。当用户需要通过博查 AI 搜索 API 进行网页搜索、获取联网信息、查找最新资讯或中文内容时使用此技能。与现有的 JavaScript 版本相比,本技能提供更稳定的连接、更灵活的输出格式(原始 JSON/Brave 兼容格式/Markdown)、更好的错误处理和重试机制。适用于 AI Agent 需要联网搜索、RAG 应用获取网页摘要、中文内容检索等场景。
安装
claude skill add --url https://github.com/openclaw/skills文档
博查搜索 Python 版 (Bocha Search Python)
概述
博查搜索 Python 版是一个增强的博查 AI 搜索 API 客户端,专为 AI Agent 和自动化工作流设计。相比现有的 JavaScript 版本,本技能提供:
- 更稳定的连接:内置重试机制和错误处理
- 灵活的输出格式:支持原始 JSON、Brave/Bing 兼容格式和 Markdown
- 多重配置来源:.env 文件、环境变量
- 完整的时间范围过滤:支持精确日期和日期范围
- 详细的错误信息:帮助快速诊断问题
快速开始
1. 配置 API 密钥
提供 API 密钥的两种方式(按优先级排序):
-
.env文件:在~/.openclaw/.env中添加(优先级最高)codeBOCHA_API_KEY=sk-your-api-key -
环境变量:设置
BOCHA_API_KEYbashexport BOCHA_API_KEY="sk-your-api-key"
API 密钥获取:访问 https://open.bochaai.com → API KEY 管理
2. 基本搜索
# 使用位置参数
python3 scripts/search.py "沪电股份"
# 使用 --query 选项
python3 scripts/search.py --query "人工智能" --count 5
# 返回详细摘要
python3 scripts/search.py "DeepSeek" --summary
# 限制时间范围
python3 scripts/search.py "AI新闻" --freshness oneWeek --count 10
3. 输出格式
# 原始 JSON 格式(API 原始响应)
python3 scripts/search.py "阿里巴巴" --format raw
# Brave/Bing 兼容格式(默认,适合 AI 使用)
python3 scripts/search.py "阿里巴巴" --format brave
# Markdown 格式(人类可读)
python3 scripts/search.py "阿里巴巴" --format md
高级用法
时间范围过滤
支持多种时间范围格式:
| 值 | 说明 | 示例 |
|---|---|---|
noLimit | 不限时间(默认) | --freshness noLimit |
oneDay | 一天内 | --freshness oneDay |
oneWeek | 一周内 | --freshness oneWeek |
oneMonth | 一个月内 | --freshness oneMonth |
oneYear | 一年内 | --freshness oneYear |
YYYY-MM-DD | 指定日期 | --freshness 2025-04-06 |
YYYY-MM-DD..YYYY-MM-DD | 日期范围 | --freshness 2025-01-01..2025-04-06 |
示例:
# 搜索 2025 年 4 月的内容
python3 scripts/search.py "苹果发布会" --freshness 2025-04
# 搜索 2025 年第一季度内容
python3 scripts/search.py "财报" --freshness 2025-01-01..2025-03-31
错误处理与重试
脚本内置错误处理和重试机制:
# 设置重试次数(默认 2 次)
python3 scripts/search.py "查询" --retries 3
# 设置超时时间(默认 30 秒)
python3 scripts/search.py "查询" --timeout 60
自定义 API 端点
支持备用 API 端点:
# 使用备用端点
python3 scripts/search.py "查询" --endpoint "https://api.bocha.cn/v1/web-search"
输出示例
Brave 兼容格式(默认)
{
"type": "search",
"query": "阿里巴巴",
"totalResults": 12345,
"resultCount": 10,
"results": [
{
"index": 1,
"title": "阿里巴巴发布2024年ESG报告",
"url": "https://www.alibabagroup.com/document...",
"description": "阿里巴巴集团发布《2024财年环境、社会和治理(ESG)报告》...",
"summary": "报告显示,阿里巴巴扎实推进减碳举措...",
"siteName": "阿里巴巴集团",
"publishedDate": "2024-07-22T00:00:00+08:00"
}
]
}
Markdown 格式
## 搜索结果: 阿里巴巴
*找到约 12345 条结果*
1. **阿里巴巴发布2024年ESG报告**
*阿里巴巴集团*
[https://www.alibabagroup.com/document...](https://www.alibabagroup.com/document...)
阿里巴巴集团发布《2024财年环境、社会和治理(ESG)报告》...
*摘要*: 报告显示,阿里巴巴扎实推进减碳举措...
*发布时间*: 2024-07-22T00:00:00+08:00
在 OpenClaw 中使用
直接调用脚本
# 从 OpenClaw workspace 根目录调用
python3 skills/bocha-search-python/scripts/search.py "查询"
# 使用绝对路径
python3 /root/.openclaw/workspace/skills/bocha-search-python/scripts/search.py "查询"
集成到 Agent 工作流
在 Agent 的响应中调用搜索并处理结果:
# 示例:在 Python 代码中调用
import subprocess
import json
def bocha_search(query, count=5):
cmd = [
"python3",
"/root/.openclaw/workspace/skills/bocha-search-python/scripts/search.py",
"--query", query,
"--count", str(count),
"--format", "brave"
]
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode == 0:
return json.loads(result.stdout)
else:
raise Exception(f"搜索失败: {result.stderr}")
故障排除
常见错误
| 错误代码 | 原因 | 解决方案 |
|---|---|---|
INVALID_ARGUMENT | 参数错误 | 检查查询关键词和参数格式 |
API_ERROR | API 请求失败 | 检查 API 密钥和网络连接 |
UNKNOWN_ERROR | 未知错误 | 查看详细错误信息并重试 |
调试模式
要查看更多调试信息,可以修改脚本或添加调试输出:
# 在 search.py 中添加调试
import logging
logging.basicConfig(level=logging.DEBUG)
验证 API 密钥
# 简单测试 API 密钥是否有效
curl -X POST "https://api.bochaai.com/v1/web-search" \
-H "Authorization: Bearer YOUR-API-KEY" \
-H "Content-Type: application/json" \
-d '{"query": "test", "count": 1}'
性能建议
- 限制结果数量:默认返回 10 条,根据需要调整
- 使用适当的时间范围:避免不必要的全文搜索
- 缓存结果:对重复查询考虑本地缓存
- 批量处理:避免频繁的单个请求
资源
scripts/search.py
主搜索脚本,包含所有核心功能。
版本历史
- 0.1.0 (2026-03-27): 初始版本,基于博查搜索 API 构建,提供增强的 Python 实现
- 0.1.1 (2026-03-28): 安全改进 - 添加技能元数据声明必需的环境变量 BOCHA_API_KEY,解决安全扫描警告
相关技能
bocha-search: 原始的 JavaScript 版本tavily-search: Tavily 搜索 API 技能web_search: 内置网页搜索工具
注意:本技能需要有效的博查 API 密钥。使用前请确保已注册并获取密钥。
相关 Skills
前端设计
by anthropics
面向组件、页面、海报和 Web 应用开发,按鲜明视觉方向生成可直接落地的前端代码与高质感 UI,适合做 landing page、Dashboard 或美化现有界面,避开千篇一律的 AI 审美。
✎ 想把页面做得既能上线又有设计感,就用前端设计:组件到整站都能产出,难得的是能避开千篇一律的 AI 味。
网页构建器
by anthropics
面向复杂 claude.ai HTML artifact 开发,快速初始化 React + Tailwind CSS + shadcn/ui 项目并打包为单文件 HTML,适合需要状态管理、路由或多组件交互的页面。
✎ 在 claude.ai 里做复杂网页 Artifact 很省心,多组件、状态和路由都能顺手搭起来,React、Tailwind 与 shadcn/ui 组合效率高、成品也更精致。
网页应用测试
by anthropics
用 Playwright 为本地 Web 应用编写自动化测试,支持启动开发服务器、校验前端交互、排查 UI 异常、抓取截图与浏览器日志,适合调试动态页面和回归验证。
✎ 借助 Playwright 一站式验证本地 Web 应用前端功能,调 UI 时还能同步查看日志和截图,定位问题更快。
相关 MCP 服务
GitHub
编辑精选by GitHub
GitHub 是 MCP 官方参考服务器,让 Claude 直接读写你的代码仓库和 Issues。
✎ 这个参考服务器解决了开发者想让 AI 安全访问 GitHub 数据的问题,适合需要自动化代码审查或 Issue 管理的团队。但注意它只是参考实现,生产环境得自己加固安全。
Context7 文档查询
编辑精选by Context7
Context7 是实时拉取最新文档和代码示例的智能助手,让你告别过时资料。
✎ 它能解决开发者查找文档时信息滞后的问题,特别适合快速上手新库或跟进更新。不过,依赖外部源可能导致偶尔的数据延迟,建议结合官方文档使用。
by tldraw
tldraw 是让 AI 助手直接在无限画布上绘图和协作的 MCP 服务器。
✎ 这解决了 AI 只能输出文本、无法视觉化协作的痛点——想象让 Claude 帮你画流程图或白板讨论。最适合需要快速原型设计或头脑风暴的开发者。不过,目前它只是个基础连接器,你得自己搭建画布应用才能发挥全部潜力。