feat: Auto-compact workflow builder conversation history (no-changelog) (#18083)

This commit is contained in:
Eugene
2025-08-08 14:18:02 +02:00
committed by GitHub
parent 3b701b15d6
commit c896bb2b4a
10 changed files with 383 additions and 42 deletions

View File

@@ -0,0 +1,34 @@
import { AIMessage } from '@langchain/core/messages';
type AIMessageWithUsageMetadata = AIMessage & {
response_metadata: {
usage: {
input_tokens: number;
output_tokens: number;
};
};
};
export interface TokenUsage {
input_tokens: number;
output_tokens: number;
}
/**
* Extracts token usage information from the last AI assistant message
*/
export function extractLastTokenUsage(messages: unknown[]): TokenUsage | undefined {
const lastAiAssistantMessage = messages.findLast(
(m): m is AIMessageWithUsageMetadata =>
m instanceof AIMessage &&
m.response_metadata?.usage !== undefined &&
'input_tokens' in m.response_metadata.usage &&
'output_tokens' in m.response_metadata.usage,
);
if (!lastAiAssistantMessage) {
return undefined;
}
return lastAiAssistantMessage.response_metadata.usage;
}