Files
myWiki/papers/gaurav-dynamic-react-2025.md

75 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Dynamic ReAct大规模 MCP 工具选择"
created: 2026-06-19
updated: 2026-06-19
type: paper
tags: [dynamic-tool-selection, mcp, react-agent, meta-tools, tool-retrieval]
sources:
- https://arxiv.org/abs/2509.20386
---
# 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 设计]]
四个核心 meta-tool
- **search_tools**两级搜索k1 候选 → 去重 → k2 每应用上限)
- **load_tools**LLM 精选后显式加载
- **search_apps**:先定位应用(可选,收益有限)
- **get_tool_info / call_tool**Fixed Tool Set 模式的动态访问
## [[default-tools|Default Tools]]
**create_table** + **web_search** 始终可用——避免为通用任务浪费搜索(如 LLM 搜索 "financial APIs" 来找财报,有了 web_search 直接搜即可)。
## 与 MCP-Zero 的对比
| | Dynamic ReAct | [[fei-mcp-zero-2025|MCP-Zero]] |
|---|---|---|
| 核心机制 | meta-tool + 语义搜索 | Agent 主动请求 + 层次路由 |
| 工具加载 | search→load 两阶段 | 请求→路由→注入 |
| 向量策略 | context-enriched embeddings | OpenAI text-embedding-3-large |
| 多轮 | ReAct 框架内迭代 | Iterative Capability Extension |
| 共性 | 都追求"按需而非全量" | 都反对被动注入 |
Dynamic ReAct 论文直接引用了 MCP-Zeroref [2])——两篇构成 MCP 工具选择的互补视角。
来源:[原始存档](raw/papers/gaurav-dynamic-react-2025.md)