Skip to content

feat(web): add Tavily as web search/extract/crawl backend - #1731

Merged
teknium1 merged 2 commits into
mainfrom
hermes/hermes-3fc35e7b
Mar 17, 2026
Merged

feat(web): add Tavily as web search/extract/crawl backend#1731
teknium1 merged 2 commits into
mainfrom
hermes/hermes-3fc35e7b

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

Salvage of PR #1707 by @kshitijk4poor (cherry-picked onto current main with authorship preserved).

Adds Tavily as a third web backend alongside Firecrawl and Parallel, using the Tavily REST API via httpx (no SDK dependency).

What changed

  • Backend selection via hermes tools — Tavily appears as a provider option, saves web.backend: tavily to config.yaml
  • All three tools supported — search (/search), extract (/extract), and crawl (/crawl)
  • TAVILY_API_KEY added to config registry, doctor, status, setup wizard
  • Fully backward compatible — existing Firecrawl/Parallel users unaffected

Files changed

File Change
tools/web_tools.py Tavily API helpers, normalizers, backend dispatch for all 3 tools
hermes_cli/config.py TAVILY_API_KEY in OPTIONAL_ENV_VARS, doctor, set_config_value
hermes_cli/tools_config.py Tavily provider entry with web_backend: tavily
hermes_cli/setup.py Status check includes TAVILY_API_KEY
hermes_cli/status.py Tavily in status display
tests/tools/test_web_tools_tavily.py 15 new tests (API, normalizers, tool dispatch)
tests/tools/test_web_tools_config.py 9 new backend selection + availability tests
tests/hermes_cli/test_config.py 5 new config registry tests

Test plan

  • pytest tests/tools/test_web_tools_tavily.py — 15/15 pass
  • pytest tests/tools/test_web_tools_config.py — 32/32 pass
  • pytest tests/tools/test_website_policy.py — 22/22 pass
  • Full suite — 5159 passed, 5 failed (all pre-existing anthropic adapter tests)

Closes #1707

kshitijk4poor and others added 2 commits March 17, 2026 04:21
Adds Tavily (tavily.com) as a third web backend alongside Firecrawl
and Parallel using the Tavily REST API via httpx.

- Backend selection via hermes tools → saved as web.backend in config.yaml
- Tavily support for all three tools: search, extract, and crawl
- TAVILY_API_KEY in config registry, doctor, status, setup wizard
- _tavily_request() helper with error handling
- Normalizer functions for search results and documents
- 15 new Tavily-specific tests + 9 backend selection tests
- Backward compatible — existing Firecrawl/Parallel users unaffected

Co-authored-by: kshitijk4poor <kshitijk4poor@users.noreply.github.com>
Same fix as the Parallel PR — _reconfigure_provider() was missing the
web_backend config save, so switching backends via Reconfigure didn't
persist web.backend to config.yaml.
@teknium1
teknium1 merged commit d2b1054 into main Mar 17, 2026
1 check passed
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 27, 2026
…ch#1731)

Salvage of PR NousResearch#1707 by @kshitijk4poor (cherry-picked with authorship preserved).

Adds Tavily as a third web backend alongside Firecrawl and Parallel, using the Tavily REST API via httpx.

- Backend selection via hermes tools → saved as web.backend in config.yaml
- All three tools supported: search, extract, crawl
- TAVILY_API_KEY in config registry, doctor, status, setup wizard
- 15 new Tavily tests + 9 backend selection tests + 5 config tests
- Backward compatible

Closes NousResearch#1707
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…ch#1731)

Salvage of PR NousResearch#1707 by @kshitijk4poor (cherry-picked with authorship preserved).

Adds Tavily as a third web backend alongside Firecrawl and Parallel, using the Tavily REST API via httpx.

- Backend selection via hermes tools → saved as web.backend in config.yaml
- All three tools supported: search, extract, crawl
- TAVILY_API_KEY in config registry, doctor, status, setup wizard
- 15 new Tavily tests + 9 backend selection tests + 5 config tests
- Backward compatible

Closes NousResearch#1707
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…ch#1731)

Salvage of PR NousResearch#1707 by @kshitijk4poor (cherry-picked with authorship preserved).

Adds Tavily as a third web backend alongside Firecrawl and Parallel, using the Tavily REST API via httpx.

- Backend selection via hermes tools → saved as web.backend in config.yaml
- All three tools supported: search, extract, crawl
- TAVILY_API_KEY in config registry, doctor, status, setup wizard
- 15 new Tavily tests + 9 backend selection tests + 5 config tests
- Backward compatible

Closes NousResearch#1707
waefrebeorn pushed a commit to waefrebeorn/slermes that referenced this pull request Jul 2, 2026
…ch#1731)

Salvage of PR NousResearch#1707 by @kshitijk4poor (cherry-picked with authorship preserved).

Adds Tavily as a third web backend alongside Firecrawl and Parallel, using the Tavily REST API via httpx.

- Backend selection via hermes tools → saved as web.backend in config.yaml
- All three tools supported: search, extract, crawl
- TAVILY_API_KEY in config registry, doctor, status, setup wizard
- 15 new Tavily tests + 9 backend selection tests + 5 config tests
- Backward compatible

Closes NousResearch#1707
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants