{"id":646,"date":"2026-03-21T22:52:58","date_gmt":"2026-03-21T14:52:58","guid":{"rendered":"https:\/\/pa.yingzhi8.cn\/index.php\/2026\/03\/21\/tools-tavily\/"},"modified":"2026-03-21T23:08:57","modified_gmt":"2026-03-21T15:08:57","slug":"tools-tavily","status":"publish","type":"post","link":"https:\/\/pa.yingzhi8.cn\/index.php\/2026\/03\/21\/tools-tavily\/","title":{"rendered":"Tavily"},"content":{"rendered":"<h1>Tavily<\/h1>\n<p>OpenClaw can use <strong>Tavily<\/strong> in two ways:<\/p>\n<ul>\n<li>as the <code>web_search<\/code> provider<\/li>\n<li>as explicit plugin tools: <code>tavily_search<\/code> and <code>tavily_extract<\/code><\/li>\n<\/ul>\n<p>Tavily is a search API designed for AI applications, returning structured results<br \/>\noptimized for LLM consumption. It supports configurable search depth, topic<br \/>\nfiltering, domain filters, AI-generated answer summaries, and content extraction<br \/>\nfrom URLs (including JavaScript-rendered pages).<\/p>\n<h2>Get an API key<\/h2>\n<ol>\n<li>Create a Tavily account at <a href=\"https:\/\/tavily.com\/\">tavily.com<\/a>.<\/li>\n<li>Generate an API key in the dashboard.<\/li>\n<li>Store it in config or set <code>TAVILY_API_KEY<\/code> in the gateway environment.<\/li>\n<\/ol>\n<h2>Configure Tavily search<\/h2>\n<p><code>json5  theme={\"theme\":{\"light\":\"min-light\",\"dark\":\"min-dark\"}}<br \/>\n{<br \/>\n  plugins: {<br \/>\n    entries: {<br \/>\n      tavily: {<br \/>\n        enabled: true,<br \/>\n        config: {<br \/>\n          webSearch: {<br \/>\n            apiKey: \"tvly-...\", \/\/ optional if TAVILY_API_KEY is set<br \/>\n            baseUrl: \"https:\/\/api.tavily.com\",<br \/>\n          },<br \/>\n        },<br \/>\n      },<br \/>\n    },<br \/>\n  },<br \/>\n  tools: {<br \/>\n    web: {<br \/>\n      search: {<br \/>\n        provider: \"tavily\",<br \/>\n      },<br \/>\n    },<br \/>\n  },<br \/>\n}<\/code><\/p>\n<p>Notes:<\/p>\n<ul>\n<li>Choosing Tavily in onboarding or <code>openclaw configure --section web<\/code> enables<br \/>\n  the bundled Tavily plugin automatically.<\/li>\n<li>Store Tavily config under <code>plugins.entries.tavily.config.webSearch.*<\/code>.<\/li>\n<li><code>web_search<\/code> with Tavily supports <code>query<\/code> and <code>count<\/code> (up to 20 results).<\/li>\n<li>For Tavily-specific controls like <code>search_depth<\/code>, <code>topic<\/code>, <code>include_answer<\/code>,<br \/>\n  or domain filters, use <code>tavily_search<\/code>.<\/li>\n<\/ul>\n<h2>Tavily plugin tools<\/h2>\n<h3><code>tavily_search<\/code><\/h3>\n<p>Use this when you want Tavily-specific search controls instead of generic<br \/>\n<code>web_search<\/code>.<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>query<\/code><\/td>\n<td>Search query string (keep under 400 characters)<\/td>\n<\/tr>\n<tr>\n<td><code>search_depth<\/code><\/td>\n<td><code>basic<\/code> (default, balanced) or <code>advanced<\/code> (highest relevance, slower)<\/td>\n<\/tr>\n<tr>\n<td><code>topic<\/code><\/td>\n<td><code>general<\/code> (default), <code>news<\/code> (real-time updates), or <code>finance<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>max_results<\/code><\/td>\n<td>Number of results, 1-20 (default: 5)<\/td>\n<\/tr>\n<tr>\n<td><code>include_answer<\/code><\/td>\n<td>Include an AI-generated answer summary (default: false)<\/td>\n<\/tr>\n<tr>\n<td><code>time_range<\/code><\/td>\n<td>Filter by recency: <code>day<\/code>, <code>week<\/code>, <code>month<\/code>, or <code>year<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>include_domains<\/code><\/td>\n<td>Array of domains to restrict results to<\/td>\n<\/tr>\n<tr>\n<td><code>exclude_domains<\/code><\/td>\n<td>Array of domains to exclude from results<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Search depth:<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>Depth<\/th>\n<th>Speed<\/th>\n<th>Relevance<\/th>\n<th>Best for<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>basic<\/code><\/td>\n<td>Faster<\/td>\n<td>High<\/td>\n<td>General-purpose queries (default)<\/td>\n<\/tr>\n<tr>\n<td><code>advanced<\/code><\/td>\n<td>Slower<\/td>\n<td>Highest<\/td>\n<td>Precision, specific facts, research<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><code>tavily_extract<\/code><\/h3>\n<p>Use this to extract clean content from one or more URLs. Handles<br \/>\nJavaScript-rendered pages and supports query-focused chunking for targeted<br \/>\nextraction.<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>urls<\/code><\/td>\n<td>Array of URLs to extract (1-20 per request)<\/td>\n<\/tr>\n<tr>\n<td><code>query<\/code><\/td>\n<td>Rerank extracted chunks by relevance to this query<\/td>\n<\/tr>\n<tr>\n<td><code>extract_depth<\/code><\/td>\n<td><code>basic<\/code> (default, fast) or <code>advanced<\/code> (for JS-heavy pages)<\/td>\n<\/tr>\n<tr>\n<td><code>chunks_per_source<\/code><\/td>\n<td>Chunks per URL, 1-5 (requires <code>query<\/code>)<\/td>\n<\/tr>\n<tr>\n<td><code>include_images<\/code><\/td>\n<td>Include image URLs in results (default: false)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Extract depth:<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>Depth<\/th>\n<th>When to use<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>basic<\/code><\/td>\n<td>Simple pages &#8211; try this first<\/td>\n<\/tr>\n<tr>\n<td><code>advanced<\/code><\/td>\n<td>JS-rendered SPAs, dynamic content, tables<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Tips:<\/p>\n<ul>\n<li>Max 20 URLs per request. Batch larger lists into multiple calls.<\/li>\n<li>Use <code>query<\/code> + <code>chunks_per_source<\/code> to get only relevant content instead of full pages.<\/li>\n<li>Try <code>basic<\/code> first; fall back to <code>advanced<\/code> if content is missing or incomplete.<\/li>\n<\/ul>\n<h2>Choosing the right tool<\/h2>\n<table>\n<thead>\n<tr>\n<th>Need<\/th>\n<th>Tool<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Quick web search, no special options<\/td>\n<td><code>web_search<\/code><\/td>\n<\/tr>\n<tr>\n<td>Search with depth, topic, AI answers<\/td>\n<td><code>tavily_search<\/code><\/td>\n<\/tr>\n<tr>\n<td>Extract content from specific URLs<\/td>\n<td><code>tavily_extract<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>See <a href=\"\/tools\/web\">Web tools<\/a> for the full web tool setup and provider comparison.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tavily OpenClaw can use Tavily in two ways: as the web_ [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-646","post","type-post","status-publish","format-standard","hentry","category-docs"],"_links":{"self":[{"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/posts\/646","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/comments?post=646"}],"version-history":[{"count":2,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/posts\/646\/revisions"}],"predecessor-version":[{"id":741,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/posts\/646\/revisions\/741"}],"wp:attachment":[{"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/media?parent=646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/categories?post=646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/tags?post=646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}