Agent Search
A guide to use advanced search capability in Onyx
Introduction
Agent Search is Onyx’s advanced knowledge retrieval system that enables answering complex, multi-faceted questions by intelligently decomposing queries, searching across multiple contexts, and synthesizing comprehensive answers. Unlike traditional search, Agent Search approaches questions like a knowledgeable colleague would, exploring multiple paths of inquiry to provide detailed, contextual responses. For example, if you were asked to compare car A and car B, you would probably look at stats and features for car A, then separately for car B, and then you would compare. This is the idea behind Agent Search - i) decompose and disambiguate, ii) analyze the more narrow well-defined questions, and then iii) synthesize the information gathered to answer the original question with rich, pre-analyzed context.
Key features
- Intelligent Query Decomposition: Breaks down complex questions into focused sub-questions
- Parallel Search Processing: Executes multiple sub-question analysis paths simultaneously
- Answer Validation: Evaluates and refines responses for completeness.
Configuration
Basic Setup
To enable Agent Search in your Onyx deployment:
- Update to the latest version of Onyx
- Configure knowledge source connections
- Set up LLM provider credentials
- Turn on the “Agent” toggle in the chat interface with an AI assistant (with search tool)
Advanced Configuration
Best Practices & Suggestions
-
Overall, don’t be afraid to ask more complex, multi-faceted, or ambiguous questions and see how the system responds:
- Ask comparative questions, like ‘what is the difference between A and B?’. The system should generally decompose this first into separate analyses of A and B, and then compare, which should lead to better results.
- Ask ambiguous questions, like ‘what were the guiding principles for Y?’. The system should be able to disambiguate what ‘guiding principles’ may relate to given your data context
- Ask questions that may be simple but would benefit from a deeper analysis with richer context and detail
-
Click on the Analysis for sub-questions - they may be interesting in their own rights!
-
It is strongly recommended to configure the Fast Model in your LLM setup to actually be a faster and cheaper model. Agent Search executes substantially more queries than Basic Search, many of which can be handled well by a faster/cheaper model.
Common issues and solutions
- Langgraph/Langchain import issues: ensure your server is running python3.11 with libraries installed from the backend/requirements folder
- Rate limit reached: Agent Search runs many queries to your LLM provider in parallel, and we have noticed that this can exceed some rate limits. We are working on tradeoffs for these cases, but for the moment the solution is to use a provider and key with higher rate limits.
- Timeouts: we noticed that sometimes individual queries can take an unusually long time. In order to avoid the whole search being unduly held up, we implemented a number of timeout parameters. Should these timeouts be too aggressive for your configuration and you see frequent timeout notifications, please contact us on slack or discord!
- Again, note that Agent Search produces substantially more input and output tokens than regular search!