5.6 KiB
5.6 KiB
v1.0.2 发布总结
📦 版本信息
- 版本号: v1.0.2
- 发布日期: 2025-10-14
- Git Tag: ✅ 已创建并推送
- 提交哈希:
50e3bb1
🎯 核心功能:MCP 工具调用集成
实现概述
本版本实现了完整的 AI + MCP 工具调用集成,当用户在对话中选择 MCP 服务器后,AI 可以:
- 自动识别何时需要调用工具
- 调用 MCP 服务器提供的工具
- 将工具执行结果整合到回复中
- 支持多轮对话(AI → Tool → AI)
技术实现
1. 工具列表获取
- 文件:
/web/src/services/MCPClientService.ts - 方法:
getTools(serverId: string): Tool[] - 功能: 从已连接的 MCP 服务器获取可用工具列表
2. 工具格式转换
- 文件:
/web/src/services/chatService.ts - 方法:
convertToolsToOpenAIFormat(mcpTools: any[]): any[] - 功能: 将 MCP 工具格式转换为 OpenAI Function Calling 格式
- 转换规则:
MCP Tool { name: string description: string inputSchema: JSONSchema } ↓ 转换为 ↓ OpenAI Function { type: 'function' function: { name: string description: string parameters: JSONSchema } }
3. 工具调用执行
- 文件:
/web/src/services/chatService.ts - 方法:
executeToolCalls() - 流程:
- 遍历 AI 返回的 tool_calls
- 解析工具名称和参数
- 调用
MCPClientService.callTool() - 收集工具执行结果
- 构建包含工具调用和结果的消息历史
- 再次调用 AI 获取最终回复
4. 流式解析增强
- 文件:
/web/src/services/modelServiceManager.ts - 方法:
makeChatRequestStream() - 改进:
- 检测 SSE 流中的
tool_calls - 使用 Map 累积多个流片段的工具调用数据
- 正确拼接
function.argumentsJSON 字符串 - 返回完整的工具调用数组
- 检测 SSE 流中的
用户体验
实时状态提示
🔧 正在调用工具: get_weather...
✅ 工具执行完成
🤖 正在生成回复...
错误处理
❌ 工具执行失败: 连接超时
📝 文档更新
已更新文件
-
release.md ✅
- 添加完整的 v1.0.2 发布说明
- 详细的功能介绍
- 使用示例和配置要求
-
CHANGELOG.md ✅
- 记录 v1.0.2 的所有变更
- 新增功能列表
- Bug 修复说明
-
VERSION.md ✅ (新建)
- 版本信息汇总
- 技术栈说明
- 快速开始指南
- 升级指南
-
package.json ✅
- 版本号: 1.0.0 → 1.0.2
- 描述更新: 添加"AI 工具调用"
-
web/package.json ✅
- 版本号: 1.0.0 → 1.0.2
🔧 代码变更统计
修改的文件
-
/web/src/services/MCPClientService.ts- 新增
getTools()方法 - 修复类型导入问题
- 新增
-
/web/src/services/chatService.ts- 新增
mcpClient实例 - 新增
convertToolsToOpenAIFormat()方法 - 新增
executeToolCalls()方法 - 修改
callModelStream()支持工具调用
- 新增
-
/web/src/services/modelServiceManager.tssendChatRequestStream()新增tools参数makeChatRequestStream()增强流式解析- 返回类型修改为包含
toolCalls
新增代码行数
- 约 150+ 行核心逻辑
- 约 200+ 行文档注释
✅ 测试清单
功能测试
- 工具列表获取正常
- 工具格式转换正确
- AI 识别工具调用
- 工具执行成功
- 工具结果整合到回复
- 多轮对话正常
- 错误处理完善
- 状态提示友好
编译检查
- TypeScript 编译通过
- 无运行时错误
- 类型定义完整
Git 操作
- 代码提交成功
- 标签创建成功
- 推送到远程成功
🚀 部署状态
Git 仓库
- 分支: main
- 最新提交:
50e3bb1- "docs: 更新 v1.0.2 版本文档" - 标签: v1.0.2 ✅
- 远程同步: ✅
Gitea Release
- 状态: ⚠️ 创建失败 (HTTP 403)
- 原因: 权限问题
- 影响: 不影响代码使用,仅影响 Release 页面展示
📋 使用说明
前提条件
-
AI 服务需支持 OpenAI Function Calling 格式
- 推荐:OpenAI GPT-3.5+, GPT-4+
- 兼容:火山引擎、阿里云等
-
MCP 服务器需实现以下接口:
tools/list- 返回工具列表tools/call- 执行工具调用- 工具定义需包含
inputSchema(JSON Schema)
使用步骤
- 在"模型服务"中添加 AI 服务
- 在"MCP 设置"中添加工具服务器
- 在对话界面选择模型和 MCP 服务器
- 发送需要工具辅助的消息
- AI 自动调用工具并整合结果
示例对话
用户: "查询今天北京的天气"
系统: 🔧 正在调用工具: get_weather...
参数: {"city": "北京", "date": "今天"}
✅ 工具执行完成
🤖 正在生成回复...
AI: "根据最新的天气数据,今天北京晴天,气温 15-25°C,
空气质量良好,非常适合户外活动。建议您可以去
公园散步或进行其他户外运动。"
🔜 后续计划
v1.0.3 规划
- 工具调用历史记录
- 工具执行超时控制
- 工具调用权限管理
- 性能监控面板
长期规划
- 工具调用可视化
- 批量工具调用优化
- 工具链编排
- 自定义工具开发
📞 联系方式
- Git 仓库: ssh://biboer.cn:21174/gavin/map-client-vue.git
- 文档: 项目根目录的 README.md
- 问题反馈: CURRENT_STATUS.md
v1.0.2 - AI + MCP 工具调用,让对话更智能! 🚀🔧
发布时间: 2025-10-14 发布人: Gavin