基于 Spring AI + MCP + DeepSeek-R1-7B 構建企業級智能 Agent 工具調用系統
作者:編程疏影
本文將手把手帶你通過 Spring AI + MCP(Model Context Protocol)+ DeepSeek-R1-7B 打造一個可落地的企業級智能 Agent。
在大模型 Agent 發展浪潮下,如何通過模型驅動外部工具調用(Tool Calling)已成為構建智能業務系統的關鍵能力。本文將手把手帶你通過 Spring AI + MCP(Model Context Protocol)+ DeepSeek-R1-7B 打造一個可落地的企業級智能 Agent。
項目背景與架構設計
技術選型
- Spring AISpring 官方推出的 AI 接入框架,支持 LangChain、MCP、RAG 等能力;
- MCP(Model Context Protocol)模型與工具之間通信的協議橋梁;
- DeepSeek-R1-7B國產高性能開源大模型,已支持 Chat Completion、Tool Calling 接口;
- Ragflow用作 RAG 架構引擎(可選);
系統功能
- 用戶向模型提問
- 模型判斷是否調用工具(如數據庫查詢)
- MCP 注冊的工具服務完成任務
- 模型生成最終響應
環境準備
安裝依賴
# Spring Boot 項目依賴
spring-boot-starter
spring-ai-spring-boot-starter
# MCP 依賴
spring-ai-mcp-starter
本地部署 DeepSeek-R1-7B 模型
推薦使用 vLLM 啟動 DeepSeek-R1-7B 模型服務:
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/deepseek-llm-7b-chat \
--tokenizer deepseek-ai/deepseek-llm-7b-chat \
--port 8000
構建 Spring AI MCP 工具服務
示例業務:產品信息查詢
@Service
public class ProductService {
@Tool(name = "query-product", description = "根據產品ID獲取產品信息")
public String getProductById(@ToolParam(description = "產品ID") String id) {
// 模擬數據庫查詢
return "產品ID:" + id + ",價格:99 元";
}
}
注冊 MCP 工具
@Configuration
public class MCPToolConfig {
@Bean
public ToolCallbackProvider toolCallbackProvider(ProductService productService) {
return MethodToolCallbackProvider.builder()
.toolObjects(productService)
.build();
}
@Bean
public AiServices aiServices(OpenAiChatClient client, ToolCallbackProvider provider) {
return new AiServices(client, provider);
}
}
模型端配置(Ragflow 示例)
在 ragflow.config.yaml 中配置模型地址及 MCP 工具啟用:
llm:
type: openai
openai_api_base: http://localhost:8000/v1
openai_api_key: sk-no-need
model_name: deepseek-chat
tool_choice: auto
agent:
name: deepseek-agent
mcp:
enabled:true
tool_autoload:true
servers:
-id: product-mcp
command: java
args:["-jar","spring-mcp.jar"]
description:"產品信息查詢服務"
前端調用(可選)
<form id="askForm">
<input type="text" name="query" placeholder="請輸入問題"/>
<button type="submit">提交</button>
</form>
<script>
document.getElementById('askForm').onsubmit=asyncfunction(e){
e.preventDefault();
const query = e.target.query.value;
const resp =awaitfetch('/agent/ask',{
method:'POST',
headers:{'Content-Type':'application/json'},
body:JSON.stringify({ query })
});
const result =await resp.text();
alert(result);
}
</script>
測試效果
用戶輸入:
查詢產品ID為 123 的信息
輸出結果:
產品ID:123,價格:99 元
模型會自動觸發 query-product 工具,無需用戶指定,展示 Agent 工具能力。
總結與實踐建議
模塊 | 技術 | 說明 |
模型推理 | DeepSeek-R1-7B | Tool Calling 支持良好 |
工具服務 | Spring AI MCP | 快速構建工具 API |
調度管理 | Ragflow | 可選,增強上下文能力 |
推薦實踐:
- 將 MCP 工具封裝為微服務,提高可復用性
- 使用數據庫、搜索引擎作為 Agent 工具數據源
- 在企業應用中使用 Spring Boot + MCP 拓展模型業務邊界
責任編輯:武曉燕
來源:
路條編程