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密鑰安全加載、全局配置等準備工作,確保教程可復現。