Skip to main content
Glama
FINAL_FIX_SUMMARY.md4.69 kB
# 🎯 最终修复总结 - 工具选择问题 ## 📋 问题 **用户反馈:** 说 **"生成4张图,提示词:'可口可乐'"** 时,系统调用了4次 `text_to_image` 而不是1次 `sequential_generation`。 --- ## 🔍 根本原因 经过分析,发现了3个关键问题: ### 1️⃣ 工具描述不够明确 - ❌ `text_to_image` 没有说明只生成"单张" - ❌ `sequential_generation` 没有明确说明"何时使用" ### 2️⃣ 参数定义不清晰 - ❌ 两个工具的必填参数都只有 `["prompt"]` - ❌ Claude 无法通过必填参数区分工具 ### 3️⃣ 参数顺序和描述问题 - ❌ `max_images` 排在 `prompt` 后面,不够显眼 - ❌ `max_images` 不是必填参数 - ❌ 参数描述没有明确告诉 Claude 如何使用 --- ## ✅ 解决方案 ### 修改 1: 优化工具描述 #### 文生图 (text_to_image) ```python description="使用Seedream 4.0根据文本提示词生成【单张】图像。如果需要生成多张图片,请使用 seedream_sequential_generation 工具" ``` #### 组图生成 (sequential_generation) ```python description="使用Seedream 4.0【批量生成多张图像】(组图生成)。当用户要求生成2张或更多图片时使用此工具。支持3种输入类型:文生组图、单图生组图、多图生组图。最多可生成15张图片" ``` ### 修改 2: 调整参数顺序和必填性 **原来:** ```python properties = { "prompt": {...}, # 第1位 "max_images": {...}, # 第2位 ... } required = ["prompt"] # 只有 prompt 必填 ``` **修改后:** ```python properties = { "max_images": { # ⭐ 移到第1位 "type": "integer", "description": "要生成的图像数量(必填)。用户说'生成4张图'时,此参数应为4", "minimum": 1, "maximum": 15 }, "prompt": { # 第2位 "type": "string", "description": "图像内容的文本提示词(如'可口可乐'、'小猫'等)。不需要在提示词中包含数量信息,数量由 max_images 参数指定", "maxLength": 600 }, ... } required = ["prompt", "max_images"] # ⭐ max_images 也设为必填 ``` ### 修改 3: 优化参数描述 **关键改进:** 1. ✅ `max_images` 描述包含示例: **"用户说'生成4张图'时,此参数应为4"** 2. ✅ `prompt` 描述明确说明: **"不需要在提示词中包含数量信息"** 3. ✅ 告诉 Claude 如何使用参数 --- ## 🎯 预期效果 ### 修改前 ``` 用户: "生成4张图,提示词:'可口可乐'" Claude 的思考: - 看到 text_to_image 和 sequential_generation - 两个工具都只需要 prompt 参数 - text_to_image 更简单,调用4次吧 结果: ❌ 调用 text_to_image 4次 ``` ### 修改后 ``` 用户: "生成4张图,提示词:'可口可乐'" Claude 的思考: - 看到 text_to_image 描述说"生成【单张】图像" - 看到 sequential_generation 描述说"当用户要求生成2张或更多图片时使用" - sequential_generation 需要 max_images 参数(必填) - max_images 描述说"用户说'生成4张图'时,此参数应为4" - 用户要求4张图,应该用 sequential_generation! 结果: ✅ 调用 sequential_generation 1次 参数: { "max_images": 4, "prompt": "可口可乐" } ``` --- ## 📝 修改的文件 1. ✅ `seedream_mcp/tools/text_to_image.py` - 优化描述 2. ✅ `seedream_mcp/tools/image_to_image.py` - 优化描述 3. ✅ `seedream_mcp/tools/multi_image_fusion.py` - 优化描述 4. ✅ `seedream_mcp/tools/sequential_generation.py` - 优化描述 + 调整参数 --- ## 🔑 关键经验 设计 MCP 工具时,要确保: 1. **描述要明确** - 说清楚工具的功能范围和使用场景 2. **参数要区分** - 关键区分参数应设为必填 3. **顺序要合理** - 最重要的参数放在最前面 4. **描述要详细** - 包含示例,告诉 AI 如何使用 5. **相互引导** - 在描述中引导 AI 选择正确的工具 --- ## ✨ 测试验证 运行 `test_tool_selection.py` 验证: ``` ✅ 文生图工具已标记【单张】 ✅ 文生图工具已引导使用组图工具 ✅ 组图工具的 max_images 已设为必填 ✅ 组图工具的 max_images 在第一位 ✅ max_images 描述包含示例 🎉 所有检查通过! ``` --- ## 🚀 下一步 **请重启 MCP 服务:** 1. 关闭 Claude Desktop 2. 重新打开 Claude Desktop 3. 测试: "生成4张图,提示词:'可口可乐'" **预期结果:** - ✅ 调用 `seedream_sequential_generation` 工具 - ✅ 参数: `{"max_images": 4, "prompt": "可口可乐"}` - ✅ 生成4张可口可乐的图片 --- **现在工具定义已经优化完成,重启后应该能正确选择工具了!** 🎊

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/joeseesun/Seedream_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server