Add Tavily Research and get Research (#5483)

* Add Tavily Research and get Research

- Added tavily research with docs to crew AI

- Added tavily get research with docs to crew AI

* Update `tavily-python` installation instructions and adjust version constraints

- Changed installation command from `pip install` to `uv add` for `tavily-python` in multiple documentation files.
- Updated version constraint for `tavily-python` in `pyproject.toml` from `>=0.7.14` to `~=0.7.14`.
- Modified the `exclude-newer` date in `uv.lock` to `2026-04-23T07:00:00Z`.

* Add Tavily Research Tool documentation in multiple languages

- Introduced `TavilyResearchTool` documentation in English, Arabic, Korean, and Portuguese.
- Updated `docs.json` to include paths for the new documentation files.
- The `TavilyResearchTool` allows CrewAI agents to perform multi-step research tasks and generate cited reports using the Tavily Research API.

* Fix Tavily research CI failures

---------

Co-authored-by: lorenzejay <lorenzejaytech@gmail.com>
Co-authored-by: Evan Rimer <evan.rimer@tavily.com>
Co-authored-by: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com>
This commit is contained in:
Mani
2026-04-27 16:51:56 -04:00
committed by GitHub
parent 1337e6de34
commit 07364cf46f
26 changed files with 1296 additions and 13 deletions

View File

@@ -12,7 +12,7 @@ mode: "wide"
لاستخدام `TavilyExtractorTool`، تحتاج إلى تثبيت مكتبة `tavily-python`:
```shell
pip install 'crewai[tools]' tavily-python
uv add 'crewai[tools]' tavily-python
```
تحتاج أيضاً إلى تعيين مفتاح Tavily API كمتغير بيئة:

View File

@@ -0,0 +1,125 @@
---
title: "Tavily Research Tool"
description: "Run multi-step research tasks and get cited reports using the Tavily Research API"
icon: "flask"
mode: "wide"
---
The `TavilyResearchTool` lets CrewAI agents kick off Tavily research tasks, returning a synthesized, cited report (or a stream of progress events) instead of raw search results. Use it when an agent needs an investigative answer rather than a single web search.
## Installation
To use the `TavilyResearchTool`, install the `tavily-python` library alongside `crewai-tools`:
```shell
uv add 'crewai[tools]' tavily-python
```
## Environment Variables
Set your Tavily API key:
```bash
export TAVILY_API_KEY='your_tavily_api_key'
```
Get an API key at [https://app.tavily.com/](https://app.tavily.com/) (sign up, then create a key).
## Example Usage
```python
import os
from crewai import Agent, Crew, Task
from crewai_tools import TavilyResearchTool
# Ensure TAVILY_API_KEY is set in your environment
# os.environ["TAVILY_API_KEY"] = "YOUR_API_KEY"
tavily_tool = TavilyResearchTool()
researcher = Agent(
role="Research Analyst",
goal="Investigate questions and produce concise, well-cited briefings.",
backstory=(
"You are a meticulous analyst who delegates web research to the Tavily "
"Research tool, then synthesizes the findings into short briefings."
),
tools=[tavily_tool],
verbose=True,
)
research_task = Task(
description=(
"Investigate notable open-source agent orchestration frameworks released "
"in the last six months and summarize their differentiators."
),
expected_output="A bulleted briefing with citations.",
agent=researcher,
)
crew = Crew(agents=[researcher], tasks=[research_task])
print(crew.kickoff())
```
## Configuration Options
The `TavilyResearchTool` accepts the following arguments — all can be set on the tool instance (defaults for every call) or per-call via the agent's tool input:
- `input` (str): **Required.** The research task or question to investigate.
- `model` (Literal["mini", "pro", "auto"]): The Tavily research model. `"auto"` lets Tavily pick; `"mini"` is faster/cheaper; `"pro"` is the most capable. Defaults to `"auto"`.
- `output_schema` (dict | None): Optional JSON Schema that structures the research output. Useful when you want strictly typed results.
- `stream` (bool): When `True`, the tool returns an iterator of SSE chunks emitting research progress and the final result instead of a single string. Defaults to `False`.
- `citation_format` (Literal["numbered", "mla", "apa", "chicago"]): Citation format for the report. Defaults to `"numbered"`.
## Advanced Usage
### Configure defaults on the tool instance
```python
from crewai_tools import TavilyResearchTool
tavily_tool = TavilyResearchTool(
model="pro", # use Tavily's most capable research model
citation_format="apa", # APA-style citations
)
```
### Stream research progress
When `stream=True`, the tool returns a generator (or async generator from `_arun`) of SSE chunks so your application can surface incremental progress:
```python
tavily_tool = TavilyResearchTool(stream=True)
for chunk in tavily_tool.run(input="Summarize recent advances in retrieval-augmented generation."):
print(chunk)
```
### Structured output via JSON Schema
Pass an `output_schema` when you need a typed result instead of a free-form report:
```python
output_schema = {
"type": "object",
"properties": {
"summary": {"type": "string"},
"key_points": {"type": "array", "items": {"type": "string"}},
"sources": {"type": "array", "items": {"type": "string"}},
},
"required": ["summary", "key_points", "sources"],
}
tavily_tool = TavilyResearchTool(output_schema=output_schema)
```
## Features
- **End-to-end research**: Returns a synthesized, cited report rather than raw search hits.
- **Model selection**: Trade off cost, speed, and depth via `mini`, `pro`, or `auto`.
- **Streaming**: Stream incremental progress and results as SSE chunks for responsive UIs.
- **Structured output**: Coerce results to a JSON Schema you define.
- **Multiple citation styles**: Choose from numbered, MLA, APA, or Chicago citations.
- **Sync and async**: Use either `_run` or `_arun` depending on your application's runtime.
Refer to the [Tavily API documentation](https://docs.tavily.com/) for full details on the Research API.

View File

@@ -12,7 +12,7 @@ mode: "wide"
لاستخدام `TavilySearchTool`، تحتاج إلى تثبيت مكتبة `tavily-python`:
```shell
pip install 'crewai[tools]' tavily-python
uv add 'crewai[tools]' tavily-python
```
## متغيرات البيئة