将MCP参数中UUID换为整数可降低AI智能体错误
冷知识:在你的 MCP 工具参数里把 UUID 换成纯整数,可以减少智能体出错。
当你对比基于 UUID 的工具参数和整数替代方案时,会发现前者会引发不少错误,原因很简单……
像 a3f9c1e2-88b4-4d1e-9c77-... 这样的 UUID,不是模型能够推理的东西。所以当模型需要填入这个参数时,它不是在检索记忆里已有的值,而是在根据 UUID 的外观做模式匹配。
这样生成出来的字符串看起来像模像样,其实在你的系统里根本不存在。这就是 API 调用和 MCP 工具调用之间的核心不匹配。
REST API 是为已经持有 ID 的客户端构建的,这个 ID 是客户端刚刚从数据库查询中获取的。而哪怕是 MCP,也是由模型来调用的,它需要从上下文里生成参数值,而上下文是由「文字」组成的。
修复方法很简单——从一开始就不要让模型看到原始 UUID。如果可能的话,在内部解析完成映射。如果工具需要引用某个实体,就对外暴露人类可读的名称(哪怕是变量名也能用)或者简单索引,然后在你这边把它转换回 UUID。
下次你打算直接把数据库主键直接放进工具 schema 里的时候,记得这件事。希望这能帮到你。
本文由 AI 翻译自英文原帖,技术名词保留英文。
查看 X 原帖