Skip to main content
Glama
TOOL_DESCRIPTION_FIX.md4.92 kB
# 🔧 工具描述优化 - 避免误调用 ## 📋 问题描述 **用户反馈:** 当用户说 **"生成4个图,提示词:'可口可乐'"** 时,系统调用了4次 `text_to_image` 工具,而不是调用1次 `sequential_generation` 工具。 **根本原因:** 1. **工具描述不够明确** - Claude 不知道什么时候该用哪个工具 2. **参数定义不清晰** - 两个工具的必填参数都只有 `prompt`,难以区分 3. **参数顺序问题** - `max_images` 排在 `prompt` 后面,不够显眼 **原来的问题:** - ❌ `text_to_image`: "使用Seedream 4.0根据文本提示词生成图像" - **问题:** 没有说明只生成"单张"图片 - **结果:** Claude 认为可以调用多次来生成多张图 - ❌ `sequential_generation`: "使用Seedream 4.0连续生成多张图像(组图生成)" - **问题:** 没有明确说明"何时使用" - **结果:** Claude 不知道什么时候应该用这个工具 --- ## ✅ 解决方案 ### 修改后的工具描述 #### 1️⃣ 文生图 (text_to_image) ```python description="使用Seedream 4.0根据文本提示词生成【单张】图像。如果需要生成多张图片,请使用 seedream_sequential_generation 工具" ``` **改进:** - ✅ 明确说明生成"单张"图像 - ✅ 引导用户使用组图生成工具 #### 2️⃣ 图生图 (image_to_image) ```python description="使用Seedream 4.0根据输入图像和文本提示词生成【单张】新图像(图生图)。如果需要基于一张图生成多张变体,请使用 seedream_sequential_generation 工具" ``` **改进:** - ✅ 明确说明生成"单张"图像 - ✅ 说明功能是"图生图" - ✅ 引导用户使用组图生成工具 #### 3️⃣ 多图融合 (multi_image_fusion) ```python description="使用Seedream 4.0将多张图像融合生成【单张】新图像(多图融合)。需要提供2-10张输入图片。如果需要生成多张融合结果,请使用 seedream_sequential_generation 工具" ``` **改进:** - ✅ 明确说明生成"单张"图像 - ✅ 说明功能是"多图融合" - ✅ 说明输入要求(2-10张) - ✅ 引导用户使用组图生成工具 #### 4️⃣ 组图生成 (sequential_generation) ⭐ 关键修改 ```python description="使用Seedream 4.0【批量生成多张图像】(组图生成)。当用户要求生成2张或更多图片时使用此工具。支持3种输入类型:文生组图、单图生组图、多图生组图。最多可生成15张图片" # 参数定义优化 properties = { "max_images": { # ⭐ 移到第一位,设为必填 "type": "integer", "description": "要生成的图像数量(必填)。用户说'生成4张图'时,此参数应为4", "minimum": 1, "maximum": 15 }, "prompt": { "type": "string", "description": "图像内容的文本提示词(如'可口可乐'、'小猫'等)。不需要在提示词中包含数量信息,数量由 max_images 参数指定", "maxLength": 600 }, ... } required = ["prompt", "max_images"] # ⭐ max_images 设为必填 ``` **改进:** - ✅ 明确说明"批量生成多张图像" - ✅ **明确使用场景:** "当用户要求生成2张或更多图片时" - ✅ 说明支持的输入类型 - ✅ 说明数量限制(最多15张) - ✅ **`max_images` 移到第一位** - 更显眼 - ✅ **`max_images` 设为必填** - 强制 Claude 提供数量 - ✅ **优化参数描述** - 明确告诉 Claude 如何使用 --- ## 🎯 预期效果 ### 修改前 ``` 用户: "生成4个图,提示词:'可口可乐'" 系统: 调用 text_to_image 4次 ❌ ``` ### 修改后 ``` 用户: "生成4个图,提示词:'可口可乐'" 系统: 调用 sequential_generation 1次 ✅ 参数: { "prompt": "可口可乐", "max_images": 4 } ``` --- ## 📝 修改的文件 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. **说明使用场景** - 告诉 AI 什么时候应该用这个工具 3. **引导正确选择** - 如果有更合适的工具,明确指出 4. **避免歧义** - 使用【】强调关键信息(如"单张"、"多张") 5. **参数顺序** - 最重要的参数放在最前面 6. **必填参数** - 关键区分参数应设为必填 7. **参数描述** - 明确告诉 AI 如何使用参数(包含示例) --- ## ✨ 总结 通过优化工具描述,我们: - ✅ 避免了重复调用单图工具 - ✅ 引导 AI 正确选择组图生成工具 - ✅ 提升了用户体验 - ✅ 减少了不必要的 API 调用 现在当用户要求生成多张图片时,系统会自动选择正确的工具! 🎊

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