什么让工具列表对智能体可读
我们为数千个 MCP 工具界面打分,衡量大模型挑对工具的难易程度。同样的四个错误反复出现。
智能体永远看不到你的文档。它看到的是一份工具名称列表、一行描述,以及参数的 JSON 模式。这就是全部简报。如果从中看不出该用哪个工具,智能体就会挑错——或者向用户提一个本不该问的问题。
我们把目录中每一个可读的工具界面都送去评估并打分。读过数千份之后,失败模式开始聚集。
一、彼此重叠的工具
两个都能合理回应同一请求的工具是最昂贵的错误,因为智能体没有任何判别依据。如果你同时有 search_docs 和 find_document,其中一个必须说清楚它做的是另一个不做的事。
二、没有含义的参数
一个名为 query、类型为 string 的参数,对智能体毫无信息量。里面该放什么——关键词、问题,还是 ID?区分大小写吗?留空会怎样?这些属于模式本身,而不是 README。
三、模糊工具缺少示例
大多数工具不需要示例。但接受自由格式对象、过滤表达式或领域专用标识符的那个,绝对需要。在我们的评估中,「缺少使用示例」是最常见的弱点之一——而且几乎总是指某一个具体工具,而非整台服务器。
四、沉默的限制
速率限制、最大结果数、执行超时、调用是否花钱。不知道限制的智能体一定会撞上去。得分最高的服务器,正是把这些直接写进描述里的那些。
简版
- 用不同的名字暗示不同的职责。
- 每个参数都按「该往里放什么」来描述。
- 人类会追问的那些工具,要给示例。
- 把限制写在智能体真正会读到的地方。
这些都不需要更多工具。大多数情况下,需要的是更少但描述得更好的工具。
看看某台服务器的评分