在現今的 AI 應用中,許多開發者與使用者發現,部分輔助工具在處理特定任務時,可能出現效能下降或無法滿足需求的情況。例如,有使用者反映 Cursor 在處理簡單程式碼時偶爾會出錯。因此,尋找更穩定、更強大的替代方案成為當務之急。本文將介紹如何利用創新的開發工具 WinSurf,為先進的檢索增強生成(RAG)系統 LightRAG 打造專屬的 MCP 伺服器(MCP Server),進而將外部知識庫無縫整合至 Claude 桌面版及 AutoGen 智能體框架中。
為何選擇 LightRAG 作為知識庫核心?
LightRAG 並非傳統的 RAG 框架。它是一個基於圖結構的先進檢索增強生成系統,具備以下突出優勢:
- 知識圖譜整合:透過建構知識圖譜,優化文本索引與檢索過程。
- 向量與結構融合:結合向量相似性與結構化關係,提升資訊的連貫性與深度。
- 增量更新:支援知識庫的增量更新,有效降低重複計算的成本。
- 複雜情境優勢:在處理複雜資訊檢索與跨文件推理方面,表現顯著優於傳統 RAG。
平時我們使用 Claude 桌面版或 AutoGen 等智能體框架時,常需要分析特定技術文件或在指定文檔範圍內進行精準檢索。若每次都手動上傳或複製貼上大量文檔,不僅效率低落,也相當不便。將 LightRAG 打造成一個可供外部應用呼叫的服務,特別是透過標準化的 MCP 伺服器接口,便能完美解決這個痛點,讓 AI 工具輕鬆存取我們自訂的知識庫。
WinSurf:自動化 MCP 伺服器開發的利器
傳統上,為一個系統(如 LightRAG)開發伺服器接口(例如 MCP 伺服器)需要編寫不少程式碼。然而,藉助 WinSurf 這款強大的 AI 開發輔助工具,整個過程可以被高度自動化。我們只需提供清晰的指令和相關上下文,WinSurf 就能為我們生成、甚至調試所需的伺服器代碼。
實戰教學:從零開始建構 LightRAG MCP 伺服器
接下來,我們將詳細演示如何使用 WinSurf,將 LightRAG 封裝成一個功能完整的 MCP 伺服器。
#### 第一步:安裝 LightRAG 並建構本地知識庫
在開始之前,請確保您已從 WinSurf 官網下載並安裝好 WinSurf。
-
設定環境與安裝 LightRAG:
- 首先,在 WinSurf 或您的本機終端機中設定好專案路徑。
動作 建議指令 (以 Linux/macOS 為例) 說明 建立並進入專案目錄 mkdir my_LightRAG_project && cd my_LightRAG_project
建立一個新的資料夾來存放專案檔案 建立虛擬環境 python3 -m venv venv
建立獨立的 Python 執行環境 啟用虛擬環境 source venv/bin/activate
啟用此獨立環境 下載 LightRAG 原始碼 git clone <LightRAG_Repo_URL>
從 Git 倉庫複製 LightRAG 程式碼 進入 LightRAG 目錄 cd LightRAG
切換到 LightRAG 的程式碼目錄 安裝 LightRAG pip install -e .
安裝 LightRAG 及其所有必要的依賴套件 返回專案根目錄 cd ..
回到專案的上一層目錄 -
準備 LightRAG 設定腳本:
- 建立一個 Python 檔案(例如
setup_LightRAG.py
)。 - 貼入以下範例程式碼(請根據您的需求調整):
import os from LightRAG import LiTrack, VectorStoreConfig # 假設導入方式如此,請依實際 LightRAG 版本調整 # 設定工作目錄 work_dir = "./my_LightRAG_storage" # 指定 LightRAG 存放索引等數據的目錄 os.makedirs(work_dir, exist_ok=True) # 初始化 LightRAG (使用 GPT-4o mini) # 注意:若使用 OpenAI 模型,需設定環境變數 OPENAI_API_KEY # export OPENAI_API_KEY='YOUR_API_KEY' (Linux/macOS) # set OPENAI_API_KEY=YOUR_API_KEY (Windows) litrack = LiTrack( work_dir=work_dir, vector_store_config=VectorStoreConfig(), # 使用預設向量儲存設定 llm_config={"model": "gpt-4o-mini"} # 指定使用 GPT-4o mini # 若使用 Ollama,可參考以下設定 (需先運行 Ollama 並下載模型) # llm_config={"model": "ollama/phi3:mini", "api_base": "http://localhost:11434/v1"}, # embedding_config={"model": "ollama/bge-m3", "api_base": "http://localhost:11434/v1"} ) # 載入文件建構知識庫 # 將您的文件 (例如 llama3_report.pdf) 放到專案目錄下 document_path = "./llama3_report.pdf" # 替換成您的文件路徑 litrack.add_documents([document_path]) print("知識庫建構完成。") # 測試檢索 (可選) - LightRAG 支援多種檢索模式 query = "請說明 Llama 3 的數據質量控制流程" # response_naive = litrack.search(query, mode="naive") # response_local = litrack.search(query, mode="local") # response_global = litrack.search(query, mode="global") response_hybrid = litrack.search(query, mode="hybrid") # 混合模式通常效果較佳 print("混合模式檢索結果:") print(response_hybrid)
- 建立一個 Python 檔案(例如
-
放置知識庫文件:將您想要建立知識庫的文件(例如,關於 Llama 3 的技術報告 PDF)放置到專案的根目錄下。
-
執行腳本:若使用 OpenAI 模型,請先設定您的 API Key。然後在已啟用虛擬環境的終端機中執行
python setup_LightRAG.py
。這會初始化 LightRAG 並將您的文件處理成可供檢索的知識庫。
#### 第二步:利用 WinSurf 自動生成 MCP 伺服器
-
準備提示詞文件 (Markdown):
- 在 WinSurf 中,建立一個 Markdown 文件(例如
task_create_mcp.md
)。 - 將詳細的指令寫入此文件。這份文件是引導 WinSurf 為我們工作的關鍵。內容應包含:
- 任務描述:明確告知 WinSurf 要為 LightRAG 建構一個 MCP 伺服器,該伺服器需能接收任意查詢文本,並使用 LightRAG 的不同檢索模式(Naive, Local, Global, Hybrid)進行搜索。
- 專案路徑:提供您剛才建立的 LightRAG 專案的完整絕對路徑(可使用
pwd
命令查看)。 - 環境設定:指示 WinSurf 需要先進入專案路徑,並啟用之前建立的 Python 虛擬環境 (
venv
)。同時提醒需要設定 OpenAI API Key(如果適用)。 - 參考程式碼:貼上您剛才編寫並成功運行的
setup_LightRAG.py
的內容。 - 預期互動/輸出:可以貼上一段執行
setup_LightRAG.py
後終端機顯示的完整日誌和輸出範例,幫助 WinSurf 理解初始化和檢索過程。 - MCP 伺服器規範:引用或提供 MCP 伺服器 的相關技術文件或規範鏈接,讓 WinSurf 知道要生成符合標準的接口。
- 在 WinSurf 中,建立一個 Markdown 文件(例如
-
執行 WinSurf 命令:
- 在 WinSurf 的輸入框中,輸入指令:
execute @task_create_mcp.md
(將task_create_mcp.md
替換成您建立的 Markdown 文件名)。 - 點擊發送。WinSurf 會開始分析您的提示詞文件,理解需求,並自動編寫 MCP 伺服器 的 Python 程式碼。
- 過程中,WinSurf 可能會要求執行某些命令(如安裝依賴、運行腳本),請仔細確認並允許。如果遇到錯誤,WinSurf 通常會嘗試自動修復。
- 這個過程可能需要幾分鐘,WinSurf 會不斷迭代、修正程式碼,直到成功建立並運行 MCP 伺服器。
- 在 WinSurf 的輸入框中,輸入指令:
#### 第三步:整合 MCP 伺服器至 Claude 桌面版
- 編輯 Claude 設定檔:
- 打開 Claude 桌面版的設定 (Settings) → 開發者 (Developer) → 編輯設定檔 (Edit Configuration File)。
- 找到與 MCP 伺服器 相關的設定區塊。
- 將 WinSurf 生成的 MCP 伺服器的相關資訊(通常是伺服器運行的地址和端口,以及可能需要的認證資訊)填入設定檔中。確保設定檔中指向的專案路徑是正確的。如果您使用 OpenAI,也需在此處配置 API Key。
- 重新啟動 Claude:儲存設定檔並重新啟動 Claude 桌面版。
- 測試:在 Claude 桌面版中,您應該能看到新增的 LightRAG MCP 伺服器選項。嘗試發送一個查詢(例如:“使用 LightRAG 的 NaiveSearch 模式搜索數據質量控制流程,並用中文回答”),Claude 會呼叫您本地運行的 MCP 伺服器,從您的 LightRAG 知識庫中檢索資訊並回答。
#### 第四步:整合 MCP 伺服器至 AutoGen 智能體框架
-
安裝依賴:確保您的 Python 環境中已安裝 AutoGen 以及與 MCP 伺服器 溝通所需的庫。可能需要執行類似
pip install pyautogen autogen-mcp-client
(具體套件名稱可能不同)的命令。 -
編寫 AutoGen 腳本:
- 建立一個新的 Python 腳本。
- 在腳本中導入 AutoGen 和 MCP 伺服器 客戶端相關的庫。
- 設定環境變數(如 OpenAI API Key)。
- 配置 AutoGen Agent,使其知道如何與您的 LightRAG MCP 伺服器 溝通(通常是透過指定伺服器地址和使用的工具/函數名稱)。
- 定義任務,例如要求 Agent 使用指定的 LightRAG 檢索工具(透過 MCP 伺服器)來查詢您的知識庫。
- 以下為概念性範例程式碼:
import autogen from autogen.agentchat.contrib.mcp import MCPClient, register_mcp_tools # 假設有此類庫 # 設定 API Key config_list = autogen.config_list_from_json( "OAI_CONFIG_LIST", filter_dict={"model": ["gpt-4o-mini"]}, ) openai_api_key = config_list[0].get("api_key") # 或直接設定 os.environ["OPENAI_API_KEY"] # 設定 MCP 伺服器地址 mcp_server_address = "http://localhost:8000" # WinSurf 告知的伺服器地址 # 初始化 MCP 客戶端並註冊工具 mcp_client = MCPClient(base_url=mcp_server_address) available_tools = mcp_client.list_tools() # 獲取伺服器提供的工具列表 # 假設工具名類似 'LightRAG_naive_search', 'LightRAG_hybrid_search' # 創建 AutoGen Agent llm_config = {"config_list": config_list, "cache_seed": 42} user_proxy = autogen.UserProxyAgent( name="UserProxy", system_message="使用者代理。", code_execution_config={"work_dir": "coding"}, human_input_mode="TERMINATE" ) assistant = autogen.AssistantAgent( name="Assistant", llm_config=llm_config, system_message="你可以調用 LightRAG MCP 工具來查詢知識庫。" ) # 將 MCP 工具註冊給 Assistant Agent register_mcp_tools(assistant, mcp_client, tool_names=['LightRAG_hybrid_search']) # 註冊你想用的工具 # 定義任務 task = "使用 LightRAG 的 Hybrid Search 工具搜索 Llama 3 的數據質量控制流程,並用中文總結。" # 開始對話 user_proxy.initiate_chat( assistant, message=task )
-
執行腳本:運行此 Python 腳本。AutoGen Agent 將會透過 MCP 伺服器 與您的 LightRAG 知識庫 互動,完成指定的查詢任務。
結論:賦予 AI 工具無限知識潛能
透過 WinSurf 自動化建構 LightRAG 的 MCP 伺服器,我們成功地將本地或特定的知識庫無縫接入了像 Claude 桌面版和 AutoGen 這樣的強大 AI 工具中。這意味著:
- 無需編碼即可擴展:即使不編寫一行伺服器代碼,也能為 AI 工具添加外部知識庫能力。
- 提升 AI 應用深度:讓 AI 能夠基於特定領域的專業知識進行回答和推理。
- 標準化接口:建立的 MCP 伺服器 可被任何支援該標準的客戶端(不僅限於 Claude 或 AutoGen)調用。
- 效率提升:避免了重複上傳文檔或在不同工具間切換的麻煩。
WinSurf 的出現極大地簡化了這類整合工作的複雜性,讓開發者和進階使用者能更專注於應用本身,而非底層的接口開發。這項技術為個人化和企業級 AI 應用開啟了更廣闊的可能性,讓 AI 真正成為我們強大的知識助手。
免責聲明:本文所述的具體指令、程式碼和庫名稱可能隨 WinSurf、LightRAG、Claude、AutoGen 等工具的版本更新而變化,請以官方文件為準。