Repository navigation
Surface Exa as the provider during tool calls when OpenHuman Managed search is active #5136
Copy link
Copy link
Closed
Copy link
Labels
Description
Summary
Exa powers ~95% of search traffic through the OpenHuman Managed search path, but there is no provider attribution surfaced to the user during or after a tool call. When the agent performs a web search, the user sees a generic search action — not "searched via Exa". This should be made visible.
Current behaviour
- User selects OpenHuman Managed as their search engine (default)
- Agent executes a web search tool call
- Tool call output shows search results with no indication of which provider was used
- Connections → Search engine panel shows "Routed through the OpenHuman backend: no API key required" — no mention of Exa
Expected behaviour
When Exa is the active provider for a managed search call:
- Tool call label / agentic insight shows: "Web search via Exa" (or similar)
- Optionally: a small provider badge in the tool call result card
- Connections → Search engine → OpenHuman Managed description updated to mention Exa explicitly
Why this matters
- Transparency for users who want to understand what data sources their agent is using
- Exa's partnership with TinyHumans means attribution is expected
- Helps users understand search quality differences between providers
- Makes it clear the managed path is not a generic/unknown black box
Implementation
The attribution only needs to surface when the managed path resolves to Exa. If the managed backend ever routes to a different provider, the label should reflect that.
Suggested label text: "Searched with Exa" in the tool call insight row — same pattern as how other tool calls label their source.
Acceptance criteria
- Tool call insight / agentic task row shows "Exa" as the search provider when OpenHuman Managed routes to Exa
- Connections → Search engine → OpenHuman Managed description mentions Exa as the current underlying provider
- Attribution is consistent across Chat and any other surface that shows tool call results
- If managed search routes to a different provider in future, attribution updates accordingly (not hardcoded)
Related
- Connections → Search engine (v0.61.8 screenshot: "Routed through the OpenHuman backend: no API key required")
- Backend managed search routing (Exa as default)
- Exa BYOK issue (companion issue — adding Exa as a user-configurable option)
Implementation Plan
Triage Assessment
- Relevant: Exa powers ~95% of managed search but is invisible to users. Transparency and partnership-attribution gap.
- User impact: Low functional impact but meaningful UX trust issue.
Proposed Scope
- In-scope: Tool call insight label showing the provider name, Connections description update, consistent attribution across Chat and other tool-call surfaces.
- Non-goal: Any change to search backend routing or Exa BYOK configuration (tracked separately in Add Exa as a BYOK search provider option alongside Parallel, Brave, and Querit #5137).
Implementation Steps
- Locate the tool call insight rendering in the frontend (
app/src/search for tool call result cards). Identify where the label/insight row text is constructed. - Add a provider label field to the tool call result data model (Rust side:
src/openhuman/where search results are structured). If the search was routed through the managed backend, propagate the resolved provider name from the backend response. - Surface the provider name in the frontend tool call card. Label pattern:
"Searched with Exa"when Exa is the provider. - Update the Connections → Search engine managed description to mention Exa by name.
- Make the label dynamic (not hardcoded) so future provider switches reflect automatically.
Verification
- OpenHuman Managed search: confirm tool call shows
"Searched with Exa". - Switch to BYOK Parallel/Brave/Querit: confirm label updates to that provider.
- Frontend tests pass (
pnpm test).
Risks and Open Questions
- Whether the backend response already includes the resolved provider name or needs a new field. If the backend does not surface it, this is a backend-side change first.
Acceptance Criteria
- Tool call insight shows
"Searched with Exa"when managed search routes to Exa - Connections → Search engine → OpenHuman Managed description names Exa
- Attribution is not hardcoded; reflects the actual provider used
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity