动态工具选择:一种适用于深陷工具模式之智能体的可移植模式
我在构建 Deep Agents 智能体时偶然发现了这一模式:当工具注册表规模超出临界点,即便在每一轮对话中都发送所有 schema 仍显得合理时,该模式便显现出来。以下内容是该模式本身,已做精简,使其可无缝融入当今任何框架的工具调用智能体循环中,并辅以基于 61 个工具合成注册表的基准测试。问题:工具数量增长,但每轮的相关性并未随之提升大多数智能体框架在构建时一次性组装工具列表,并在每次调用时将该完整列表发送给模型,而不论该轮对话的具体内容如何。在工具数量为 5-10 个时,这种做法尚可接受。一旦接入多个 MCP 服务器(如 Slack、GitHub、Linear、日历、CRM,每个贡献 3-6 个 schema),无论用户是否询问 Slack 消息,每一轮对话都会携带 40-60 个工具定义。