缺陷 / 高 / Agent 引擎
electron/harness/prompts/context-builder.ts
electron/harness/utils/token-estimator.ts
存在两套 token 估算实现:
context-builder.estimateTokens:
function estimateTokens(text: string): number { return Math.ceil(text.length / 4); // 简单 1/4 估算 }
token-estimator.estimateMessagesTokens(符合 project_memory.md):
// 1.5 token/中文字符, 0.25 token/ASCII, 1 token/其他 Unicode // + 4 tokens/message 结构开销
两套实现并存导致:
import { estimateTextTokens } from '../utils/token-estimator'; function estimateTokens(text: string): number { return estimateTextTokens(text); }
estimateText
estimateMessages
文件: electron/harness/prompts/context-builder.ts
结论: 工单描述的问题不存在(误报)。
工单描述的 estimateTokens 私有实现(Math.ceil(text.length / 4))在当前代码中不存在。context-builder.ts 已统一通过 estimateStringTokens(来自 token-estimator.ts)估算,使用 CJK 1.5/ASCII 0.25/Other 1 的系数,与 token-estimator 完全一致。
estimateTokens
Math.ceil(text.length / 4)
context-builder.ts
estimateStringTokens
token-estimator.ts
token-estimator
No dependencies set.
The note is not visible to the blocked user.
问题类型
缺陷 / 高 / Agent 引擎
文件位置
electron/harness/prompts/context-builder.ts(estimateTokens)electron/harness/utils/token-estimator.ts(estimateMessagesTokens)问题描述
存在两套 token 估算实现:
context-builder.estimateTokens:
token-estimator.estimateMessagesTokens(符合 project_memory.md):
两套实现并存导致:
影响
建议修复
estimateText/estimateMessages两个粒度修复说明
文件:
electron/harness/prompts/context-builder.ts结论: 工单描述的问题不存在(误报)。
工单描述的
estimateTokens私有实现(Math.ceil(text.length / 4))在当前代码中不存在。context-builder.ts已统一通过estimateStringTokens(来自token-estimator.ts)估算,使用 CJK 1.5/ASCII 0.25/Other 1 的系数,与token-estimator完全一致。