关于 exa-web-search
exa-web-search 是供 AI Agent 使用的 Exa.ai 语义网页搜索技能,可用于研究、内容聚合和网页数据检索。它结合网页抓取、内容提取、重点高亮与日期筛选。
主要功能
- 01按查询意图进行语义搜索
- 02抓取搜索结果中的网页
- 03提取文本、图像或元数据
- 04高亮相关短语或段落
- 05按日期筛选并分页
适用场景
- 01研究近期文章中的趋势
- 02从网页提取内容用于分析
- 03汇总搜索结果并交给其他工具处理
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill exa-web-search安装后在 Claude Code 中输入/exa-web-search确认已加载。
详细介绍
exa-web-search
用途
此技能通过 Exa.ai 的神经引擎实现语义网页搜索,支持高级查询、网页爬取、内容提取、重点内容高亮以及按日期筛选。它专为 AI Agent 设计,可在需要检索实时或历史信息的任务中高效获取和处理网页数据。
适用场景
当你需要超越关键词匹配的语义搜索时,可使用此技能,例如分析近期文章中的趋势、从爬取的网页中提取数据,或高亮相关内容。可将其用于研究任务、内容聚合,或将网页数据整合到 AI 工作流中;尤其适用于其他搜索工具无法捕捉上下文细微差别的情况。
主要功能
- 使用神经网络理解查询意图,实现语义搜索。
- 根据查询动态爬取网页。
- 从网页中提取文本、图像或元数据。
- 在搜索结果中高亮关键词或重点内容。
- 按日期筛选,将结果限制在特定时间范围内,例如最近 7 天。
- 支持分页和结果数量限制,满足可扩展查询的需求。
使用模式
始终通过环境变量进行身份验证后再初始化。使用 CLI 时,可循环运行搜索以进行批量处理。在代码中,使用异步 API 调用以避免阻塞。使用具体的标志构建查询,以提高准确性,并解析响应以提取高亮内容或元数据。先使用较小的结果数量进行测试,确认结果符合预期。
常用命令/API
Exa.ai 提供 CLI 工具和 REST API。使用前,请将 API 密钥设置到 $EXA_API_KEY 中。
CLI 命令:
- 基本搜索:
exa search --query "AI advancements" --limit 5 --date-after "2023-01-01"示例片段:result = subprocess.run(['exa', 'search', '--query', 'climate change'], capture_output=True) print(result.stdout) - 使用爬取和内容提取:
exa search --query "open source tools" --crawl-depth 2 --extract-content代码片段:import subprocess output = subprocess.check_output(['exa', 'search', '--query', 'web frameworks', '--highlight'])
API 端点:
- 主端点:
POST https://api.exa.ai/v1/search请求正文格式(JSON):
代码片段:{ "query": "machine learning", "limit": 10, "date_after": "2022-01-01", "crawl_depth": 1 }import requests headers = {'Authorization': f'Bearer {os.environ.get("EXA_API_KEY")}'} response = requests.post('https://api.exa.ai/v1/search', headers=headers, json={"query": "neural networks"}) data = response.json() - 错误检查端点:
GET https://api.exa.ai/v1/status,用于验证服务是否可用。
配置格式:
- 使用
.exa-config.json文件保存持久化设置:
在代码中加载:{ "default_limit": 20, "api_endpoint": "https://api.exa.ai/v1/search" }with open('.exa-config.json') as f: config = json.load(f)
集成说明
可通过在环境中设置 $EXA_API_KEY 或通过标头传递密钥来进行集成。对于 AI Agent,请将 API 调用封装在 try-except 块中,并使用 aiohttp 等异步库执行非阻塞操作。可通过管道传递结果来组合其他技能,例如将搜索结果馈送给摘要工具。请通过添加延迟来遵守速率限制(例如,每分钟 100 个请求)。进行聚类时,请参考“community”标签,以关联相关技能。
错误处理
检查 API 响应中的 HTTP 状态码(例如,401 表示未授权,可通过 response.status_code 访问)。对于 CLI,请解析 stderr,查找类似 "Query exceeded limits" 的消息。常见错误包括无效查询(通过验证输入字符串来修复)或网络问题(使用指数退避重试)。在代码中使用:
if response.status_code != 200:
raise Exception(f"API error: {response.json().get('error')}")
记录错误详情,例如错误代码;对于暂时性故障,最多重试 3 次。
图关系
- 相关:搜索技能(例如,通用网页搜索工具)
- 依赖:用于 API 访问的身份验证服务
- 互补:用于结果后处理的数据提取技能
- 同类聚集:用于语义分析的社区工具