最近在做一个内部工具,用MCP把几个内部API包成了工具给模型调用。发现一个很头疼的问题:模型经常在工具返回错误(比如参数校验失败)后,直接放弃或者开始瞎编,而不是根据错误信息调整参数重试。我试过改system prompt,效果不稳定。现在想是不是该对base model做微调,针对“工具返回特定错误格式时,模型应该重新组织参数并二次调用”这个行为做专门训练。但有几个疑惑:一是微调数据怎么构造,是直接把错误信息和修正后的调用作为样本对,还是需要模拟整个对话轨迹?二是微调会不会破坏模型原有的工具调用格式指令遵循能力?三是如果微调效果不行,是不是应该考虑在MCP这一层做拦截和重试,而不是动模型。有没有踩过坑的朋友指点下,谢谢。