Attio MCP基准测试
一个可重复的基准,比较了Attio CRM的MCP工具包在8个现实世界查询中的表现。衡量可表达性(查询是否可以表达?)和令牌效率(响应有多臃肿?)。
结果
| 查询 | 街机 | 组合 |
|---|---|---|
| 01-列出所有公司(限25家) | ✅ 25条记录 | ✅ 25条记录 |
| 02--“培育”阶段的交易 | ✅ 22条记录 | ✅ 22条记录 |
| 03--超过5万美元的优惠 | ✅ 25条记录 | ✅ 30条记录 |
| 04--名称中带有“技术”的公司 | ✅ 8条记录 | ✅ 8条记录 |
| 05--技术类公司 | ✅ 25条记录 | ✅ 29条记录 |
| 06-2026年3月1日之前创建的交易 | ✅ 25条记录 | ✅ 50条记录 |
| 07--科技公司,201+名员工(复合) | ✅ 25条记录 | ✅ 27条记录 |
| 08--最高价值交易(排序+限制1) | ✅ 1条记录 | ✅ 1条记录 |
所有8个查询:对两个工具包都是可表达的。
每次查询的令牌成本
| 查询 | 街机 | 组合 | 比率 |
|---|---|---|---|
| 01-列出所有公司 | 902 | 144363 | 160× |
| 02--按阶段划分的交易 | 974 | 48792 | 50× |
| 03--超过5万美元的优惠 | 1072 | 66752 | 62× |
| 04--公司名称搜索 | 354 | 48103 | 136× |
| 05--科技公司 | 1030 | 165958 | 161× |
| 06--截止日期前的交易 | 1600 | 111829 | 70× |
| 07--复合过滤器 | 1329 | 15932 | 120× |
| 08--排序+限制1 | 165 | 2254 | 14× |
| 总计 | 7,426 | 747,083 | ~100× |
代币计数 tiktoken (cl100k_base)在保存到磁盘的原始JSON响应上。
为什么会有差距?
Composio用完整的时间元数据包装每条记录的每个字段-- active_from, active_until, attribute_type,actor引用对象——在每个属性上。一家公司的记录扩大到约5800个代币。实际的数据有效载荷只是总响应大小的一小部分。
Arcade只返回请求的字段,没有包装器开销。
问题07——Composio进行了4次工具调用
需要复合筛选器查询:
- 尝试1--失败:
$inAttio不支持运算符select/option字段(仅$eq允许) - 尝试2--失败: 切换到
$or + $eq但使用了基准的记录选项值(501-1000等等)——这些蛞蝓不存在于这个工作区中 - 架构发现调用(
ATTIO_LIST_ATTRIBUTES): 必须获取完整的公司属性模式才能了解实际的选项标题(5K-10K,10K-50K,50K-100K,100K+) - 尝试3——成功: 返回27条记录
这如实地反映在原始数据和元数据中。查询被标记为EXPRESSIBLE,因为它最终成功了,但它需要大量的试验和错误,而依赖工具包记录界面的用户是看不到的。
______________________________________________________________________
自己复制
沙盒工作区和所有查询都是完全可复制的。
1.播种一个新鲜的Attio工作空间
export ATTIO_API_KEY="your-attio-api-key"
pip install httpx tiktoken
python scripts/seed_workspace.py这创建了50家财富100强公司、约100个联系人和50笔特定阶段/价值分布的交易,旨在使所有8个基准查询都有意义。请参阅脚本标题以了解完整的细分。
2.运行基准查询
使用 RUNNER-PROMPT.md 作为提示,它包含每个工具包的完整基准规范和说明。
3.清点代币
pip install tiktoken
python scripts/count_tokens.py______________________________________________________________________
回购结构
raw/
arcade/ # Raw JSON responses + metadata for Arcade toolkit
composio/ # Raw JSON responses + metadata for Composio toolkit
attio-official/ # (placeholder for official Attio MCP)
evals/ # Per-query evaluation notes
scripts/
seed_workspace.py # Idempotent seed script — run this to recreate the sandbox
count_tokens.py # Token counter (reads from raw/{toolkit}/)
RUNNER-PROMPT.md # Full benchmark spec and runner instructions
seed-record-mapping.json # Record IDs from the seeded workspace原始响应是完整的、未删节的工具输出,没有摘要。
