---
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]]
