Tavily tools
@mastra/tavily パッケージは、Tavily API を Mastra 互換の Tool としてラップします。検索、抽出、クロール、マップ用のファクトリー関数を公開しています。各関数は、完全な Zod 入出力スキーマを備えた createTool() で作成された Tool を返します。
インストールインストールへの直接リンク
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/tavily @tavily/core zod
pnpm add @mastra/tavily @tavily/core zod
yarn add @mastra/tavily @tavily/core zod
bun add @mastra/tavily @tavily/core zod
クイックスタートクイックスタートへの直接リンク
共通設定を使用する4つの Tool をすべて取得するには、createTavilyTools() を使用します。
import { createTavilyTools } from '@mastra/tavily'
const tools = createTavilyTools()
// Or pass an explicit API key:
// const tools = createTavilyTools({ apiKey: 'tvly-...' })
各 Tool は個別に作成することもできます。
import { createTavilySearchTool, createTavilyExtractTool } from '@mastra/tavily'
const searchTool = createTavilySearchTool()
const extractTool = createTavilyExtractTool({ apiKey: 'tvly-...' })
デフォルトでは、すべての Tool が環境から TAVILY_API_KEY を読み取ります。明示的に { apiKey } を渡すと上書きできます。
設定設定への直接リンク
すべてのファクトリー関数は、@tavily/core の TavilyClientOptions を受け取ります。
apiKey?:
TAVILY_API_KEY を使用します。clientName?:
X-Client-Name ヘッダーで送信される属性文字列。apiBaseURL?:
proxies?:
projectId?:
createTavilyTools()createtavilytoolsへの直接リンク
共通設定を使用する4つの Tool をすべて含むオブジェクトを返します。
import { createTavilyTools } from '@mastra/tavily'
const tools = createTavilyTools({ apiKey: 'tvly-...' })
// tools.tavilySearch, tools.tavilyExtract, tools.tavilyCrawl, tools.tavilyMap
戻り値: { tavilySearch, tavilyExtract, tavilyCrawl, tavilyMap }
createTavilySearchTool()createtavilysearchtoolへの直接リンク
Tavily を使用して Web を検索する Tool を作成します。コンテンツの抜粋、任意の AI 生成回答、画像を含む関連性の高い結果を返します。
Tool ID: tavily-search
import { createTavilySearchTool } from '@mastra/tavily'
const searchTool = createTavilySearchTool()
入力入力への直接リンク
query:
searchDepth?:
maxResults?:
includeAnswer?:
includeImages?:
includeImageDescriptions?:
includeRawContent?:
includeDomains?:
excludeDomains?:
timeRange?:
出力出力への直接リンク
query:
answer?:
images?:
results:
title:
url:
content:
score:
rawContent?:
responseTime:
createTavilyExtractTool()createtavilyextracttoolへの直接リンク
1つ以上の URL からコンテンツを抽出する Tool を作成します。1回のリクエストにつき最大20件の URL から、生のページコンテンツを Markdown またはテキスト形式で返します。
Tool ID: tavily-extract
import { createTavilyExtractTool } from '@mastra/tavily'
const extractTool = createTavilyExtractTool()
入力入力への直接リンク
urls:
extractDepth?:
query?:
includeImages?:
format?:
出力出力への直接リンク
results:
url:
rawContent:
images?:
failedResults:
url:
error:
responseTime:
createTavilyCrawlTool()createtavilycrawltoolへの直接リンク
指定した URL を起点に Web サイトをクロールする Tool を作成します。設定可能な深さ、幅、ドメイン制約に従って、検出したページからコンテンツを抽出します。
Tool ID: tavily-crawl
import { createTavilyCrawlTool } from '@mastra/tavily'
const crawlTool = createTavilyCrawlTool()
入力入力への直接リンク
url:
maxDepth?:
maxBreadth?:
limit?:
instructions?:
selectPaths?:
selectDomains?:
excludePaths?:
excludeDomains?:
allowExternal?:
extractDepth?:
includeImages?:
format?:
出力出力への直接リンク
baseUrl:
results:
url:
rawContent:
images?:
responseTime:
createTavilyMapTool()createtavilymaptoolへの直接リンク
指定した URL を起点に Web サイトの構造をマッピングする Tool を作成します。ページコンテンツは抽出せず、URL を検出して一覧を返します。対象を絞った抽出の前にサイト構造を把握するために使用します。
Tool ID: tavily-map
import { createTavilyMapTool } from '@mastra/tavily'
const mapTool = createTavilyMapTool()
入力入力への直接リンク
url:
maxDepth?:
maxBreadth?:
limit?:
instructions?:
selectPaths?:
selectDomains?:
excludePaths?:
excludeDomains?:
allowExternal?:
出力出力への直接リンク
baseUrl:
results:
responseTime:
Agent の例Agent の例への直接リンク
次の例は、検索と抽出を組み合わせた調査 Agent を示します。
import { Agent } from '@mastra/core/agent'
import { createTavilySearchTool, createTavilyExtractTool } from '@mastra/tavily'
const agent = new Agent({
id: 'web-search-agent',
name: 'Web Search Agent',
model: 'anthropic/claude-sonnet-4-6',
instructions:
'You are a web search assistant. Use search tool to find relevant pages, then use extract tool to get full content from the best results.',
tools: {
search: createTavilySearchTool(),
extract: createTavilyExtractTool(),
},
})
環境変数環境変数への直接リンク
| 変数 | 説明 |
|---|---|
TAVILY_API_KEY | Tavily API キー。ファクトリー関数に apiKey を渡さなかった場合のデフォルトとして使用されます。 |