MindSearch Deep Search
A multi-agent web-search framework for organizing deep, concurrent search on complex questions.
Per-dimension scores and reasoning
Evidence shows: project requires API keys (e.g., WEB_SEARCH_API_KEY) but does not explicitly state least privilege; no user confirmation mechanism; data flow transparency limited, only mentions search API calls; sensitive data handling not detailed; dependencies pinned but no security audit; external effects include search API calls and possible network requests; no rollback mechanism; source attribution only via README references and license. Deductions: lack of user confirmation, insufficient data flow transparency, dependency security not assessed, no rollback.
Evidence shows: README and code structure consistent, but no test results; dependencies pinned but availability not verified; failure messages not detailed. Deductions: dependency availability not verified, failure messages unclear.
Evidence shows: targets developers and researchers, multiple deployment scenarios; capability boundaries via supported search APIs and model formats; trigger precision not explicit; environment fit includes multiple frontend and backend options. Deductions: trigger precision not explicit.
Evidence shows: clear information architecture, README and directories; detailed install notes; naming stable but no version history; examples and FAQ present; known limitations not explicit; license Apache-2.0; changelog only one entry; maintenance responsibility not explicit. Deductions: naming stability insufficient, known limitations not stated, changelog incomplete, maintenance responsibility unclear.
Evidence shows: output usability via frontend and example scripts; high marginal value, multi-agent search; cost-benefit not detailed. Deductions: cost-benefit not assessed.
Evidence shows: some claims traceable (e.g., paper citation); cross-source corroboration limited; fact and inference not clearly separated. Deductions: cross-source corroboration insufficient, fact and inference not separated.
- Handle API keys carefully, ensure environment variables are secure.
- Dependencies are pinned but no security audit provided; check for known vulnerabilities.
- Search API calls may have external effects; consider privacy and compliance.
What does this agent do, and when should you use it?
MindSearch is an LLM-based multi-agent web-search framework positioned for experiences like Perplexity.ai Pro and SearchGPT. It runs as a FastAPI service and can launch asynchronous agents with `--asy`. The backend can use an InternLM local server or GPT4-format model and supports DuckDuckGo, Bing, Brave, Google Serper, and Tencent Search. The project offers React, Gradio, and Streamlit frontends; the updated UI is intended to show simultaneous multi-query search. `backend_example.py` can send queries to a running backend and process its responses directly.
After copying .env.example to .env and filling in model and search settings, run python -m mindsearch.app --lang en --model_format internlm_server --search_engine DuckDuckGoSearch --asy to start the FastAPI service. The service selects English or Chinese model settings through --lang, chooses internlm_server or gpt4 format through --model_format, and chooses its web provider through --search_engine. Search providers other than DuckDuckGo generally require WEB_SEARCH_API_KEY; Tencent Search requires TENCENT_SEARCH_SECRET_ID and TENCENT_SEARCH_SECRET_KEY. Queries can be submitted through the React, Gradio, or Streamlit frontends, or by running backend_example.py against the backend and processing the returned response. To change the web-search API, edit searcher_cfg in mindsearch/agent/__init__.py and set its searcher_type.
- A team that needs to self-host a multi-agent web-search service for English or Chinese queries.
- A developer running an InternLM2.5-7b-chat local server who wants to connect it to a web-search workflow.
- An application developer with Brave, Bing, Google Serper, or Tencent Search credentials who needs to switch search providers.
- A frontend team that wants a React interface showing several searches happening at the same time.
- An engineer integrating a running FastAPI backend into a custom client using
backend_example.py.
What are this agent's strengths and limitations?
- One service explicitly supports five web-search providers and can switch providers through
searcher_type. - It includes an asynchronous-agent deployment option, and its changelog explicitly reports improved concurrency performance.
- It provides a FastAPI backend plus React, Gradio, and Streamlit interfaces for different integration paths.
- It documents
internlm_serverandgpt4model formats, while allowing other models through changes tomodels.py.
- Deployment requires
.envconfiguration, and most search providers depend on external API credentials. - Models outside the documented formats require edits to
mindsearch/agent/models.py, rather than configuration alone. - The React frontend adds Node.js, npm, and manual Vite proxy configuration to the deployment requirements.
- The supplied documentation does not specify FastAPI HTTP routes, request bodies, or response schemas.
How do you install or deploy this agent?
git clone https://github.com/InternLM/MindSearch
cd MindSearch
pip install -r requirements.txt
mv .env.example .envEdit .env with the required model and search configuration. For a search service other than DuckDuckGo, set WEB_SEARCH_API_KEY; for Tencent Search, set TENCENT_SEARCH_SECRET_ID and TENCENT_SEARCH_SECRET_KEY. The React frontend additionally requires Node.js and npm; run npm install in frontend/React.
How do you use this agent?
Start the backend:
python -m mindsearch.app --lang en --model_format internlm_server --search_engine DuckDuckGoSearch --asyYou can change --lang to cn, use gpt4 as the model format, or select BingSearch, BraveSearch, GoogleSearch, or TencentSearch. Once the backend is running, execute python backend_example.py to send a query. Optional frontends are python frontend/mindsearch_gradio.py, streamlit run frontend/mindsearch_streamlit.py, or npm start in frontend/React after configuring the Vite proxy. For local debugging, run python -m mindsearch.terminal.
How does this agent compare with similar options?
The README positions MindSearch as an LLM multi-agent web-search framework like Perplexity.ai Pro and SearchGPT; the supplied material does not provide feature or performance comparisons with either.
FAQ
Do I need paid credentials to run search?
WEB_SEARCH_API_KEY; Tencent Search uses a separate secret ID and secret key.Can I use my own model?
internlm_server and gpt4. For other models, the instructions say to modify mindsearch/agent/models.py.Is a web frontend required?
backend_example.py to submit a query and process the response directly.How do I enable asynchronous agents?
--asy when starting mindsearch.app. The option is documented as deploying asynchronous agents.