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

2.9 KiB
Raw Blame History

title, created, updated, type, tags, sources
title created updated type tags sources
Dynamic ReAct大规模 MCP 工具选择 2026-06-19 2026-06-19 paper
dynamic-tool-selection
mcp
react-agent
meta-tools
tool-retrieval
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

  • search_tools两级搜索k1 候选 → 去重 → k2 每应用上限)
  • load_toolsLLM 精选后显式加载
  • search_apps:先定位应用(可选,收益有限)
  • get_tool_info / call_toolFixed 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-Zeroref [2])——两篇构成 MCP 工具选择的互补视角。

来源:原始存档