MindSearch 深度搜索器
通过多代理并发网页检索,为复杂问题组织深度搜索。
按维度查看评分与理由
证据显示:项目要求用户提供API密钥(如WEB_SEARCH_API_KEY),但未明确说明权限最小化原则;没有用户确认机制;数据流透明度有限,仅提及搜索API调用;敏感数据处理未详细说明;依赖项固定版本但未提供安全审计;外部影响包括搜索API调用和可能的网络请求;没有回滚机制;来源归属仅通过README中的引用和许可证体现。扣分原因:缺乏用户确认、数据流透明度不足、依赖安全未评估、无回滚机制。
证据显示:README和代码结构一致,但未提供测试结果;依赖项固定版本但未验证可用性;失败消息未详细说明。扣分原因:依赖可用性未验证,失败消息不明确。
证据显示:面向开发者和研究者,提供多种部署场景;能力边界通过支持的搜索API和模型格式说明;触发精度未明确;环境适配包括多种前端和后端选项。扣分原因:触发精度不明确。
证据显示:信息架构清晰,有README和目录;安装说明详细;命名稳定但未提供版本历史;有示例和FAQ;已知限制未明确;许可证为Apache-2.0;版本变更日志仅有一条;维护责任未明确。扣分原因:命名稳定性不足,已知限制未说明,版本变更日志不完整,维护责任不明确。
证据显示:输出可用性通过前端和示例脚本体现;边际价值高,提供多智能体搜索;成本效益未详细说明。扣分原因:成本效益未评估。
证据显示:README中的声明部分可追溯(如论文引用);跨来源验证有限;事实与推断未明确分离。扣分原因:跨来源验证不足,事实与推断未分离。
- API密钥处理需谨慎,确保环境变量安全。
- 依赖项版本固定但未提供安全审计,建议检查已知漏洞。
- 搜索API调用可能产生外部影响,需注意隐私和合规。
这个 Agent 能做什么,适合哪些场景?
MindSearch 是一个基于 LLM 的多代理网页搜索框架,目标是构建类似 Perplexity.ai Pro 和 SearchGPT 的搜索体验。它以 FastAPI 服务形式运行,并可用 `--asy` 启动异步代理。后端可配置 InternLM 本地服务或 GPT4 格式模型,并支持 DuckDuckGo、Bing、Brave、Google Serper 与腾讯搜索。项目提供 React、Gradio 和 Streamlit 三种前端选择,其中更新后的 UI 用于呈现同时进行的多查询搜索。也可通过 `backend_example.py` 直接调用运行中的后端并处理响应。
先复制 .env.example 为 .env,并填写模型及搜索服务配置;随后运行 python -m mindsearch.app --lang en --model_format internlm_server --search_engine DuckDuckGoSearch --asy 启动 FastAPI 服务。服务根据 --lang 选择英文或中文模型设置,根据 --model_format 使用 internlm_server 或 gpt4 格式,并按 --search_engine 选择网页检索提供方。除 DuckDuckGo 外,搜索服务通常需要 WEB_SEARCH_API_KEY;腾讯搜索需要 TENCENT_SEARCH_SECRET_ID 与 TENCENT_SEARCH_SECRET_KEY。用户可通过 React、Gradio、Streamlit 前端提交查询,或运行 backend_example.py 向后端发送查询并处理返回响应。若要更换搜索 API,可修改 mindsearch/agent/__init__.py 中 searcher_cfg 的 searcher_type。
- 需要在自托管环境中为英文或中文查询部署多代理网页搜索服务的团队。
- 已运行 InternLM2.5-7b-chat 本地服务,且希望把它接入网页检索流程的开发者。
- 拥有 Brave、Bing、Google Serper 或腾讯搜索凭据,并需要切换检索提供方的应用开发者。
- 想用 React 界面展示多条查询同时搜索过程的前端团队。
- 希望用
backend_example.py将现有 FastAPI 后端接入自有客户端的工程师。
这个 Agent 有哪些优点和局限?
- 同一服务明确支持五种网页搜索提供方,并允许通过
searcher_type切换。 - 提供异步代理部署选项,更新记录明确提到并发性能改进。
- 同时提供 FastAPI 后端、React、Gradio 和 Streamlit 界面,便于按接入方式选择。
- 支持
internlm_server与gpt4两种已记录的模型格式,并可通过修改models.py接入其他模型。
- 部署前必须配置
.env;多数搜索提供方还依赖外部 API 凭据。 - 除已列出的模型格式外,其他模型需要修改
mindsearch/agent/models.py,不是纯配置式接入。 - React 前端需要额外安装 Node.js 和 npm,并手动设置 Vite 代理目标。
- 现有说明没有给出 FastAPI 的具体 HTTP 路由、请求体或响应模式。
如何安装或部署这个 Agent?
git clone https://github.com/InternLM/MindSearch
cd MindSearch
pip install -r requirements.txt
mv .env.example .env编辑 .env 填入所需模型与搜索配置。使用除 DuckDuckGo 以外的搜索服务时,设置 WEB_SEARCH_API_KEY;腾讯搜索则设置 TENCENT_SEARCH_SECRET_ID 和 TENCENT_SEARCH_SECRET_KEY。React 前端还需要安装 Node.js 和 npm,并在 frontend/React 中运行 npm install。
如何使用这个 Agent?
启动后端:
python -m mindsearch.app --lang en --model_format internlm_server --search_engine DuckDuckGoSearch --asy可将 --lang 改为 cn,将模型格式改为 gpt4;也可选择 BingSearch、BraveSearch、GoogleSearch 或 TencentSearch。后端启动后,运行 python backend_example.py 发送查询。可选前端包括 python frontend/mindsearch_gradio.py、streamlit run frontend/mindsearch_streamlit.py,或在配置 Vite 代理后于 frontend/React 运行 npm start。本地调试可运行 python -m mindsearch.terminal。
这个 Agent 与同类方案有什么区别?
README 将其定位为类似 Perplexity.ai Pro 和 SearchGPT 的 LLM 多代理网页搜索框架;仓库材料未提供与两者的功能或性能对比。
常见问题
运行搜索服务需要付费凭据吗?
WEB_SEARCH_API_KEY;腾讯搜索需要单独的 secret ID 与 secret key。可以使用自己的模型吗?
internlm_server 和 gpt4。使用其他模型时,说明要求修改 mindsearch/agent/models.py。是否一定要使用网页前端?
backend_example.py 直接发送查询并处理响应。怎样使用异步代理?
mindsearch.app 时附加 --asy。该选项被说明为部署异步代理。