Skip to content
docsv0.2.0

TokenEstimator

Simple token estimator for LLM context management. Uses character-based estimation (4 chars ≈ 1 token for English). This is an approximation - actual tokenization varies by model. For more accurate counting, integrate with: - tiktoken (OpenAI's tokenizer) - Anthropic's token counting API

TokenEstimator::estimateTokens()

public function estimateTokens(string $text): int

Estimate token count for a string.

Parameters

Parameters of estimateTokens()
NameTypeDescription
$textstring

TokenEstimator::estimateToolTokens()

public function estimateToolTokens(array $tool): int

Estimate tokens for a tool definition.

Parameters

Parameters of estimateToolTokens()
NameTypeDescription
$toolarray{name: string, description: string, inputSchema: array<mixed>}

TokenEstimator::estimateToolsTokens()

public function estimateToolsTokens(array $tools): array

Estimate tokens for multiple tools.

Parameters

Parameters of estimateToolsTokens()
NameTypeDescription
$toolsarray<array{name: string, description: string, inputSchema: array<mixed>}>

TokenEstimator::getModelLimit()

public function getModelLimit(string $model): int

Get context limit for a model.

Parameters

Parameters of getModelLimit()
NameTypeDescription
$modelstring

TokenEstimator::getToolBudget()

public function getToolBudget(string $model): int

Get recommended token budget for tools based on model.

Parameters

Parameters of getToolBudget()
NameTypeDescription
$modelstring

TokenEstimator::checkToolBudget()

public function checkToolBudget(array $tools, string $model): array

Check if tools fit within budget.

Parameters

Parameters of checkToolBudget()
NameTypeDescription
$toolsarray<array{name: string, description: string, inputSchema: array<mixed>}>
$modelstring

TokenEstimator::selectToolsWithinBudget()

public function selectToolsWithinBudget(array $tools, string $model): array

Select tools that fit within budget, prioritizing by order.

Parameters

Parameters of selectToolsWithinBudget()
NameTypeDescription
$toolsarray<array{name: string, description: string, inputSchema: array<mixed>}>
$modelstring

TokenEstimator::getUsageReport()

public function getUsageReport(array $tools, string $model): string

Get a summary report of token usage.

Parameters

Parameters of getUsageReport()
NameTypeDescription
$toolsarray<array{name: string, description: string, inputSchema: array<mixed>}>
$modelstring