🚀 🤖 MCP多智能体深度研究系统
这是一个强大的多智能体研究系统,基于模型上下文协议(MCP)构建。它使用CrewAI进行智能体编排,LinkUp进行深度网络搜索,并借助phi3模型(通过Ollama)进行本地人工智能处理。该系统既提供API访问,又有美观的Web界面,方便用户开展研究工作。
🚀 快速开始
只需3个简单步骤即可开始使用:
git clone https://github.com/anubhav-77-dev/MCP-Multi-Agent-Deep-Researcher.git
cd MCP-Multi-Agent-Deep-Researcher
python3 setup.py
python3 launcher.py
就是这么简单!系统将自动在浏览器中打开 http://localhost:3000/frontend.html
✨ 主要特性
- 🧠 多智能体系统:三个专业的人工智能智能体协同工作
- 网络搜索器:使用LinkUp API进行深度网络搜索
- 研究分析师:进行信息综合与验证
- 技术撰写员:创建清晰、结构化的内容
- 🌐 美观的Web界面:现代、响应式的前端,便于交互
- 🔌 API访问:基于FastAPI的RESTful API,并提供自动文档
- 🏠 本地人工智能处理:使用Ollama和phi3模型,无需外部人工智能API
- 📡 MCP协议:完全符合模型上下文协议,便于集成
- 🚀 一键启动:通过单个命令启动所有组件
📦 安装指南
选项1:自动设置(推荐)
git clone https://github.com/anubhav-77-dev/MCP-Multi-Agent-Deep-Researcher.git
cd MCP-Multi-Agent-Deep-Researcher
python3 setup.py
python3 launcher.py
选项2:手动设置
点击展开手动设置说明
1. 安装依赖项
curl -sSL https://install.python-poetry.org | python3 -
poetry install
2. 安装并配置Ollama
brew install ollama
ollama serve
ollama pull phi3:latest
ollama list
3. 配置环境
cp .env.example .env
nano .env
所需的环境变量:
LINKUP_API_KEY=your_linkup_api_key_here
OLLAMA_BASE_URL=http://localhost:11434
MODEL_NAME=phi3:latest
4. 启动服务
python3 launcher.py
poetry run python Multi-Agent-deep-researcher-mcp-windows-linux/http_server.py
python3 -m http.server 3000
poetry run python Multi-Agent-deep-researcher-mcp-windows-linux/server.py
🔑 获取你的LinkUp API密钥
- 访问 LinkUp.so
- 注册一个免费账户
- 从仪表盘获取你的API密钥
- 将其添加到你的
.env 文件中
💻 使用示例
Web界面(最简单)
- 启动应用程序:
python3 launcher.py
- 打开浏览器 访问
http://localhost:3000/frontend.html(自动打开)
- 输入你的研究查询 或尝试示例查询
- 选择你的模式:
- 🔍 快速搜索:使用LinkUp API进行快速网络搜索
- 🧠 全面研究:完整的多智能体分析工作流程
- 查看结果,结果以格式化输出,支持复制/下载选项
API访问
快速搜索
curl -X POST http://localhost:8080/search \
-H "Content-Type: application/json" \
-d '{"query": "latest AI trends 2024"}'
全面研究
curl -X POST http://localhost:8080/research \
-H "Content-Type: application/json" \
-d '{"query": "comprehensive analysis of quantum computing applications"}'
健康检查
curl http://localhost:8080/health
MCP客户端集成
要与兼容MCP的客户端集成,请添加以下配置:
{
"mcpServers": {
"crew_research": {
"command": "poetry",
"args": ["run", "python", "Multi-Agent-deep-researcher-mcp-windows-linux/server.py"],
"env": {
"LINKUP_API_KEY": "your_linkup_api_key_here"
}
}
}
}
可用端点
| 端点 |
方法 |
描述 |
/health |
GET |
健康检查 |
/search |
POST |
快速网络搜索 |
/research |
POST |
全面的多智能体研究 |
/docs |
GET |
交互式API文档 |
📚 详细文档
项目结构
MCP-Multi-Agent-Deep-Researcher/
├── 🚀 launcher.py # 一键启动器
├── 🌐 frontend.html # Web界面
├── ⚙️ setup.py # 自动设置脚本
├── 📋 start.sh # Shell启动脚本
├── 📖 QUICKSTART.md # 快速开始指南
├── 🔧 Makefile # 开发命令
├── 📦 pyproject.toml # Poetry依赖项
├── 🔐 .env.example # 环境模板
├── ⚙️ mcp.config.json # MCP客户端配置
└── Multi-Agent-deep-researcher-mcp-windows-linux/
├── 🖥️ server.py # MCP协议服务器
├── 🌐 http_server.py # FastAPI REST服务器
├── 🧪 test_research.py # 测试工具
└── agents/ # 多智能体系统
├── 🤖 research_crew.py # CrewAI编排
└── tools/ # 智能体工具
├── 🔍 linkup_search.py # 网络搜索集成
└── 🧠 ollama_tool.py # 本地人工智能集成
示例查询
快速搜索示例
- "What are the latest AI trends in 2024?"
- "Current developments in renewable energy"
- "Recent breakthroughs in quantum computing"
全面研究示例
- "Comprehensive analysis of the environmental impact of cryptocurrency mining"
- "How does quantum computing work and what are its real-world applications?"
- "The future of autonomous vehicles: technology, challenges, and timeline"
- "Impact of artificial intelligence on healthcare: opportunities and risks"
智能体工作流程
该系统使用CrewAI编排三个专业智能体:
1. 网络搜索器智能体
- 角色:网络研究专家
- 目标:使用LinkUp API查找全面且相关的信息
- 工具:LinkUp搜索工具
- 输出:详细的网络搜索结果摘要及来源
2. 研究分析师智能体
- 角色:研究分析师
- 目标:分析和综合信息,提供全面的见解
- 输入:网络搜索结果
- 输出:结构化分析,包含关键见解和经过验证的信息
3. 技术撰写员智能体
- 角色:技术撰写员
- 目标:创建清晰、全面且结构良好的书面内容
- 输入:研究分析
- 输出:全面、格式良好的Markdown文档
配置
环境变量
LINKUP_API_KEY:用于网络搜索功能的LinkUp API密钥
OLLAMA_BASE_URL:Ollama API的基本URL(默认:http://localhost:11434)
MODEL_NAME:要使用的Ollama模型(默认:phi3)
自定义智能体
你可以通过修改 agents/research_crew.py 来自定义智能体:
- 调整智能体的角色、目标和背景故事
- 修改任务描述和预期输出
- 为特定智能体添加或移除工具
- 更改流程(顺序、层次结构等)
🔧 技术细节
架构
该系统实现了一个三智能体工作流程:
- 网络搜索器:使用LinkUp API从多个来源查找相关信息
- 研究分析师:综合和验证信息,注重深度和清晰度
- 技术撰写员:生成清晰、全面的Markdown答案
graph TD
A[Web Interface] --> B[FastAPI Backend]
B --> C[MCP Server]
C --> D[CrewAI Orchestrator]
D --> E[Web Searcher Agent]
D --> F[Research Analyst Agent]
D --> G[Technical Writer Agent]
E --> H[LinkUp API]
F --> I[Ollama + phi3]
G --> I
H --> J[Web Search Results]
I --> K[AI Analysis & Writing]
J --> F
K --> L[Final Research Output]
性能与扩展
- 快速搜索:约2 - 5秒(取决于LinkUp API)
- 全面研究:约30 - 60秒(取决于查询复杂度)
- 并发用户:支持多个同时请求
- 内存使用:约500MB - 1GB(取决于Ollama模型)
- 磁盘空间:约3GB(包括phi3模型)
安全与隐私
- ✅ 本地人工智能处理:不将数据发送到外部人工智能服务
- ✅ API密钥安全:LinkUp API密钥仅本地存储
- ✅ 无数据持久化:默认情况下不存储研究查询
- ✅ CORS保护:可配置来源限制
- ⚠️ 网络搜索:查询会发送到LinkUp API(请参阅其隐私政策)
🐛 故障排除
常见问题及解决方案
🚫 "Address already in use" 错误
```bash
# 终止现有进程
pkill -f "python.*http_server"
pkill -f "http.server"
或者使用不同端口重启
python3 launcher.py
</details>
<details>
<summary><strong>🔗 Ollama连接失败</strong></summary>
```bash
# 检查Ollama是否正在运行
ollama serve
# 验证模型是否可用
ollama list
# 如果缺少模型,拉取模型
ollama pull phi3:latest
# 检查Ollama是否可访问
curl http://localhost:11434/api/tags
🔑 LinkUp API错误
1. 验证 `.env` 文件中的API密钥
2. 检查LinkUp仪表盘的使用限制
3. 测试API密钥:
```bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "test"}' \
https://api.linkup.so/v1/search
```
🧩 依赖项问题
```bash
# 重新安装依赖项
poetry install --no-cache
或者使用pip作为备用方案
pip install -r requirements.txt
检查Python版本
python3 --version # 应为3.10+
</details>
<details>
<summary><strong>🌐 CORS/前端问题</strong></summary>
- 确保两个服务器都在运行
- 检查浏览器控制台中的错误信息
- 尝试直接访问后端:`http://localhost:8080/health`
- 清除浏览器缓存并重新加载
</details>
### 获取帮助
1. **检查日志**:启动器会显示两个服务器的详细日志
2. **运行诊断**:`python3 setup.py` 验证设置
3. **测试组件**:`python3 simple_test.py` 进行单个测试
4. **启用调试模式**:在服务器文件中设置 `logging.basicConfig(level=logging.DEBUG)`
## 🛠️ 开发
### 快速命令
```bash
# 启动所有组件
make start # 或 make launch, make demo
# 开发设置
make dev-setup # 安装依赖项 + 设置 + 验证
# 运行测试
make test # 基本功能测试
make quick-test # 快速搜索测试
# 维护
make clean # 清理缓存文件
make verify # 验证安装
添加自定义智能体
1. 在 agents/research_crew.py 中创建新智能体
custom_agent = Agent(
role='Custom Specialist',
goal='Your specific goal',
backstory='Agent background',
tools=[your_tools]
)
2. 将其添加到团队工作流程中
custom_task = Task(
description="Task description",
agent=custom_agent,
expected_output="Expected result format"
)
添加新工具
1. 在 agents/tools/ 中创建工具文件
class CustomTool(BaseTool):
name = "Custom Tool"
description = "Tool description"
def _run(self, query: str) -> str:
return result
2. 在 research_crew.py 中向智能体注册该工具
环境配置
| 变量 |
描述 |
默认值 |
LINKUP_API_KEY |
LinkUp搜索API密钥 |
必需 |
OLLAMA_BASE_URL |
Ollama服务器URL |
http://localhost:11434 |
MODEL_NAME |
Ollama模型名称 |
phi3:latest |
OPENAI_API_KEY |
本地使用时设置为 ollama |
ollama |
OPENAI_API_BASE |
Ollama兼容OpenAI的端点 |
http://localhost:11434/v1 |
🤝 贡献
我们欢迎贡献!以下是开始贡献的步骤:
开发设置
git clone https://github.com/anubhav-77-dev/MCP-Multi-Agent-Deep-Researcher.git
cd MCP-Multi-Agent-Deep-Researcher
poetry install --with dev
pre-commit install
贡献指南
- 🍴 分叉仓库
- 🌿 创建功能分支:
git checkout -b feature/amazing-feature
- ✨ 进行更改,代码要清晰并添加注释
- 🧪 为新功能添加测试
- ✅ 运行测试:
make test
- 📝 根据需要更新文档
- 🚀 提交拉取请求
贡献领域
- 🔧 新的智能体工具和集成
- 🎨 前端UI/UX改进
- 📚 文档和示例
- 🧪 测试覆盖率扩展
- 🐛 错误修复和性能改进
- 🌍 国际化
📄 许可证
本项目采用 MIT许可证 - 详情请参阅 LICENSE 文件。
🙏 致谢
本项目基于以下出色的开源技术构建:
⭐ 星标历史
