Exa 搜索工具
ExaSearchTool 让 CrewAI 智能体可以使用 Exa 搜索网络,这是一个最快且最准确的网络搜索 API。它会针对任何查询返回最相关的结果,并支持节省 token 的高亮内容以及完整页面内容。
安装 CrewAI tools 包:
pip install 'crewai[tools]'将你的 Exa API key 设置为环境变量:
export EXA_API_KEY='your_exa_api_key'可在 Exa 控制台 获取 API key。
下面是如何在 CrewAI 智能体中使用 ExaSearchTool:
import osfrom crewai import Agent, Task, Crewfrom crewai_tools import ExaSearchTool
# 初始化工具exa_tool = ExaSearchTool()
# 创建使用该工具的智能体researcher = Agent( role='研究分析师', goal='查找任何主题的最新信息', backstory='一位擅长寻找最相关、最新信息的专家研究员。', tools=[exa_tool], verbose=True)
# 为智能体创建任务research_task = Task( description='查找量子计算领域最近的 3 项突破。', expected_output='前 3 项突破的摘要以及来源 URL。', agent=researcher)
# 组建 crew 并启动crew = Crew( agents=[researcher], tasks=[research_task], verbose=True)
result = crew.kickoff()print(result)ExaSearchTool 在初始化时接受以下参数:
type(str, optional):要使用的搜索类型。默认是"auto"。可选项:"auto"、"instant"、"fast"、"deep"。highlights(bool or dict, optional):返回与查询最相关、节省 token 的摘录,而不是整页内容。默认值为True。可传入如{"max_characters": 4000}的字典进行配置,或传入False关闭。content(bool, optional):是否在结果中包含完整页面内容。默认值为False。api_key(str, optional):你的 Exa API key。如果未提供,则回退到EXA_API_KEY环境变量。base_url(str, optional):自定义 API 服务器 URL。如果未提供,则回退到EXA_BASE_URL环境变量。
调用工具时(或智能体调用时),可用以下搜索参数:
search_query(str):必需。搜索查询字符串。start_published_date(str, optional):筛选发布日期晚于该日期的结果(ISO 8601 格式,例如"2024-01-01")。end_published_date(str, optional):筛选发布日期早于该日期的结果(ISO 8601 格式)。include_domains(list[str], optional):限制搜索域名列表。
对于大多数智能体工作流,我们建议使用 highlights - 它会返回每个结果中最相关的摘录,并且使用的 token 比完整页面内容少得多:
# 获取与查询最相关、节省 token 的摘录exa_tool = ExaSearchTool( highlights=True, type="auto",)
# 在智能体中使用agent = Agent( role="Researcher", goal="使用当前网络数据回答问题", tools=[exa_tool])对于深入的多步骤搜索,请使用 type="deep":
exa_tool = ExaSearchTool( highlights=True, type="deep",)关于如何在 highlights 和完整内容之间做选择的更多信息,请参阅 Exa 搜索最佳实践。
通过 MCP 使用 Exa
Section titled “通过 MCP 使用 Exa”你也可以把智能体连接到 Exa 托管的 MCP 服务器。通过 x-api-key 头部传入你的 API key:
from crewai import Agentfrom crewai.mcp import MCPServerHTTP
agent = Agent( role="研究分析师", goal="在网络上查找并分析信息", backstory="可以访问 Exa 工具的专家研究员", mcps=[ MCPServerHTTP( url="https://mcp.exa.ai/mcp", headers={"x-api-key": "YOUR_EXA_API_KEY"}, ), ],)可在 Exa 控制台 获取 API key。关于 CrewAI 中的 MCP,请参阅 MCP 概览。
- 节省 token 的高亮内容:获取每个结果中最相关的摘录,相比完整文本可节省约 10 倍 token
- 语义搜索:基于含义而不仅仅是关键词查找结果
- 完整内容获取:在搜索结果旁获取网页完整文本
- 日期过滤:使用发布日期过滤限制结果的时间范围
- 域名过滤:将搜索限制在特定域名