接入多个MCP服务器后重复工具如何选择
协议层没有解法,只能靠客户端或 Agent 框架做工具治理:去重、加命名空间前缀、按任务裁剪工具集,并把返回策略差异显式写进描述或做成参数。
要点
- 重复分三类:完全重复、近似重复、同名同参但返回策略不同,第三种最坑,模型会随机选。
- 去重可按 tool name 加 schema hash 判重,完全相同的合并,保优先级高的 server,并给工具名加前缀区分来源。
- 模型选工具几乎全靠 description,schema 只决定参数怎么填,描述要写清适用与不适用条件。
- 可用 embeddings 对工具描述聚类,按任务阶段只注入最相关的工具,避免上百个工具全塞上下文。
- 返回全文还是压缩这类差异,写进描述并给出触发条件,或统一成一个工具加 detail 参数。
- 关键能力不要依赖模型自动选,用 workflow 或显式路由把调用点钉死。