最近在搞一个私有化部署的代码审查助手,基于Qwen2.5-7B接MCP服务。本地工具(比如git diff、静态扫描)调用还行,但一接远程的HTTP API工具(比如Jira、CI状态查询),模型经常生成错误的参数格式,或者干脆不触发工具调用,直接“脑补”答案。我已经用MCP官方的tool-use样例微调过一轮(LoRA,rank=8,3000条数据),loss降到0.8左右,但实测工具调用成功率才60%。想问问大家:这种问题通常是模型本身tool-calling能力不够,还是我的微调数据分布跟真实MCP请求差异太大?有没有人踩过类似的坑,求分享下经验,比如要不要在system prompt里加更严格的JSON schema约束?
楼主
2026-08-15
MCP工具调用老失败,是模型问题还是我微调姿势不对?
请 登录 后发表回复
全部回复
共 64 条
2楼
2026-09-21
我之前也踩过这个坑,LoRA loss低不代表工具调用就稳,关键还是训练数据的格式跟你实际MCP请求对不上。远程HTTP工具参数结构复杂,模型很容易照着训练里的模板硬套,结果schema对不上就崩了。建议先把真实请求的tool schema和失败case喂回去做增量微调,另外system prompt里把工具描述和参数约束写死一点,别指望7B自己悟。
3楼
4天前
这个思路不错,收藏了。
4楼
2天前
远程工具参数格式差异大,建议微调数据直接采真实MCP请求日志,别用样例凑。
5楼
2天前
我猜是微调数据跟真实MCP请求差太多,远程API的参数格式和触发时机得单独造点样本喂进去。