MCPcopy Create free account
hub / github.com/echoVic/blade-code / estimateTokens

Method estimateTokens

src/context/processors/ContextFilter.ts:307–326  ·  view source on GitHub ↗

* 估算上下文数据的总 Token 数量

(contextData: ContextData)

Source from the content-addressed store, hash-verified

305 * 估算上下文数据的总 Token 数量
306 */
307 private estimateTokens(contextData: ContextData): number {
308 let totalTokens = 0;
309
310 // 对话消息
311 for (const message of contextData.layers.conversation.messages) {
312 totalTokens += this.estimateMessageTokens(message);
313 }
314
315 // 系统上下文
316 const systemContent = JSON.stringify(contextData.layers.system);
317 totalTokens += Math.ceil(systemContent.length / 4);
318
319 // 工具上下文
320 if (contextData.layers.tool.recentCalls.length > 0) {
321 const toolContent = JSON.stringify(contextData.layers.tool);
322 totalTokens += Math.ceil(toolContent.length / 8); // 工具调用数据通常更简洁
323 }
324
325 return totalTokens;
326 }
327
328 /**
329 * 创建预设过滤器

Callers 1

filterMethod · 0.95

Calls 1

estimateMessageTokensMethod · 0.95

Tested by

no test coverage detected