openclaw - 💡(How to fix) Fix Tavily plugin tools (tavily_search, tavily_extract) not accessible in agent runtime [4 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#53764Fetched 2026-04-08 01:23:41
View on GitHub
Comments
4
Participants
1
Timeline
4
Reactions
0
Participants
Timeline (top)
commented ×4

Error Message

The Tavily plugin (@openclaw/tavily-plugin) is loaded and the skill shows as ready, but the tavily_search and tavily_extract tools are not accessible to the agent runtime. When attempting to invoke tavily_search, the agent receives "unknown tool" or similar error.

  • Error handling falls on the agent

Fix Action

Fix / Workaround

Workarounds Considered

Code Example

$ openclaw plugins list | grep tavily
Tavily       │ tavily   │ openclaw │ loaded   │ stock:tavily/index.js2026.3.22
$ openclaw skills list | grep tavily
│ ✓ ready     │ 🔍 tavily             │ Tavily web search, content extraction... │ openclaw-extra     │

---

Use tavily_search to search for coffee pods with query="..." and max_results=3

---

"tools": {
  "web": {
    "search": {
      "provider": "tavily"
    }
  }
}
RAW_BUFFERClick to expand / collapse

Bug Description

The Tavily plugin (@openclaw/tavily-plugin) is loaded and the skill shows as ready, but the tavily_search and tavily_extract tools are not accessible to the agent runtime. When attempting to invoke tavily_search, the agent receives "unknown tool" or similar error.

Environment

  • OpenClaw: 2026.3.23 (also affected 2026.3.22)
  • Gateway: systemd service, loopback only
  • Plugin: stock:tavily/index.js v2026.3.22 (loaded)
  • Skill: tavily shows as ready (source: openclaw-extra)
  • API key: configured in plugins.entries.tavily.config.webSearch.apiKey

Verification

$ openclaw plugins list | grep tavily
│ Tavily       │ tavily   │ openclaw │ loaded   │ stock:tavily/index.js    │ 2026.3.22 │

$ openclaw skills list | grep tavily
│ ✓ ready     │ 🔍 tavily             │ Tavily web search, content extraction... │ openclaw-extra     │

Expected Behavior

Agent should be able to call tavily_search and tavily_extract tools directly, e.g.:

Use tavily_search to search for coffee pods with query="..." and max_results=3

Actual Behavior

Agent reports: "The tavily_search tool doesn't exist as a callable function in my toolkit" and must fall back to direct API calls via exec/curl.

Code Evidence

The tools ARE registered in the plugin code. In dist/pi-embedded-CswW9luA.js:

  • Line 79157: createTavilySearchTool returns { name: "tavily_search", ... }
  • Line 79194-79195: api.registerTool(createTavilySearchTool(api)) and api.registerTool(createTavilyExtractTool(api))

The tools exist in the compiled code but are not accessible at runtime.

Workarounds Considered

1. Direct API calls (current working method)

Agent uses exec to call https://api.tavily.com/search directly with curl/python. This works but:

  • Not user-friendly
  • API key must be extracted from config manually
  • Error handling falls on the agent

2. Set Tavily as web_search provider

Adding to openclaw.json:

"tools": {
  "web": {
    "search": {
      "provider": "tavily"
    }
  }
}

This makes web_search use Tavily automatically, but doesn't expose the tavily_search/tavily_extract tools with their advanced parameters (search_depth, topic, include_domains, include_answer, time_range, etc.).

3. Potential Fixes

Option A - Gateway restart did not resolve, so this may be a deeper tool registration/routing issue.

Option B - The skill system may be disconnected from plugin tool registration. The SKILL.md documents the tools but the skill system may not be wiring them to the runtime.

Option C - There may be a tool allowlist/denylist conflict. Current config has tools.deny: [sessions_spawn, sessions_send] which shouldn't affect tavily, but worth investigating.

Option D - The bundled web search provider list (BUNDLED_WEB_SEARCH_PLUGIN_IDS) includes tavily, but there may be separate registration paths for "web search providers" vs "explicit plugin tools."

Impact

  • Users cannot access Tavily's advanced search features (search_depth, topic filters, AI answers, time ranges)
  • Users cannot use tavily_extract for content extraction from specific URLs
  • Falls back to basic web_search or manual API calls

Suggested Investigation

  1. Trace tool registration flow: plugin registerTool() → tool catalog → runtime exposure
  2. Check if skill "ready" status is based on config only, not actual tool availability
  3. Verify the skill's SKILL.md docs match what the plugin actually exposes

extent analysis

Fix Plan

To resolve the issue of tavily_search and tavily_extract tools not being accessible to the agent runtime, follow these steps:

  1. Verify Tool Registration: Ensure that the tavily_search and tavily_extract tools are correctly registered in the plugin code. Check the dist/pi-embedded-CswW9luA.js file for the createTavilySearchTool and createTavilyExtractTool functions.
  2. Check Skill Configuration: Review the SKILL.md file for the Tavily skill to ensure it matches the tools exposed by the plugin. Update the file if necessary to reflect the correct tool names and parameters.
  3. Update OpenClaw Configuration: Add the following configuration to openclaw.json to enable the Tavily tools:
"tools": {
  "tavily_search": {
    "provider": "tavily"
  },
  "tavily_extract": {
    "provider": "tavily"
  }
}
  1. Restart Gateway Service: Restart the Gateway service to apply the configuration changes.
  2. Verify Tool Availability: Use the openclaw plugins list and openclaw skills list commands to verify that the Tavily tools are now accessible to the agent runtime.

Code Example

To register the Tavily tools in the plugin code, use the following example:

api.registerTool({
  name: 'tavily_search',
  async execute(params) {
    // Implement Tavily search logic here
  }
});

api.registerTool({
  name: 'tavily_extract',
  async execute(params) {
    // Implement Tavily extract logic here
  }
});

Verification

To verify that the fix worked, use the following command:

openclaw plugins list | grep tavily

This should display the Tavily plugin with the tavily_search and tavily_extract tools listed. Additionally, use the openclaw skills list command to verify that the Tavily skill is now showing as ready with the correct tools available.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Tavily plugin tools (tavily_search, tavily_extract) not accessible in agent runtime [4 comments, 1 participants]