Feature Flag: EXA_WEB_TOOLS
Introduced: v4.7.0 (2026-03-12)
Default: false (OFF)
Commit: d605f1c
Description
Replaces Anthropic's built-in WebFetch and WebSearch tools with Exa-powered MCP equivalents:
fetch_document — Two-phase (direct HTTP → Exa /contents fallback). Preview mode (~2-4K chars) + full mode with verbosity control.
exa_web_search — Exa deep search with highlights, date filtering, categories.
Why Feature-Flagged
- New external dependency: All web tool calls route through Exa API when enabled
- Behavioral change: Subagents lose access to
WebFetch/WebSearch and gain fetch_document/exa_web_search
- Requires validation: Need live memo run confirming equal or better research quality before graduating to default-ON
Rollout Plan
Files Affected
src/config/featureFlags.js — flag definition
src/config/legalSubagents/_standardTools.js — conditional tool arrays
src/config/legalSubagents/_promptConstants.js — dynamic tool name interpolation
src/config/legalSubagents.js — legacy path (same conditionals)
src/config/domainMcpServers.js — conditional domain mapping
src/config/legalSubagents/agents/citation-websearch-verifier.js — conditional tool names
src/hooks/sdkHooks.js — counter tracking
src/utils/hookSSEBridge.js — SSE forwarding
test/react-frontend/app.js — counter display
Rollback
# Instant rollback — zero code change required
EXA_WEB_TOOLS=false
Related
- Spec:
docs/pending-updates/websearch-conversion.md
- Exa API docs:
docs/pending-updates/exa-api-documentation-feb-2026.md
- DirectFetchHybridClient:
src/api-clients/DirectFetchHybridClient.js
- Tests:
test/sdk/direct-fetch-hybrid.test.js, test/sdk/exa-web-search.test.js
Feature Flag:
EXA_WEB_TOOLSIntroduced: v4.7.0 (2026-03-12)
Default:
false(OFF)Commit: d605f1c
Description
Replaces Anthropic's built-in
WebFetchandWebSearchtools with Exa-powered MCP equivalents:fetch_document— Two-phase (direct HTTP → Exa/contentsfallback). Preview mode (~2-4K chars) + full mode with verbosity control.exa_web_search— Exa deep search with highlights, date filtering, categories.Why Feature-Flagged
WebFetch/WebSearchand gainfetch_document/exa_web_searchRollout Plan
EXA_WEB_TOOLS=true, verify no 403 failures on SEC/gov sitesgetMetrics()trueinfeatureFlags.js, remove conditional code pathsWebFetch/WebSearchbranches from STANDARD_TOOLS, simplify prompt constantsFiles Affected
src/config/featureFlags.js— flag definitionsrc/config/legalSubagents/_standardTools.js— conditional tool arrayssrc/config/legalSubagents/_promptConstants.js— dynamic tool name interpolationsrc/config/legalSubagents.js— legacy path (same conditionals)src/config/domainMcpServers.js— conditional domain mappingsrc/config/legalSubagents/agents/citation-websearch-verifier.js— conditional tool namessrc/hooks/sdkHooks.js— counter trackingsrc/utils/hookSSEBridge.js— SSE forwardingtest/react-frontend/app.js— counter displayRollback
# Instant rollback — zero code change required EXA_WEB_TOOLS=falseRelated
docs/pending-updates/websearch-conversion.mddocs/pending-updates/exa-api-documentation-feb-2026.mdsrc/api-clients/DirectFetchHybridClient.jstest/sdk/direct-fetch-hybrid.test.js,test/sdk/exa-web-search.test.js