实验 4-1 · 主动工具发现(Active Tool Discovery)

127 个 MCP 工具目录下:全量 schema 注入(对照组)vs 本地嵌入索引 + 按需动态注入(实验组)的对照验证
Experiment: 4-1 Model: qwen3:4b Transport: mcp-stdio Server: perception-tools 状态: passed

核心结论速览

在 127 个工具的 MCP 目录下,对照组把完整 schema(50,597 tokens)全量注入每次请求;实验组用 all-MiniLM-L6-v2 在本地建 384 维嵌入索引,按任务语义仅注入所需工具的子集 schema。
一句话结论:实验组在工具选择准确率保持 100%(两组均为 1.0,3/3 任务全部完成)的前提下, 把单任务注入的 schema 从全量 50,597 tokens 压到 1,853 ~ 6,092 tokens, 端到端总耗时从 1,766s 降到 282s,加速 6.25×、节省约 24.7 分钟,且不牺牲任何正确性。

对照组 vs 实验组

相同任务、相同模型、相同运行时与目录(控制变量),唯一差异是工具 schema 的注入方式。
对照组 Control
全量 schema 注入(完整目录)
基线
1,766 s
≈ 29.4 分钟 · 端到端总耗时
工具选择准确率1.0(100%)
完成任务3 / 3
单任务 schema50,597 tokens
注入方式一次性全量
实验组 Treatment
本地嵌入索引 + 动态注入
更优
282 s
≈ 4.7 分钟 · 端到端总耗时
工具选择准确率1.0(100%)
完成任务3 / 3
单任务 schema1,853 ~ 6,092 tokens
注入方式按语义检索子集

量化对比

左:端到端总耗时(越低越好);右:三个任务动态注入的 schema tokens(对比全量 50,597 的参考线)。
端到端总耗时 (s) · 越低越好
对照组 Control 实验组 Treatment
加速比 6.25× · 节省 1,484s(≈24.7 分钟)· 正确率不变
动态注入 schema tokens · 三个任务
各任务动态注入 全量 schema 参考线 50,597

工具目录与本地嵌入索引

实验组的技术底座:127 个工具的 schema 经嵌入模型编码为 384 维向量,本地构建索引供按需检索。
工具目录(perception-tools · mcp-stdio)
工具总数127
完整 schema tokens50,597
schema 原始字节208,614 B
gzip 后字节21,565 B
必需工具就位7 / 7 ✓
本地嵌入索引
嵌入模型all-MiniLM-L6-v2
后端transformers mean-pooling
运行设备cpu(local_files_only)
向量数127
向量维度384

验收 Gate 检查(12 / 12 通过)

每一项均为 True 方判定实验有效。全部通过,status = passed。

最终判定

综合 12 项验收 Gate 与双臂对比指标的自动化判定。
✓ 实验通过
status = passed · 12/12 Gate 通过 · 加速 6.25× · 正确率 100% 不变