


























@@ -639,6 +639,7 @@ export async function runEmbeddedPiAgent(
639639const usageAccumulator = createUsageAccumulator();
640640let lastRunPromptUsage: ReturnType<typeof normalizeUsage> | undefined;
641641let autoCompactionCount = 0;
642+let lastCompactionTokensAfter: number | undefined;
642643let runLoopIterations = 0;
643644let overloadProfileRotations = 0;
644645let planningOnlyRetryAttempts = 0;
@@ -1033,6 +1034,13 @@ export async function runEmbeddedPiAgent(
10331034lastTurnTotal = lastAssistantUsage?.total ?? attemptUsage?.total;
10341035const attemptCompactionCount = Math.max(0, attempt.compactionCount ?? 0);
10351036autoCompactionCount += attemptCompactionCount;
1037+if (
1038+typeof attempt.compactionTokensAfter === "number" &&
1039+Number.isFinite(attempt.compactionTokensAfter) &&
1040+attempt.compactionTokensAfter > 0
1041+) {
1042+lastCompactionTokensAfter = Math.floor(attempt.compactionTokensAfter);
1043+}
10361044const activeErrorContext = resolveActiveErrorContext({
10371045 provider,
10381046model: modelId,
@@ -1180,6 +1188,13 @@ export async function runEmbeddedPiAgent(
11801188await runOwnsCompactionAfterHook("timeout recovery", timeoutCompactResult);
11811189if (timeoutCompactResult.compacted) {
11821190autoCompactionCount += 1;
1191+if (
1192+typeof timeoutCompactResult.result?.tokensAfter === "number" &&
1193+Number.isFinite(timeoutCompactResult.result.tokensAfter) &&
1194+timeoutCompactResult.result.tokensAfter > 0
1195+) {
1196+lastCompactionTokensAfter = Math.floor(timeoutCompactResult.result.tokensAfter);
1197+}
11831198if (contextEngine.info.ownsCompaction === true) {
11841199await runPostCompactionSideEffects({
11851200config: params.config,
@@ -1339,6 +1354,13 @@ export async function runEmbeddedPiAgent(
13391354await runOwnsCompactionAfterHook("overflow recovery", compactResult);
13401355if (compactResult.compacted) {
13411356adoptCompactionTranscript(compactResult);
1357+if (
1358+typeof compactResult.result?.tokensAfter === "number" &&
1359+Number.isFinite(compactResult.result.tokensAfter) &&
1360+compactResult.result.tokensAfter > 0
1361+) {
1362+lastCompactionTokensAfter = Math.floor(compactResult.result.tokensAfter);
1363+}
13421364if (preflightRecovery?.route === "compact_then_truncate") {
13431365const truncResult = await truncateOversizedToolResultsInSession({
13441366sessionFile: activeSessionFile,
@@ -1856,6 +1878,7 @@ export async function runEmbeddedPiAgent(
18561878lastCallUsage: usageMeta.lastCallUsage,
18571879promptTokens: usageMeta.promptTokens,
18581880compactionCount: autoCompactionCount > 0 ? autoCompactionCount : undefined,
1881+compactionTokensAfter: lastCompactionTokensAfter,
18591882};
18601883const finalAssistantVisibleText = resolveFinalAssistantVisibleText(sessionLastAssistant);
18611884const finalAssistantRawText = resolveFinalAssistantRawText(sessionLastAssistant);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。