diff --git a/release.md b/release.md index ac3616b..b36600e 100644 --- a/release.md +++ b/release.md @@ -155,3 +155,163 @@ npm run dev ### ⚠️ 已知问题 - TypeScript类型错误47个(不影响功能) - 使用 `npm run build:skip-check` 跳过类型检查 + +--- + +## v1.0.2 + +发布时间: 2025-10-14 + +### 🎯 重大功能:MCP 工具调用集成 + +本版本实现了完整的 MCP 工具调用功能,AI 可以智能调用 MCP 服务器提供的工具并整合结果。 + +#### ✨ 核心功能 + +**🔧 智能工具调用** +- AI 自动识别何时需要调用工具 +- 支持 OpenAI Function Calling 协议 +- 兼容多个 AI 服务商(OpenAI、火山引擎、阿里云等) +- 完整的多轮对话支持(AI → Tool → AI) + +**🔄 流式工具执行** +- 实时显示工具调用进度 +- 流式体验不中断 +- 友好的状态提示: + - 🔧 正在调用工具: [工具名]... + - ✅ 工具执行完成 + - ❌ 工具执行失败: [错误信息] + - 🤖 正在生成回复... + +**📋 工具格式转换** +- MCP 工具 → OpenAI Function 格式 +- 自动提取 inputSchema 作为 parameters +- 支持完整的 JSON Schema 定义 + +#### 🛠️ 技术实现 + +**服务层改进** +- `MCPClientService.getTools()` - 获取工具列表 +- `chatService.convertToolsToOpenAIFormat()` - 格式转换 +- `chatService.executeToolCalls()` - 工具执行逻辑 +- `modelServiceManager.sendChatRequestStream()` - 增强工具参数支持 + +**流式解析增强** +- SSE 流中检测 `tool_calls` +- 累积多个流片段中的工具调用数据 +- 正确拼接 `function.arguments` JSON 字符串 +- 返回完整的工具调用数组 + +**消息格式支持** +```typescript +// 工具调用消息 +{ + role: 'assistant', + content: '', + tool_calls: [{ + id: '...', + type: 'function', + function: { name: '...', arguments: '{}' } + }] +} + +// 工具结果消息 +{ + tool_call_id: '...', + role: 'tool', + name: 'tool_name', + content: '{...}' +} +``` + +#### 📦 使用方式 + +1. **配置 AI 服务** - 在"模型服务"中添加支持函数调用的 AI +2. **连接 MCP 服务器** - 在"MCP 设置"中添加工具服务器 +3. **选择模型和 MCP** - 在对话界面选择 +4. **开始对话** - AI 会自动调用相关工具 + +#### 💡 使用示例 + +``` +用户: "查询今天北京的天气" + +系统: 🔧 正在调用工具: get_weather... + ✅ 工具执行完成 + 🤖 正在生成回复... + +AI: "根据天气数据,今天北京晴天,温度 15-25°C, + 空气质量良好,适合户外活动。" +``` + +#### 🐛 Bug 修复 + +- ✅ 修复 MCPClientService 类型导入问题 +- ✅ 修复 types.ts 和 types/index.ts 路径冲突 +- ✅ 修复 modelServiceManager 返回类型 +- ✅ 修复未使用变量警告 + +#### 🔧 技术细节 + +**修改的文件** +- `/web/src/services/chatService.ts` - 工具调用主逻辑 +- `/web/src/services/modelServiceManager.ts` - 工具参数支持 +- `/web/src/services/MCPClientService.ts` - 工具列表获取 + +**新增方法** +- `MCPClientService.getTools(serverId)` - 获取服务器工具 +- `chatService.convertToolsToOpenAIFormat()` - 格式转换 +- `chatService.executeToolCalls()` - 执行工具调用 + +**改进方法** +- `modelServiceManager.sendChatRequestStream()` - 支持 tools 参数 +- `modelServiceManager.makeChatRequestStream()` - 检测和收集 tool_calls + +#### 🎯 设计亮点 + +1. **无缝集成** - 不改变现有对话流程 +2. **错误恢复** - 工具调用失败不影响对话继续 +3. **类型安全** - 完整的 TypeScript 类型定义 +4. **性能优化** - 流式处理保持响应速度 +5. **用户友好** - 清晰的进度提示 + +#### ⚙️ 配置要求 + +**AI 服务要求** +- 支持 OpenAI Function Calling 格式 +- 推荐:OpenAI GPT-3.5+, GPT-4+ +- 兼容:火山引擎、阿里云等 OpenAI 兼容服务 + +**MCP 服务器要求** +- 实现 `tools/list` 接口 +- 实现 `tools/call` 接口 +- 提供标准的 inputSchema (JSON Schema) + +### 📚 相关文档 + +- [完整文档](./README.md) +- [更新日志](./CHANGELOG.md) +- [故障排除](./CURRENT_STATUS.md) + +### 🚀 升级指南 + +```bash +# 拉取最新代码 +git pull origin main + +# 安装依赖(如有更新) +cd web && npm install + +# 启动开发服务器 +npm run dev +``` + +### 🔜 下一步计划 + +- 工具调用历史记录 +- 工具执行超时控制 +- 批量工具调用优化 +- 工具调用权限管理 +- 工具调用性能监控 + +**v1.0.2 - AI + MCP 工具调用,让对话更智能!** 🚀🔧