RAGFlow Tavily工具:AI驱动的智能搜索服务
工具概述
Tavily工具是RAGFlow中基于AI的智能搜索服务,专为大语言模型(LLM)优化,提供高效、快速且持久的搜索结果。该工具支持两种核心功能:网页搜索和内容提取,分别通过TavilySearch和TavilyExtract两个类实现。
核心功能与实现
1. 智能搜索(TavilySearch)
该功能允许用户通过关键词执行精准搜索,支持领域过滤和结果定制。关键参数包括:
- query:搜索关键词(最多5个词)
- topic:搜索类别(general/news)
- include_domains/exclude_domains:域名过滤列表
- search_depth:搜索深度(basic/advanced)
实现代码位于TavilySearch类,核心调用逻辑:
self.tavily_client = TavilyClient(api_key=self._param.api_key)
res = self.tavily_client.search(**kwargs)
self._retrieve_chunks(res["results"],
get_title=lambda r: r["title"],
get_url=lambda r: r["url"],
get_content=lambda r: r["raw_content"] if r["raw_content"] else r["content"],
get_score=lambda r: r["score"])
2. 内容提取(TavilyExtract)
该功能支持从指定URL提取结构化内容,支持多种格式输出。关键参数包括:
- urls:目标URL列表(逗号分隔)
- extract_depth:提取深度(basic/advanced)
- format:输出格式(markdown/text)
实现代码位于TavilyExtract类,核心调用逻辑:
self.tavily_client = TavilyClient(api_key=self._param.api_key)
res = self.tavily_client.extract(**kwargs)
self.set_output("json", res["results"])
应用场景与示例
1. 市场调研工作流
在market_generate_seo_blog.json模板中,Tavily工具用于:
- 搜索行业趋势关键词
- 提取竞品网站内容
- 整合市场数据生成报告
2. 技术文档检索
在technical_docs_qa.json模板中,工具配置示例:
{
"tavily:0": {
"component": "TavilySearch",
"parameters": {
"query": "{sys.query}",
"topic": "general",
"include_domains": ["github.com", "readthedocs.io"]
}
}
}
配置与使用指南
参数配置
工具参数定义在TavilySearchParam和TavilyExtractParam类中,包括数据验证逻辑:
def check(self):
self.check_valid_value(self.topic, "Tavily topic: should be in 'general/news'", ["general", "news"])
self.check_valid_value(self.search_depth, "Tavily search depth should be in 'basic/advanced'", ["basic", "advanced"])
环境变量
- COMPONENT_EXEC_TIMEOUT:组件执行超时时间(默认12秒)
- TAVILY_API_KEY:API密钥(需用户自行配置)
使用示例
- 基础搜索调用:
tool = TavilySearch()
result = tool.invoke(query="ragflow latest features", topic="news", max_results=5)
- 内容提取调用:
tool = TavilyExtract()
result = tool.invoke(urls="https://gitcode.com/GitHub_Trending/ra/ragflow", format="markdown")
最佳实践
搜索优化技巧
- 使用精准关键词(3-5个词)
- 合理设置搜索深度:
- basic:快速获取概述信息
- advanced:深度研究场景
- 利用领域过滤提高结果相关性
性能优化
- 控制单次搜索结果数量(建议1-10条)
- 合理设置超时时间(复杂查询建议延长至30秒)
- 批量提取URL时控制并发数量
总结与扩展
Tavily工具通过agent/tools/tavily.py实现了高效的AI驱动搜索能力,为RAGFlow提供了强大的外部知识获取渠道。结合不同的agent模板,可快速构建行业解决方案,如市场分析、技术调研、客户支持等场景。
未来扩展方向包括:
- 多语言搜索支持
- 搜索结果自动摘要
- 搜索历史缓存机制
更多使用示例可参考agent/test/dsl_examples/目录下的工作流定义文件。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



