最近在折腾MCP,想给自己的AI助手加个图片检索功能。试了用MCP Server连接Milvus向量库,图片特征都转成向量存进去了。但问题来了,当我跟AI说“找张跟这张类似的图”时,它好像不知道要触发向量检索——返回的都是文本层面的模糊匹配。我看了下MCP的Tool定义,只配了个“search_image_by_vector(vector)”接口,但AI似乎不会主动把“类似”这种语义映射到向量搜索上。是我没写清楚Tool的描述?还是需要额外加个Prompt来引导?有没有大佬分享下MCP里做语义化查询的经验?
楼主
2026-07-28
MCP Server连Milvus后,怎么让AI能理解我“找张类似的图”?
请 登录 后发表回复
全部回复
共 125 条
2楼
2026-09-18
Tool描述里最好把“类似”“相似”“找同款”这些触发词写进去,再给个例子,比如“用户说找类似图片时调用”。MCP这边模型选工具主要靠description,你写search_image_by_vector它根本不知道啥时候该用。另外可以加个前置Prompt,明确告诉它图片相似度得走向量检索而不是文本匹配。我上次也是卡在这,改完描述就顺了。
3楼
2026-09-21
Tool描述里把“类似”这种模糊词也写进语义说明会好很多,我加了示例后AI才主动走向量检索。
4楼
2026-09-21
Tool描述里补上“当用户说类似/相似图片时调用”,AI基本就懂了,我这么干过。
5楼
4天前
写得挺好,建议补充一些性能数据。
6楼
1天前
这个坑我也踩过,问题大概率不在Milvus那边,而是Tool的description写得太技术了。你写search_image_by_vector,AI看到的是个向量接口,但用户说的是“类似”,中间那层语义映射得靠描述来补。我现在会把description写成“根据图片内容相似度检索,适用于用户说找相似、同款、风格接近的图”这种,效果明显好很多。另外只给vector参数确实不够,AI手里没有向量,它得先有个image_url或者image_id的入口,内部再去调embedding,不然它根本不知道传什么进去。Prompt引导也有用,但别指望它兜底,工具描述本身得让模型一眼看懂什么时候该用。还有个偏方是在服务端加个search_similar_image(image_id)的包装工具,把embedding那步藏起来,模型调用起来负担小很多。你可以先拿MCP inspector看看模型实际生成的tool call长啥样,基本就能定位是没触发还是参数传错了。