---
id: "concept-dynamic-tool-pool-assembly"
type: "concept"
source_timestamps: ["00:18:31"]
tags: ["optimization", "tool-calling"]
related: ["concept-metadata-first-tool-registry"]
definition: "Dynamically selecting a contextual subset of tools from a larger registry for a specific session to optimize LLM performance and token usage."
sources: ["s46-anthropic-25b-leak"]
sourceVaultSlug: "s46-anthropic-25b-leak"
originDay: 46
---
# Dynamic Tool Pool Assembly

## Definition
**Dynamically selecting** a contextual subset of tools from a larger registry for a specific session — to optimize LLM performance and token usage.

## The Problem
Exposing an LLM to hundreds of tools simultaneously **degrades performance** and **increases token costs**. Each tool definition consumes context window, and irrelevant options confuse selection.

## What [[entity-claude-code-d46|Claude Code]] Does
Out of its **184 available model-facing tools**, Claude Code does *not* load them all at once. Instead it creates a tailored subset based on:

- **mode flags** (which session mode is active)
- **permission contexts** (what the user / orchestrator has allowed)
- **deny lists** relevant to the specific run

The result: a general-purpose agent **dynamically configures its available action space just before execution.**

## Why It Matters
This approach manages the overall agent population and maximizes the efficiency of the work produced. The LLM only sees the tools it strictly needs for the current context.

## Foundation
Not possible without [[concept-metadata-first-tool-registry]] — you can only filter what you've already modeled as data.

## Validation (Enrichment)
Confirmed. LlamaIndex tool optimization shows dynamic subsets (often <128 tools) can cut tokens by 50–70% with comparable or better task success.
