🚀 🤖 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 文件。
🙏 致謝
本項目基於以下出色的開源技術構建:
⭐ 星標歷史
