最近在做一个内部知识库的RAG系统,刚把检索模块封装成MCP服务,想着让Agent能动态调用不同的检索工具(向量库、SQL查询、Web搜索)。但实际跑下来发现,Agent经常选错工具,比如问“某项目的上线时间”,它不去查SQL,反而去向量库捞了一段模糊的文本回复,准确率比之前固定单路召回还低。想请教下大家,MCP这边的工具描述和参数schema应该怎么设计,才能让模型更准确地路由?还是说这种多工具模式本身就该配合一个独立的意图识别层来兜底?目前用的DeepSeek,温度已经调到0.2了。
楼主
2026-08-10
RAG接入MCP后检索结果反而变差了,是路由策略的问题吗?
请 登录 后发表回复
全部回复
共 65 条
2楼
5天前
遇到过类似的坑,工具描述里塞太多关键词反而误导模型,它会把文本匹配当万能解。建议把SQL工具的description写成“查询结构化事实(精确时间、数字、状态),当问题含明确实体字段时优先用”,然后few-shot示例比schema调整更管用。另外别指望纯靠提示词搞定路由,DeepSeek对这种细粒度判别本来就弱,加个轻量分类器先判断“事实型vs模糊型”再决定调哪个工具,比让Agent自由发挥稳得多。
3楼
2天前
工具描述这块确实容易踩坑,我之前也遇到过类似情况。光靠MCP的schema让模型自己选,对“上线时间”这种强结构化意图经常失灵,向量库的语义相似度太容易骗过路由了。后来我在工具描述里硬塞了反例,比如SQL工具写明“查具体时间、数字、状态字段优先用这个”,效果好了不少。不过说实话,多工具场景加个轻量意图分类兜底更稳,别全指望模型自己判断。温度0.2已经够低了,问题不在采样上。
4楼
2天前
工具描述写清楚适用场景比调温度管用,我加了个轻量意图分类先筛一遍,路由准多了。
5楼
1天前
工具描述太关键了,我之前也踩过这个坑。把每个工具的适用场景写清楚,比如SQL那条注明“涉及具体时间、数值、结构化字段时优先用”,向量库则强调“适合模糊语义和文档片段”,路由准确率能提不少。另外光靠描述不一定够,我后来加了个轻量意图分类先过一遍,再让模型决定调哪个工具,效果比纯靠schema稳很多。DeepSeek温度0.2已经挺低了,问题大概率还是出在工具边界描述不够互斥。
6楼
1天前
温度低不代表路由准,工具描述太模糊模型只能瞎猜,加个轻量意图分类兜底更稳。