🧠 無需代理的LLM網路搜尋引擎
一個無需代理的多搜尋引擎 LLM 網路檢索工具,支援 URL 內容解析與網頁爬取,結合 LangGraph與LangGraph-MCP 實現模組化智能代理鏈路。專為大型語言模型外部知識調用場景而設計,支援 Playwright + Crawl4AI 網頁獲取與解析,支援非同步並發、內容切片與重排過濾。
🚀 更新日誌
- 🔥 2025-09-05:支援langgraph-mcp
- 🔥 2025-09-03:新增 Docker 部署、內建智能重排器、支援自訂文字分割器與重排器
✨ 特性一覽
- 🌐 無需代理:透過 Playwright 配置國內瀏覽器支援,無需代理也能進行網路搜尋。
- 🔍 多搜尋引擎支援:支援 Bing、夸克、百度、搜狗等主流搜尋引擎,增強資訊來源多樣性。
- 🤖 意圖識別:系統能夠根據使用者的輸入內容,自動判斷是進行網路搜尋還是解析 URL。
- 🔄 查詢分解:根據使用者的搜尋意圖,自動將查詢分解為多個子任務,並依序執行,從而提升搜尋的相關性與效率。
- ⚙️ 智能體架構:基於 LangGraph 封裝的「web_search」與「link_parser」。
- 🏃♂️ 非同步並發任務處理:支援非同步並發任務處理,可高效處理多個搜尋任務。
- 📝 內容處理優化:
- ✂️ 內容切片:將網頁長內容按段切分。
- 🔄 內容重排:智能重新排序,提高資訊相關性。
- 🚫 內容過濾:自動剔除無關或重複內容。
- 🌐 多端支援:
- 🐳 支援 Docker 部署:一鍵啟動,快速建構後端服務。
- 🖥️ 提供 FastAPI 後端介面,可整合到任意系統中。
- 🌍 提供 Gradio Web UI,可快速部署成可視化應用。
- 🧩 瀏覽器插件支援:支援 Edge,提供智能 URL 解析插件,直接在瀏覽器中發起網頁解析與內容提取請求。


⚡ 快速開始
克隆倉庫
git clone https://github.com/itshyao/proxyless-llm-websearch.git
cd proxyless-llm-websearch安裝依賴
pip install -r requirements.txt
python -m playwright install環境變數配置
# 百炼llm
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
OPENAI_API_KEY=sk-xxx
MODEL_NAME=qwen-plus-latest百炼embedding
EMBEDDING_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
EMBEDDING_API_KEY=sk-xxx
EMBEDDING_MODEL_NAME=text-embedding-v4百炼reranker
RERANK_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
RERANK_API_KEY=sk-xxx
RERANK_MODEL=gte-rerank-v2Langgraph-Agent
#### 演示
python agent/demo.py#### API 服務
python agent/api_serve.pyimport requestsurl = "http://localhost:8800/search"
data = {
"question": "广州今日天气",
"engine": "bing",
"split": {
"chunk_size": 512,
"chunk_overlap": 128
},
"rerank": {
"top_k": 5
}
}
try:
response = requests.post(
url,
json=data
)
if response.status_code == 200:
print("✅ 请求成功!")
print("响应内容:", response.json())
else:
print(f"❌ 请求失败,状态码:{response.status_code}")
print("错误信息:", response.text)
except requests.exceptions.RequestException as e:
print(f"⚠️ 请求异常:{str(e)}")
#### Gradio
python agent/gradio_demo.py

#### docker
docker-compose -f docker-compose-ag.yml up -d --buildLanggrph-MCP
#### 啟動MCP服務
python mcp/websearch.py#### 示範
python mcp/demo.py#### API 服務
python mcp/api_serve.pyimport requestsurl = "http://localhost:8800/search"
data = {
"question": "广州今日天气"
}
try:
response = requests.post(
url,
json=data
)
if response.status_code == 200:
print("✅ 请求成功!")
print("响应内容:", response.json())
else:
print(f"❌ 请求失败,状态码:{response.status_code}")
print("错误信息:", response.text)
except requests.exceptions.RequestException as e:
print(f"⚠️ 请求异常:{str(e)}")
#### docker
docker-compose -f docker-compose-mcp.yml up -d --build自訂模組
#### 自訂分塊
from typing import Optional, Listclass YourSplitter:
def __init__(self, text: str, chunk_size: int = 512, chunk_overlap: int = 128):
self.text = text
self.chunk_size = chunk_size
self.chunk_overlap = chunk_overlap
def split_text(self, text: Optional[str] = None) -> List:
# TODO: implement splitting logic
return ["your chunk"]
#### 自訂重排
from typing import List, Union, Tupleclass YourReranker:
async def get_reranked_documents(
self,
query: Union[str, List[str]],
documents: List[str],
) -> Union[
Tuple[List[str]],
Tuple[List[int]],
]:
return ["your chunk"], ["chunk index"]
🔍 與線上網路檢索測試對比
我們將本項目與一些主流的線上 API 進行對比,評估其在複雜問題下的表現。
🔥 數據集
- 數據集來自阿里發布的 WebWalkerQA,包含 680 個高難度問題,涵蓋教育、學術會議、遊戲等多個領域。
- 數據集包括中英文問題。
🧑🏫 對比結果
| 搜尋引擎/系統 | ✅ 正確 | ❌ 錯誤 | ⚠️ 部分正確 | | -------------- | ----------| ------------| ---------------------| | 火山方舟 | 5.00% | 72.21% | 22.79% | | 百煉 | 9.85% | 62.79% | 27.35% | | Our | 19.85% | 47.94% | 32.06% |
🙏 致謝
本項目部分功能得益於以下開源項目的支持與啟發,特此致謝:
- 🧠 LangGraph:用於構建模組化智能體鏈路框架,協助快速搭建複雜的智能體系統。
- 🕷 Crawl4AI:強大的網頁內容解析工具,助力高效網頁抓取與數據提取。
- 🌐 Playwright:現代瀏覽器自動化工具,支援跨瀏覽器的網頁抓取和測試自動化。
- 🔌 Langchain MCP Adapters:用於多鏈處理MCP的構建。