--- title: "Dynamic ReAct — 动态工具选择" created: 2026-06-19 updated: 2026-06-19 type: concept tags: [dynamic-tool-selection, react, mcp, meta-tools, scalability] sources: - https://arxiv.org/abs/2509.20386 --- # Dynamic ReAct ## 定义 Dynamic ReAct 是 Gaurav et al. (2025) 提出的框架:通过 **meta-tools + 语义搜索** 让 ReAct Agent 在数百到数千个 MCP 工具的环境中**按需动态选择和加载工具**,而非全量注入。 ## 核心设计理念 全量加载不可行 → 需要"管理工具的工具"(meta-tools)→ Agent 自主发现、检索、加载所需工具。 ## 四大核心组件 | 组件 | 角色 | |------|------| | LLM Client | 轻量 system prompt,核心推理引擎 | | Meta Tools | 管理其他工具的固定工具集(搜索、加载) | | Tool Registry | 全部可用 MCP 工具的仓库(可来自第三方) | | Vector Database | 语义索引和检索,支持 ANN 搜索 | ## 七个控制杠杆 LLM Client (1): System Prompt Meta Tools (4): Names, Parameters, Descriptions, Output Format Tool Registry (1): Tool Descriptions Vector DB (1): Retrieval Design 实践中最可控的两个杠杆:**Meta Tools** 和 **Vector DB**。 ## 五架构 → Search and Load 五架构渐进演化,最终收敛于 **Search and Load**——两次额外 LLM 调用(search + load),加载 < 5 个工具,减少 50% 加载量且保持准确率。 → [[search-and-load|Search and Load 架构]] ## 关键数据 - 向量检索优化:Top-5 从 40% → 60%(+50% 相对提升) - 工具加载减少 50% - Scale to thousands of tools ## 与 MCP-Zero 的关系 论文直接引用 [[fei-mcp-zero-2025|MCP-Zero]](ref [2])。两者解决同一问题,路线互补: - MCP-Zero:Agent 自主请求 + 层次路由 - Dynamic ReAct:meta-tools + 语义搜索 + 精选加载 ## 参考 - [[gaurav-dynamic-react-2025|Dynamic ReAct 论文]] - [[meta-tools|Meta Tools]] - [[search-and-load|Search and Load]] - [[fei-mcp-zero-2025|MCP-Zero]]