Skip to content

Commit bda4404

Browse files
committed
fix(agents): reuse memoized prompt projections
1 parent 3092560 commit bda4404

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/agents/embedded-agent-runner/run/attempt.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4183,7 +4183,7 @@ export async function runEmbeddedAttempt(
41834183
promptToolResultMaxChars * PROMPT_TOOL_RESULT_AGGREGATE_CAP_MULTIPLIER,
41844184
toolResultPromptProjectionState,
41854185
);
4186-
if (promptToolResultTruncation.truncatedCount > 0) {
4186+
if (promptToolResultTruncation.messages !== activeSession.messages) {
41874187
promptHistoryMessages = promptToolResultTruncation.messages;
41884188
log.info(
41894189
`[tool-result-truncation] Truncated ${promptToolResultTruncation.truncatedCount} ` +
@@ -4725,7 +4725,7 @@ export async function runEmbeddedAttempt(
47254725
promptToolResultMaxChars * PROMPT_TOOL_RESULT_AGGREGATE_CAP_MULTIPLIER,
47264726
toolResultPromptProjectionState,
47274727
);
4728-
return providerPromptHistoryTruncation.truncatedCount > 0
4728+
return providerPromptHistoryTruncation.messages !== messages
47294729
? providerPromptHistoryTruncation.messages
47304730
: messages;
47314731
},

src/agents/embedded-agent-runner/tool-result-truncation.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,12 @@ export function truncateOversizedToolResultsInMessages(
366366
minKeepChars: RECOVERY_MIN_KEEP_CHARS,
367367
});
368368
if (plan.replacements.length === 0) {
369+
const projectedMessages = branch.map((entry) => entry.message as AgentMessage);
370+
const hasProjectedChanges = projectedMessages.some(
371+
(message, index) => message !== messages[index],
372+
);
369373
return {
370-
messages: branch.map((entry) => entry.message as AgentMessage),
374+
messages: hasProjectedChanges ? projectedMessages : messages,
371375
truncatedCount: 0,
372376
};
373377
}

0 commit comments

Comments
 (0)