Skip to content

feat: add Tavily setup support - #1113

Closed
kshitijk4poor wants to merge 1 commit into
NousResearch:mainfrom
kshitijk4poor:feat/1069-tavily-setup
Closed

feat: add Tavily setup support#1113
kshitijk4poor wants to merge 1 commit into
NousResearch:mainfrom
kshitijk4poor:feat/1069-tavily-setup

Conversation

@kshitijk4poor

Copy link
Copy Markdown
Collaborator

Adds Tavily to the setup/configuration flow so users can configure TAVILY_API_KEY alongside other optional web research integrations.

What changed:

  • register TAVILY_API_KEY in optional env var metadata and migration tracking
  • show Tavily in hermes config / hermes status
  • surface Tavily in setup summaries and hermes tools web provider selection
  • add focused CLI tests for config/status coverage

Validation:

  • python -m pytest tests/hermes_cli/test_config.py tests/hermes_cli/test_status.py tests/hermes_cli/test_set_config_value.py -q
  • python -m pytest tests/hermes_cli/test_setup.py -q
  • python -m pytest tests/ -q (currently has 2 unrelated pre-existing failures on main: tests/test_cli_provider_resolution.py::test_codex_provider_uses_config_model and tests/test_real_interrupt_subagent.py::TestRealSubagentInterrupt::test_interrupt_child_during_api_call)

Closes #1069

@kshitijk4poor kshitijk4poor mentioned this pull request Mar 12, 2026
1 task
teknium1 pushed a commit that referenced this pull request Mar 17, 2026
Register TAVILY_API_KEY across the configuration and setup flow:
- OPTIONAL_ENV_VARS metadata (config.py)
- ENV_VARS_BY_VERSION migration at version 10
- hermes config / hermes status display
- hermes tools web provider selection
- Setup summary
- Config version bump 9 → 10

Cherry-picked from PR #1113 by kshitijk4poor. Fixed migration version
(7 → 10) and resolved merge conflicts with current main.

Closes #1069
@teknium1

Copy link
Copy Markdown
Contributor

Closing — Tavily only provides search, not full page extraction. It doesn't replace or complement the existing web toolset (Firecrawl does both search + extract). Adding config registration without a working tool integration is premature. If someone wants to build a full Tavily backend that covers both search and extract, that would be a different conversation.

@teknium1 teknium1 closed this Mar 17, 2026
@teknium1

Copy link
Copy Markdown
Contributor

Thanks for putting this together @kshitijk4poor — the config registration work itself was clean and well-tested. The reason we're not going forward with it is that Tavily covers search but not page extraction, so it doesn't slot in as a web provider the way Firecrawl does (which handles both). We'd need a full tool backend, not just config wiring, for it to be useful.

If you're interested in building a complete Tavily-backed search+extract backend (or a standalone Tavily research skill), we'd be happy to look at that.

@kshitijk4poor

Copy link
Copy Markdown
Collaborator Author

Addressed the review concern by turning this into a full Tavily-backed web backend instead of config-only wiring.

What changed:

  • Added Tavily support to web_search, web_extract, and web_crawl in tools/web_tools.py
  • Kept Firecrawl as the preferred backend when configured, with Tavily as the fallback when Firecrawl is absent
  • Updated setup/config UX so Tavily is exposed as a real Web Search & Extract provider
  • Split the work into two atomic commits:
    • 8b565b4f feat(config): expose Tavily as web provider
    • 3be38d7d feat(web): add Tavily backend support

Verification run:

  • python -m pytest -o addopts='' tests/hermes_cli/test_config.py tests/hermes_cli/test_status.py -q
  • python -m pytest -o addopts='' tests/tools/test_website_policy.py tests/tools/test_web_tools_config.py tests/tools/test_web_tools_tavily.py -q

@kshitijk4poor

Copy link
Copy Markdown
Collaborator Author

Replacement PR is up on top of current main: #1707

Link: #1707

This version keeps the work split into two atomic commits:

  • 8b565b4f feat(config): expose Tavily as web provider
  • 3be38d7d feat(web): add Tavily backend support

It also addresses the earlier concern by implementing Tavily-backed web_search, web_extract, and web_crawl rather than only adding setup/config wiring.

angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 28, 2026
Register TAVILY_API_KEY across the configuration and setup flow:
- OPTIONAL_ENV_VARS metadata (config.py)
- ENV_VARS_BY_VERSION migration at version 10
- hermes config / hermes status display
- hermes tools web provider selection
- Setup summary
- Config version bump 9 → 10

Cherry-picked from PR NousResearch#1113 by kshitijk4poor. Fixed migration version
(7 → 10) and resolved merge conflicts with current main.

Closes NousResearch#1069
nepenth pushed a commit to nepenth/hermes-agent that referenced this pull request Aug 7, 2026
Register TAVILY_API_KEY across the configuration and setup flow:
- OPTIONAL_ENV_VARS metadata (config.py)
- ENV_VARS_BY_VERSION migration at version 10
- hermes config / hermes status display
- hermes tools web provider selection
- Setup summary
- Config version bump 9 → 10

Cherry-picked from PR NousResearch#1113 by kshitijk4poor. Fixed migration version
(7 → 10) and resolved merge conflicts with current main.

Closes NousResearch#1069
jh1nresh pushed a commit to jh1nresh/hermes-agent that referenced this pull request Aug 26, 2026
Register TAVILY_API_KEY across the configuration and setup flow:
- OPTIONAL_ENV_VARS metadata (config.py)
- ENV_VARS_BY_VERSION migration at version 10
- hermes config / hermes status display
- hermes tools web provider selection
- Setup summary
- Config version bump 9 → 10

Cherry-picked from PR NousResearch#1113 by kshitijk4poor. Fixed migration version
(7 → 10) and resolved merge conflicts with current main.

Closes NousResearch#1069
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.

[Feature]: Tavily Skill

2 participants