MindSearch Deep Search
A multi-agent web-search framework for organizing deep, concurrent search on complex questions.
- Source repo
- InternLM/MindSearch
- Stars
- ★ 6.9k
- Last updated
- 1y ago
- License
- Apache-2.0
- Primary language
- JavaScript
- FA score
- 42/100 · Major gaps
At a glance
- How it runs
- Works with
- Portable with changesOpenAI API (Partial support)
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A team that needs to self-host a multi-agent web-search service for English or Chinese queries.
- Not a fit if
- Users wanting zero-config setup without .env and search API keys
- Users unwilling to install Node.js and npm for the React frontend
- Source review
- 42/100 · Major gaps 3 safety controls not found
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.
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.
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 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.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| MindSearch Deep Search This agent | 42 · Major gaps | Self-hosted serviceFree + model costs | ★ 6.9k | 1y ago | JavaScript | — |
| Agentic Company Researcher | Insufficient evidence | Self-hosted serviceFree + model costs | ★ 2.3k | 10d ago | Python | OpenAI API |
| Vibe-Research: Personal AI Investment Research Dashboard | 59 · Major gaps | Self-hosted serviceFree + model costs | ★ 3.5k | 8d ago | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
| ShoppingAgent Order Analyst | 37 · Major gaps | Web appFree + model costs | ★ 3.6k | 1y ago | Python | — |
How does FollowAgents rate this agent?
Why each dimension lost points
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.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- 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.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
An open-source AI Search Engine Framework with Perplexity.ai Pro performance Technical Report: https://arxiv.org/abs/2407.20183 Search engines provide extensive and the latest web information but often fail to tailor search results to align with complex human intentions. Inspired by the remarkable progress of Large Language Models (LLMs), recent works enhance search engines with LLMs. However, these methods still obtain unsatisfying performance due to three critical problems: …View on GitHub ↗
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.