2.9 KiB
2.9 KiB
title, created, updated, type, tags, sources
| title | created | updated | type | tags | sources | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Dynamic ReAct:大规模 MCP 工具选择 | 2026-06-19 | 2026-06-19 | paper |
|
|
Dynamic ReAct:大规模 MCP 工具选择
Nishant Gaurav, Adit Akarsh, Ankit Ranjan, Manoj Bajaj · 2025 · arXiv:2509.20386
核心问题
MCP 生态增长到数百/数千工具时,ReAct Agent 无法全量加载——上下文有限。需要按需的动态工具选择。
五架构渐进演化
| # | 架构 | 核心机制 | 关键问题 |
|---|---|---|---|
| 1 | Direct Semantic Search | 用户查询→向量库→top-k | 噪声严重,跨域失效 |
| 2 | Meta-Tool Query Construction | LLM 构造原子搜索查询 | 仍需大 k,精度有限 |
| 3 | Search and Load ★ | search_tools + load_tools | 最优平衡 |
| 4 | Application-Aware | 先搜 app 再搜 tool | 额外调用收益有限 |
| 5 | Fixed Tool Set | 固定 meta-tool 动态访问 | 长对话退化 |
★ Search and Load(生产选择)
用户查询 → LLM构造多查询 → search_tools(k1=20, k2=5/每应用)
→ 去重返回 → LLM精选 → load_tools(< 5个工具) → 执行
优势:
- 多查询合并一次
search_tools调用 - 去重 + 每应用上限 k2=5 控制候选规模
- LLM 精选后通常加载不到 5 个工具(vs baseline 的 10+)
- 工具加载减少 50%,准确率保持
context-enriched-embeddings
从 baseline 的 Top-5 40% → 60%(+50% 相对提升):
- Sonnet 4 生成增强描述(隐式功能 + 用例)
- voyage-context-3 嵌入 + Sonnet context
- BM25 混合提升 recall 但降 precision(关键词误匹配)
meta-tools
四个核心 meta-tool:
- search_tools:两级搜索(k1 候选 → 去重 → k2 每应用上限)
- load_tools:LLM 精选后显式加载
- search_apps:先定位应用(可选,收益有限)
- get_tool_info / call_tool:Fixed Tool Set 模式的动态访问
default-tools
create_table + web_search 始终可用——避免为通用任务浪费搜索(如 LLM 搜索 "financial APIs" 来找财报,有了 web_search 直接搜即可)。
与 MCP-Zero 的对比
| | Dynamic ReAct | fei-mcp-zero-2025 | |---|---|---| | 核心机制 | meta-tool + 语义搜索 | Agent 主动请求 + 层次路由 | | 工具加载 | search→load 两阶段 | 请求→路由→注入 | | 向量策略 | context-enriched embeddings | OpenAI text-embedding-3-large | | 多轮 | ReAct 框架内迭代 | Iterative Capability Extension | | 共性 | 都追求"按需而非全量" | 都反对被动注入 |
Dynamic ReAct 论文直接引用了 MCP-Zero(ref [2])——两篇构成 MCP 工具选择的互补视角。
来源:原始存档