AI News HubLIVE
站內改寫2 分鐘閱讀

如何構建MCP風格的路由AI代理系統:動態工具暴露、規劃、執行與上下文注入

本教程從零構建了一個完整的MCP風格路由代理系統,整合了工具發現、智慧路由、結構化規劃和執行。系統包含模組化工具伺服器(提供網頁搜尋、本地檢索、資料集載入和Python執行),混合路由器結合啟發式和LLM推理動態選擇工具,以及一個能夠規劃工具使用、安全呼叫併合成最終答案的代理。最終演示了多個真實任務,展示了上下文注入、路由策略和受限工具訪問如何共同構建可擴充套件、可解釋且高效的代理系統。

來源MarkTechPost作者: Sana Hassan

本教程將帶領讀者從零構建一個功能完整的MCP(Model Context Protocol)風格路由代理系統,該系統融合了工具發現、智慧路由、結構化規劃與執行,形成一個統一的工作流。整個系統基於Python實現,利用OpenAI的API提供LLM推理能力,並整合了DuckDuckGo搜尋、scikit-learn資料集、TF-IDF本地檢索以及沙盒化Python執行等工具。

首先,我們搭建一個模組化工具伺服器。該伺服器透過結構化的schema暴露多種能力,包括網頁搜尋、本地知識檢索、內建資料集載入以及安全的Python程式碼執行。每個工具都透過Pydantic模型定義,包含名稱、描述、輸入schema和標籤,以便後續路由。工具伺服器負責註冊和呼叫這些工具,並返回標準化的結果。

接下來,我們實現一個混合路由器。路由器結合啟發式規則(如任務關鍵詞匹配)和大語言模型的推理能力,動態決定針對當前任務應該暴露哪些工具。這種方式確保代理只看到最相關的工具,從而提升安全性、減少干擾並降低工具選擇熵。路由器輸出一個RouteDecision物件,包含選中的工具名稱列表和決策理由。

然後,我們設計代理的核心邏輯,分為三個階段:規劃階段,代理分析任務並決定是否需要使用工具以及呼叫的順序;執行階段,代理依次呼叫工具,並捕獲輸出結果;綜合階段,代理將工具輸出、檢索到的文件以及策略提示注入到提示詞中,最終合成回答。上下文注入是MCP的重要原則,它使模型在生成回覆時能夠充分利用工具返回的資訊。我們使用專門的PlanOutput結構來規劃工具呼叫序列,每個ToolCall包含工具名和引數。

為了支援本地知識檢索,我們構建了一個基於TF-IDF的向量檢索器,預先索引了關於MCP、動態能力暴露、上下文注入、路由策略等概念的文件。代理可以透過vector_retrieve工具獲取相關文件片段,增強回答的事實準確性。我們還實現了安全的Python執行沙箱,限制內建函式並捕獲標準輸出和錯誤,確保程式碼執行不會影響系統穩定性。資料集載入工具允許代理快速檢查sklearn內建資料集(如iris、wine、breast_cancer、diabetes)的schema、預覽和統計資訊。

最後,我們透過多個真實任務演示了系統的能力:例如回答關於MCP的問題(使用本地檢索)、搜尋最新AI新聞(網頁搜尋)、進行資料分析(Python執行+資料集載入)。整個系統展示了MCP原則——上下文注入、路由策略、受限工具訪問——如何結合以構建一個可擴充套件、可解釋且高效的代理系統。程式碼實現中還包括環境檢查、API金鑰安全載入、全域性配置等準備工作,確保教程可復現。