Skip to content

feat(browsecomp): add Brave search provider - #3503

Open
konarkmodi wants to merge 1 commit into
NVIDIA-NeMo:mainfrom
konarkmodi:feat/add-brave-search-provider
Open

konarkmodi wants to merge 1 commit into
NVIDIA-NeMo:mainfrom
konarkmodi:feat/add-brave-search-provider

Conversation

@konarkmodi

Copy link
Copy Markdown

What does this PR do?

This PR adds Brave Search as an opt-in BrowseComp search provider using Brave's public
LLM Context API.

Brave Search makes the LLM Context request and persists the returned URL context
in a per-session cache under /tmp. The existing Browse tool signature is
retained for agent compatibility; Brave Browse serves matching URLs from that
cache and does not make a second provider request. There is no separate private
Brave extraction API call.

Tavily and Exa remain unchanged and continue to provide the existing defaults.

Transparency note: I contributed to this work as a part-time consultant for Brave through Tesseracted Labs GmbH.

Validation

Ran against the final diff:

python3 -m py_compile \
  resources_servers/browsecomp_advanced_harness/app.py \
  resources_servers/browsecomp_advanced_harness/tests/test_brave_provider.py

git diff --check upstream/main..HEAD

PRE_COMMIT_HOME=/tmp/gym-brave-pre-commit \
pre-commit run --files \
  benchmarks/browsecomp/provider_brave.yaml \
  resources_servers/browsecomp_advanced_harness/app.py \
  resources_servers/browsecomp_advanced_harness/tests/test_brave_provider.py \
  benchmarks/browsecomp/README.md \
  resources_servers/browsecomp_advanced_harness/README.md

The targeted pre-commit checks passed. The pytest suite was not run locally
because pytest is not installed in the environment.

Rollouts

Evaluated BrowseComp with:

  • Policy model: gpt-4.1-2025-04-14
  • Serving model: nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-NVFP4
  • Dataset: BrowseComp, 1,266 tasks
  • Provider: Brave public LLM Context API
Run Correct Accuracy
Run 1 649 / 1,266 51.3%
Run 2 642 / 1,266 50.7%

Compatibility and benchmark impact

  • Tavily remains the default provider.
  • Exa behavior is unchanged.
  • Brave is enabled only when the Brave provider configuration is composed.
  • Browse remains compatible with the existing agent tool signature.
  • The reported rollouts use the Brave provider and are included as
    representative benchmark evidence.

Checklist

  • I have read the contributing guidelines.
  • The change is focused; unrelated "drive-by" edits are tracked as separate issues/PRs.
  • Tests added or updated and pass locally, or N/A for docs-only / non-code changes (so CI unit/server checks pass when applicable).
  • Documentation added or updated, or N/A with justification.
  • Pre-commit checks pass locally (pre-commit run --all-files) (so CI lint/format checks pass).
  • New source files include the required Apache-2.0 SPDX header.
  • All commits have DCO sign-off (git commit -s) (so the DCO check passes).

@copy-pr-bot

copy-pr-bot Bot commented Sep 17, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@nemo-automation-bot nemo-automation-bot Bot added the community-request Issue reported or requested by someone from the community label Sep 17, 2026
@yaoyu-33 yaoyu-33 added area:environment Individual environments, benchmarks, verifiers, and environment-specific resources servers complexity:medium Single-domain change with interacting parts or a moderate review surface feature New capabilities, enhancements, or enablement work needs-review PR is ready for code review and waiting on a reviewer labels Sep 17, 2026
@github-actions github-actions Bot added the sla:triage-overdue Review assignment is over the one-business-day SLA label Sep 18, 2026
@svcnvidia-nemo-ci svcnvidia-nemo-ci added the waiting-on-maintainers Waiting on maintainers to respond label Sep 20, 2026
@yaoyu-33 yaoyu-33 removed the needs-review PR is ready for code review and waiting on a reviewer label Sep 20, 2026
@marcromeyn

Copy link
Copy Markdown
Contributor

Thanks for the contribution, and sorry it sat without a response for so long. Two things: (1) the branch is 682 commits behind main; could you merge main so we can authorize CI? (2) #4709 proposes making BrowseComp's search provider pluggable instead of adding each provider to app.py. @ritugala (BrowseComp owner) is weighing whether to land Brave as-is or as the first provider on that interface; we'll follow up here once that's decided. Your Brave tests and config would carry over either way.

@svcnvidia-nemo-ci svcnvidia-nemo-ci added waiting-on-customer Waiting on the original author to respond and removed waiting-on-maintainers Waiting on maintainers to respond labels Oct 28, 2026
@abhibha-nvidia

Copy link
Copy Markdown
Contributor

@konarkmodi Can you also run Browsecomp with Brave as the search provider on the superV3.5 GA and the GLM 5.3 as well?

@svcnvidia-nemo-ci svcnvidia-nemo-ci added waiting-on-customer Waiting on the original author to respond and removed waiting-on-customer Waiting on the original author to respond labels Oct 29, 2026
@konarkmodi

Copy link
Copy Markdown
Author

Thanks for the contribution, and sorry it sat without a response for so long. Two things: (1) the branch is 682 commits behind main; could you merge main so we can authorize CI? (2) #4709 proposes making BrowseComp's search provider pluggable instead of adding each provider to app.py. @ritugala (BrowseComp owner) is weighing whether to land Brave as-is or as the first provider on that interface; we'll follow up here once that's decided. Your Brave tests and config would carry over either way.

Thank you @marcromeyn, updated the branch from main. Looking forward to the decision on provider interface, happy to adapt accordingly.

@konarkmodi
konarkmodi force-pushed the feat/add-brave-search-provider branch from 8ac9034 to c7661d8 Compare October 29, 2026 09:15
Signed-off-by: Konark Modi <konarkmodi@tesseracted.com>
@konarkmodi
konarkmodi force-pushed the feat/add-brave-search-provider branch from c7661d8 to 9ba25de Compare October 29, 2026 09:16
@svcnvidia-nemo-ci svcnvidia-nemo-ci added waiting-on-customer Waiting on the original author to respond waiting-on-maintainers Waiting on maintainers to respond and removed waiting-on-customer Waiting on the original author to respond waiting-on-maintainers Waiting on maintainers to respond labels Oct 29, 2026
@svcnvidia-nemo-ci svcnvidia-nemo-ci added the waiting-on-maintainers Waiting on maintainers to respond label Oct 31, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:environment Individual environments, benchmarks, verifiers, and environment-specific resources servers community-request Issue reported or requested by someone from the community complexity:medium Single-domain change with interacting parts or a moderate review surface feature New capabilities, enhancements, or enablement work sla:triage-overdue Review assignment is over the one-business-day SLA waiting-on-maintainers Waiting on maintainers to respond

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants