最近在拿 MCP 搭一个 RAG 系统,想让模型先检索知识库再调用工具补充实时数据。结果发现模型经常跳过检索直接调工具,或者检索完了又忘了把结果带进工具参数里,整条链路串不起来。我看官方示例里 MCP server 和 RAG 是分开跑的,但实际场景里这俩得配合啊。是我 prompt 写得太烂,还是 MCP 的 tool schema 设计有问题?有没有人踩过类似的坑,求个能跑通的思路。
最近在拿 MCP 搭一个 RAG 系统,想让模型先检索知识库再调用工具补充实时数据。结果发现模型经常跳过检索直接调工具,或者检索完了又忘了把结果带进工具参数里,整条链路串不起来。我看官方示例里 MCP server 和 RAG 是分开跑的,但实际场景里这俩得配合啊。是我 prompt 写得太烂,还是 MCP 的 tool schema 设计有问题?有没有人踩过类似的坑,求个能跑通的思路。
这个坑我踩过,问题多半出在编排上而不是 MCP 本身。工具调用和检索是两套决策路径,模型很容易二选一,你得在 prompt 里明确写死“必须先检索再调工具”,或者干脆用代码把流程串起来,别指望模型自己规划。另外工具 schema 里最好加个字段接收检索结果,不然模型确实容易忘。我现在是检索完直接把上下文塞进工具参数模板里,稳很多。