improvement(search): multiple native queries per account with rank fusion and per-provider query guides - #8278
Conversation
…sion and per-provider query guides
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
There was a problem hiding this comment.
All reported issues were addressed across 11 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
|
…tHub booleans, and dedupe-key fusion
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 11 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Summary
search_workspacecall send up to 4 native queries per provider account. Before, a second query for the same account was rejected, which was the most common failed search call. It also pushed the model into sequential single searches for providers that can't join alternatives (e.g. Slack keyword search, Calendar, GitHub code).queryIndex.1/(RRF_K + rank); a document returned by several queries now sums those scores, following LangChain's MultiQueryRetriever and RRF as used by Elasticsearch, OpenSearch and Weaviate.topK, every query that returned it drops its cursor, so paging can't skip it.{ syntax, scope, example, avoid }on the provider registry. The registry'ssatisfies Record<LiveSearchProviderId, …>makes every provider define one.liveSearchGuidancerenders the shared rules plus cards for the providers in play. Connected accounts get them in the per-turn account inventory, so the model sees them before its first search; each search response carries the cards for the accounts it searched. This follows the precedent of per-tool query descriptions (github-mcp-server) and per-connection descriptions (Microsoft 365 Copilot connectors).a OR b.a OR b→ 0 while each term matches).repo:qualifier.queryIndex) and points to the live guidance for syntax.Type of Change
Testing
accountId, and a kind on a provider that ignores it)queryIndexand get no cardsChecklist