langchain 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/dist/agents/ReactAgent.cjs +3 -2
- package/dist/agents/ReactAgent.cjs.map +1 -1
- package/dist/agents/ReactAgent.js +3 -2
- package/dist/agents/ReactAgent.js.map +1 -1
- package/dist/agents/middleware/contextEditing.d.cts.map +1 -1
- package/dist/agents/middleware/contextEditing.d.ts.map +1 -1
- package/dist/agents/middleware/dynamicSystemPrompt.d.cts.map +1 -1
- package/dist/agents/middleware/dynamicSystemPrompt.d.ts.map +1 -1
- package/dist/agents/middleware/hitl.d.cts.map +1 -1
- package/dist/agents/middleware/llmToolSelector.d.ts +4 -4
- package/dist/agents/middleware/llmToolSelector.d.ts.map +1 -1
- package/dist/agents/middleware/modelCallLimit.d.cts.map +1 -1
- package/dist/agents/middleware/summarization.cjs +64 -2
- package/dist/agents/middleware/summarization.cjs.map +1 -1
- package/dist/agents/middleware/summarization.d.cts.map +1 -1
- package/dist/agents/middleware/summarization.d.ts +7 -7
- package/dist/agents/middleware/summarization.d.ts.map +1 -1
- package/dist/agents/middleware/summarization.js +65 -3
- package/dist/agents/middleware/summarization.js.map +1 -1
- package/dist/agents/middleware/todoListMiddleware.d.cts.map +1 -1
- package/dist/agents/middleware/toolCallLimit.d.cts.map +1 -1
- package/dist/agents/middleware/types.d.cts.map +1 -1
- package/dist/agents/responses.cjs +16 -6
- package/dist/agents/responses.cjs.map +1 -1
- package/dist/agents/responses.d.cts.map +1 -1
- package/dist/agents/responses.js +16 -6
- package/dist/agents/responses.js.map +1 -1
- package/dist/agents/runtime.d.cts +1 -1
- package/dist/agents/runtime.d.cts.map +1 -1
- package/dist/agents/runtime.d.ts +1 -1
- package/dist/agents/runtime.d.ts.map +1 -1
- package/dist/agents/types.d.cts.map +1 -1
- package/dist/chat_models/universal.cjs +3 -2
- package/dist/chat_models/universal.cjs.map +1 -1
- package/dist/chat_models/universal.js +3 -2
- package/dist/chat_models/universal.js.map +1 -1
- package/dist/hub/index.cjs +8 -1
- package/dist/hub/index.cjs.map +1 -1
- package/dist/hub/index.d.cts +9 -0
- package/dist/hub/index.d.cts.map +1 -1
- package/dist/hub/index.d.ts +9 -0
- package/dist/hub/index.d.ts.map +1 -1
- package/dist/hub/index.js +8 -1
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/node.cjs +8 -1
- package/dist/hub/node.cjs.map +1 -1
- package/dist/hub/node.d.cts +9 -0
- package/dist/hub/node.d.cts.map +1 -1
- package/dist/hub/node.d.ts +9 -0
- package/dist/hub/node.d.ts.map +1 -1
- package/dist/hub/node.js +8 -1
- package/dist/hub/node.js.map +1 -1
- package/dist/load/index.cjs +5 -2
- package/dist/load/index.cjs.map +1 -1
- package/dist/load/index.d.cts +3 -1
- package/dist/load/index.d.cts.map +1 -1
- package/dist/load/index.d.ts +3 -1
- package/dist/load/index.d.ts.map +1 -1
- package/dist/load/index.js +5 -2
- package/dist/load/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarization.d.cts","names":["_langchain_core_messages0","__types_js11","z","BaseMessage","BaseLanguageModel","InferInteropZodInput","DEFAULT_SUMMARY_PROMPT","TokenCounter","Promise","contextSizeSchema","ZodNumber","ZodOptional","ZodTypeAny","ZodObject","ZodEffects","ContextSize","infer","keepSchema","KeepSize","contextSchema","_langchain_core_language_models_base0","BaseLanguageModelCallOptions","ZodTypeDef","ZodType","ZodArray","ZodUnion","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","getProfileLimits","summarizationMiddleware","AgentMiddleware"],"sources":["../../../src/agents/middleware/summarization.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { InferInteropZodInput } from \"@langchain/core/utils/types\";\nexport declare const DEFAULT_SUMMARY_PROMPT = \"<role>\\nContext Extraction Assistant\\n</role>\\n\\n<primary_objective>\\nYour sole objective in this task is to extract the highest quality/most relevant context from the conversation history below.\\n</primary_objective>\\n\\n<objective_information>\\nYou're nearing the total number of input tokens you can accept, so you must extract the highest quality/most relevant pieces of information from your conversation history.\\nThis context will then overwrite the conversation history presented below. Because of this, ensure the context you extract is only the most important information to your overall goal.\\n</objective_information>\\n\\n<instructions>\\nThe conversation history below will be replaced with the context you extract in this step. Because of this, you must do your very best to extract and record all of the most important context from the conversation history.\\nYou want to ensure that you don't repeat any actions you've already completed, so the context you extract from the conversation history should be focused on the most important information to your overall goal.\\n</instructions>\\n\\nThe user will message you with the full message history you'll be extracting context from, to then replace. Carefully read over it all, and think deeply about what information is most important to your overall goal that should be saved:\\n\\nWith all of this in mind, please carefully read over the entire conversation history, and extract the most important and relevant context to replace it so that you can free up space in the conversation history.\\nRespond ONLY with the extracted context. Do not include any additional information, or text before or after the extracted context.\\n\\n<messages>\\nMessages to summarize:\\n{messages}\\n</messages>\";\nexport type TokenCounter = (messages: BaseMessage[]) => number | Promise<number>;\nexport declare const contextSizeSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type ContextSize = z.infer<typeof contextSizeSchema>;\nexport declare const keepSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type KeepSize = z.infer<typeof keepSchema>;\ndeclare const contextSchema: z.ZodObject<{\n /**\n * Model to use for summarization\n */\n model: z.ZodType<string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>;\n /**\n * Trigger conditions for summarization.\n * Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).\n *\n * @example\n * ```ts\n * // Single condition: trigger if tokens >= 5000 AND messages >= 3\n * trigger: { tokens: 5000, messages: 3 }\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 }\n * ]\n * ```\n */\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n /**\n * Keep conditions for summarization\n */\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n /**\n * Token counter function to use for summarization\n */\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n /**\n * Summary prompt to use for summarization\n * @default {@link DEFAULT_SUMMARY_PROMPT}\n */\n summaryPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Number of tokens to trim to before summarizing\n */\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n /**\n * Prefix to add to the summary\n */\n summaryPrefix: z.ZodOptional<z.ZodString>;\n /**\n * @deprecated Use `trigger: { tokens: value }` instead.\n */\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n /**\n * @deprecated Use `keep: { messages: value }` instead.\n */\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}>;\nexport type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;\n/**\n * Get max input tokens from model profile or fallback to model name lookup\n */\nexport declare function getProfileLimits(input: BaseLanguageModel): number | undefined;\n/**\n * Summarization middleware that automatically summarizes conversation history when token limits are approached.\n *\n * This middleware monitors message token counts and automatically summarizes older\n * messages when a threshold is reached, preserving recent messages and maintaining\n * context continuity by ensuring AI/Tool message pairs remain together.\n *\n * @param options Configuration options for the summarization middleware\n * @returns A middleware instance\n *\n * @example\n * ```ts\n * import { summarizationMiddleware } from \"langchain\";\n * import { createAgent } from \"langchain\";\n *\n * // Single condition: trigger if tokens >= 4000 AND messages >= 10\n * const agent1 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: { tokens: 4000, messages: 10 },\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * const agent2 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 },\n * ],\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * ```\n */\nexport declare function summarizationMiddleware(options: SummarizationMiddlewareConfig): import(\"./types.js\").AgentMiddleware<undefined, z.ZodObject<{\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n summaryPrompt: z.ZodDefault<z.ZodString>;\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n summaryPrefix: z.ZodOptional<z.ZodString>;\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n} & {\n model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>>;\n}, \"strip\", z.ZodTypeAny, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}>, any>;\nexport {};\n//# sourceMappingURL=summarization.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"summarization.d.cts","names":["_langchain_core_messages0","__types_js8","z","BaseMessage","BaseLanguageModel","InferInteropZodInput","DEFAULT_SUMMARY_PROMPT","TokenCounter","Promise","contextSizeSchema","ZodNumber","ZodOptional","ZodTypeAny","ZodObject","ZodEffects","ContextSize","infer","keepSchema","KeepSize","contextSchema","_langchain_core_language_models_base0","BaseLanguageModelCallOptions","ZodTypeDef","ZodType","ZodArray","ZodUnion","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","getProfileLimits","summarizationMiddleware","AgentMiddleware"],"sources":["../../../src/agents/middleware/summarization.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { InferInteropZodInput } from \"@langchain/core/utils/types\";\nexport declare const DEFAULT_SUMMARY_PROMPT = \"<role>\\nContext Extraction Assistant\\n</role>\\n\\n<primary_objective>\\nYour sole objective in this task is to extract the highest quality/most relevant context from the conversation history below.\\n</primary_objective>\\n\\n<objective_information>\\nYou're nearing the total number of input tokens you can accept, so you must extract the highest quality/most relevant pieces of information from your conversation history.\\nThis context will then overwrite the conversation history presented below. Because of this, ensure the context you extract is only the most important information to your overall goal.\\n</objective_information>\\n\\n<instructions>\\nThe conversation history below will be replaced with the context you extract in this step. Because of this, you must do your very best to extract and record all of the most important context from the conversation history.\\nYou want to ensure that you don't repeat any actions you've already completed, so the context you extract from the conversation history should be focused on the most important information to your overall goal.\\n</instructions>\\n\\nThe user will message you with the full message history you'll be extracting context from, to then replace. Carefully read over it all, and think deeply about what information is most important to your overall goal that should be saved:\\n\\nWith all of this in mind, please carefully read over the entire conversation history, and extract the most important and relevant context to replace it so that you can free up space in the conversation history.\\nRespond ONLY with the extracted context. Do not include any additional information, or text before or after the extracted context.\\n\\n<messages>\\nMessages to summarize:\\n{messages}\\n</messages>\";\nexport type TokenCounter = (messages: BaseMessage[]) => number | Promise<number>;\nexport declare const contextSizeSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type ContextSize = z.infer<typeof contextSizeSchema>;\nexport declare const keepSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type KeepSize = z.infer<typeof keepSchema>;\ndeclare const contextSchema: z.ZodObject<{\n /**\n * Model to use for summarization\n */\n model: z.ZodType<string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>;\n /**\n * Trigger conditions for summarization.\n * Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).\n *\n * @example\n * ```ts\n * // Single condition: trigger if tokens >= 5000 AND messages >= 3\n * trigger: { tokens: 5000, messages: 3 }\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 }\n * ]\n * ```\n */\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n /**\n * Keep conditions for summarization\n */\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n /**\n * Token counter function to use for summarization\n */\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n /**\n * Summary prompt to use for summarization\n * @default {@link DEFAULT_SUMMARY_PROMPT}\n */\n summaryPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Number of tokens to trim to before summarizing\n */\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n /**\n * Prefix to add to the summary\n */\n summaryPrefix: z.ZodOptional<z.ZodString>;\n /**\n * @deprecated Use `trigger: { tokens: value }` instead.\n */\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n /**\n * @deprecated Use `keep: { messages: value }` instead.\n */\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}>;\nexport type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;\n/**\n * Get max input tokens from model profile or fallback to model name lookup\n */\nexport declare function getProfileLimits(input: BaseLanguageModel): number | undefined;\n/**\n * Summarization middleware that automatically summarizes conversation history when token limits are approached.\n *\n * This middleware monitors message token counts and automatically summarizes older\n * messages when a threshold is reached, preserving recent messages and maintaining\n * context continuity by ensuring AI/Tool message pairs remain together.\n *\n * @param options Configuration options for the summarization middleware\n * @returns A middleware instance\n *\n * @example\n * ```ts\n * import { summarizationMiddleware } from \"langchain\";\n * import { createAgent } from \"langchain\";\n *\n * // Single condition: trigger if tokens >= 4000 AND messages >= 10\n * const agent1 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: { tokens: 4000, messages: 10 },\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * const agent2 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 },\n * ],\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * ```\n */\nexport declare function summarizationMiddleware(options: SummarizationMiddlewareConfig): import(\"./types.js\").AgentMiddleware<undefined, z.ZodObject<{\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n summaryPrompt: z.ZodDefault<z.ZodString>;\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n summaryPrefix: z.ZodOptional<z.ZodString>;\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n} & {\n model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>>;\n}, \"strip\", z.ZodTypeAny, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}>, any>;\nexport {};\n//# sourceMappingURL=summarization.d.ts.map"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import * as _langchain_core_messages0 from "@langchain/core/messages";
|
|
|
3
3
|
import { BaseMessage } from "@langchain/core/messages";
|
|
4
4
|
import { z } from "zod/v3";
|
|
5
5
|
import { InferInteropZodInput } from "@langchain/core/utils/types";
|
|
6
|
-
import * as
|
|
6
|
+
import * as _langchain_core_language_models_base3 from "@langchain/core/language_models/base";
|
|
7
7
|
import { BaseLanguageModel } from "@langchain/core/language_models/base";
|
|
8
8
|
|
|
9
9
|
//#region src/agents/middleware/summarization.d.ts
|
|
@@ -71,7 +71,7 @@ declare const contextSchema: z.ZodObject<{
|
|
|
71
71
|
/**
|
|
72
72
|
* Model to use for summarization
|
|
73
73
|
*/
|
|
74
|
-
model: z.ZodType<string | BaseLanguageModel<any,
|
|
74
|
+
model: z.ZodType<string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>>;
|
|
75
75
|
/**
|
|
76
76
|
* Trigger conditions for summarization.
|
|
77
77
|
* Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).
|
|
@@ -203,7 +203,7 @@ declare const contextSchema: z.ZodObject<{
|
|
|
203
203
|
*/
|
|
204
204
|
messagesToKeep: z.ZodOptional<z.ZodNumber>;
|
|
205
205
|
}, "strip", z.ZodTypeAny, {
|
|
206
|
-
model: string | BaseLanguageModel<any,
|
|
206
|
+
model: string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>;
|
|
207
207
|
trigger?: {
|
|
208
208
|
fraction?: number | undefined;
|
|
209
209
|
tokens?: number | undefined;
|
|
@@ -225,7 +225,7 @@ declare const contextSchema: z.ZodObject<{
|
|
|
225
225
|
maxTokensBeforeSummary?: number | undefined;
|
|
226
226
|
messagesToKeep?: number | undefined;
|
|
227
227
|
}, {
|
|
228
|
-
model: string | BaseLanguageModel<any,
|
|
228
|
+
model: string | BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>;
|
|
229
229
|
trigger?: {
|
|
230
230
|
fraction?: number | undefined;
|
|
231
231
|
tokens?: number | undefined;
|
|
@@ -388,7 +388,7 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
388
388
|
maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;
|
|
389
389
|
messagesToKeep: z.ZodOptional<z.ZodNumber>;
|
|
390
390
|
} & {
|
|
391
|
-
model: z.ZodOptional<z.ZodType<BaseLanguageModel<any,
|
|
391
|
+
model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions>>>;
|
|
392
392
|
}, "strip", z.ZodTypeAny, {
|
|
393
393
|
trigger?: {
|
|
394
394
|
fraction?: number | undefined;
|
|
@@ -410,7 +410,7 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
410
410
|
summaryPrefix?: string | undefined;
|
|
411
411
|
maxTokensBeforeSummary?: number | undefined;
|
|
412
412
|
messagesToKeep?: number | undefined;
|
|
413
|
-
model?: BaseLanguageModel<any,
|
|
413
|
+
model?: BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions> | undefined;
|
|
414
414
|
}, {
|
|
415
415
|
trigger?: {
|
|
416
416
|
fraction?: number | undefined;
|
|
@@ -432,7 +432,7 @@ declare function summarizationMiddleware(options: SummarizationMiddlewareConfig)
|
|
|
432
432
|
summaryPrefix?: string | undefined;
|
|
433
433
|
maxTokensBeforeSummary?: number | undefined;
|
|
434
434
|
messagesToKeep?: number | undefined;
|
|
435
|
-
model?: BaseLanguageModel<any,
|
|
435
|
+
model?: BaseLanguageModel<any, _langchain_core_language_models_base3.BaseLanguageModelCallOptions> | undefined;
|
|
436
436
|
}>, any>;
|
|
437
437
|
//#endregion
|
|
438
438
|
export { ContextSize, KeepSize, SummarizationMiddlewareConfig, TokenCounter, summarizationMiddleware };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarization.d.ts","names":["_langchain_core_messages0","__types_js8","z","BaseMessage","BaseLanguageModel","InferInteropZodInput","DEFAULT_SUMMARY_PROMPT","TokenCounter","Promise","contextSizeSchema","ZodNumber","ZodOptional","ZodTypeAny","ZodObject","ZodEffects","ContextSize","infer","keepSchema","KeepSize","contextSchema","_langchain_core_language_models_base0","BaseLanguageModelCallOptions","ZodTypeDef","ZodType","ZodArray","ZodUnion","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","getProfileLimits","summarizationMiddleware","AgentMiddleware"],"sources":["../../../src/agents/middleware/summarization.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { InferInteropZodInput } from \"@langchain/core/utils/types\";\nexport declare const DEFAULT_SUMMARY_PROMPT = \"<role>\\nContext Extraction Assistant\\n</role>\\n\\n<primary_objective>\\nYour sole objective in this task is to extract the highest quality/most relevant context from the conversation history below.\\n</primary_objective>\\n\\n<objective_information>\\nYou're nearing the total number of input tokens you can accept, so you must extract the highest quality/most relevant pieces of information from your conversation history.\\nThis context will then overwrite the conversation history presented below. Because of this, ensure the context you extract is only the most important information to your overall goal.\\n</objective_information>\\n\\n<instructions>\\nThe conversation history below will be replaced with the context you extract in this step. Because of this, you must do your very best to extract and record all of the most important context from the conversation history.\\nYou want to ensure that you don't repeat any actions you've already completed, so the context you extract from the conversation history should be focused on the most important information to your overall goal.\\n</instructions>\\n\\nThe user will message you with the full message history you'll be extracting context from, to then replace. Carefully read over it all, and think deeply about what information is most important to your overall goal that should be saved:\\n\\nWith all of this in mind, please carefully read over the entire conversation history, and extract the most important and relevant context to replace it so that you can free up space in the conversation history.\\nRespond ONLY with the extracted context. Do not include any additional information, or text before or after the extracted context.\\n\\n<messages>\\nMessages to summarize:\\n{messages}\\n</messages>\";\nexport type TokenCounter = (messages: BaseMessage[]) => number | Promise<number>;\nexport declare const contextSizeSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type ContextSize = z.infer<typeof contextSizeSchema>;\nexport declare const keepSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type KeepSize = z.infer<typeof keepSchema>;\ndeclare const contextSchema: z.ZodObject<{\n /**\n * Model to use for summarization\n */\n model: z.ZodType<string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>;\n /**\n * Trigger conditions for summarization.\n * Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).\n *\n * @example\n * ```ts\n * // Single condition: trigger if tokens >= 5000 AND messages >= 3\n * trigger: { tokens: 5000, messages: 3 }\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 }\n * ]\n * ```\n */\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n /**\n * Keep conditions for summarization\n */\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n /**\n * Token counter function to use for summarization\n */\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n /**\n * Summary prompt to use for summarization\n * @default {@link DEFAULT_SUMMARY_PROMPT}\n */\n summaryPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Number of tokens to trim to before summarizing\n */\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n /**\n * Prefix to add to the summary\n */\n summaryPrefix: z.ZodOptional<z.ZodString>;\n /**\n * @deprecated Use `trigger: { tokens: value }` instead.\n */\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n /**\n * @deprecated Use `keep: { messages: value }` instead.\n */\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}>;\nexport type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;\n/**\n * Get max input tokens from model profile or fallback to model name lookup\n */\nexport declare function getProfileLimits(input: BaseLanguageModel): number | undefined;\n/**\n * Summarization middleware that automatically summarizes conversation history when token limits are approached.\n *\n * This middleware monitors message token counts and automatically summarizes older\n * messages when a threshold is reached, preserving recent messages and maintaining\n * context continuity by ensuring AI/Tool message pairs remain together.\n *\n * @param options Configuration options for the summarization middleware\n * @returns A middleware instance\n *\n * @example\n * ```ts\n * import { summarizationMiddleware } from \"langchain\";\n * import { createAgent } from \"langchain\";\n *\n * // Single condition: trigger if tokens >= 4000 AND messages >= 10\n * const agent1 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: { tokens: 4000, messages: 10 },\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * const agent2 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 },\n * ],\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * ```\n */\nexport declare function summarizationMiddleware(options: SummarizationMiddlewareConfig): import(\"./types.js\").AgentMiddleware<undefined, z.ZodObject<{\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n summaryPrompt: z.ZodDefault<z.ZodString>;\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n summaryPrefix: z.ZodOptional<z.ZodString>;\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n} & {\n model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>>;\n}, \"strip\", z.ZodTypeAny, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}>, any>;\nexport {};\n//# sourceMappingURL=summarization.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"summarization.d.ts","names":["_langchain_core_messages0","__types_js8","z","BaseMessage","BaseLanguageModel","InferInteropZodInput","DEFAULT_SUMMARY_PROMPT","TokenCounter","Promise","contextSizeSchema","ZodNumber","ZodOptional","ZodTypeAny","ZodObject","ZodEffects","ContextSize","infer","keepSchema","KeepSize","contextSchema","_langchain_core_language_models_base3","BaseLanguageModelCallOptions","ZodTypeDef","ZodType","ZodArray","ZodUnion","MessageStructure","MessageType","ZodUnknown","ZodTuple","ZodPromise","ZodFunction","ZodString","ZodDefault","SummarizationMiddlewareConfig","getProfileLimits","summarizationMiddleware","AgentMiddleware"],"sources":["../../../src/agents/middleware/summarization.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { InferInteropZodInput } from \"@langchain/core/utils/types\";\nexport declare const DEFAULT_SUMMARY_PROMPT = \"<role>\\nContext Extraction Assistant\\n</role>\\n\\n<primary_objective>\\nYour sole objective in this task is to extract the highest quality/most relevant context from the conversation history below.\\n</primary_objective>\\n\\n<objective_information>\\nYou're nearing the total number of input tokens you can accept, so you must extract the highest quality/most relevant pieces of information from your conversation history.\\nThis context will then overwrite the conversation history presented below. Because of this, ensure the context you extract is only the most important information to your overall goal.\\n</objective_information>\\n\\n<instructions>\\nThe conversation history below will be replaced with the context you extract in this step. Because of this, you must do your very best to extract and record all of the most important context from the conversation history.\\nYou want to ensure that you don't repeat any actions you've already completed, so the context you extract from the conversation history should be focused on the most important information to your overall goal.\\n</instructions>\\n\\nThe user will message you with the full message history you'll be extracting context from, to then replace. Carefully read over it all, and think deeply about what information is most important to your overall goal that should be saved:\\n\\nWith all of this in mind, please carefully read over the entire conversation history, and extract the most important and relevant context to replace it so that you can free up space in the conversation history.\\nRespond ONLY with the extracted context. Do not include any additional information, or text before or after the extracted context.\\n\\n<messages>\\nMessages to summarize:\\n{messages}\\n</messages>\";\nexport type TokenCounter = (messages: BaseMessage[]) => number | Promise<number>;\nexport declare const contextSizeSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type ContextSize = z.infer<typeof contextSizeSchema>;\nexport declare const keepSchema: z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n}>;\nexport type KeepSize = z.infer<typeof keepSchema>;\ndeclare const contextSchema: z.ZodObject<{\n /**\n * Model to use for summarization\n */\n model: z.ZodType<string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>;\n /**\n * Trigger conditions for summarization.\n * Can be a single condition object (all properties must be met) or an array of conditions (any condition must be met).\n *\n * @example\n * ```ts\n * // Single condition: trigger if tokens >= 5000 AND messages >= 3\n * trigger: { tokens: 5000, messages: 3 }\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 }\n * ]\n * ```\n */\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n /**\n * Keep conditions for summarization\n */\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n /**\n * Token counter function to use for summarization\n */\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n /**\n * Summary prompt to use for summarization\n * @default {@link DEFAULT_SUMMARY_PROMPT}\n */\n summaryPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Number of tokens to trim to before summarizing\n */\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n /**\n * Prefix to add to the summary\n */\n summaryPrefix: z.ZodOptional<z.ZodString>;\n /**\n * @deprecated Use `trigger: { tokens: value }` instead.\n */\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n /**\n * @deprecated Use `keep: { messages: value }` instead.\n */\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}, {\n model: string | BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>;\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n}>;\nexport type SummarizationMiddlewareConfig = InferInteropZodInput<typeof contextSchema>;\n/**\n * Get max input tokens from model profile or fallback to model name lookup\n */\nexport declare function getProfileLimits(input: BaseLanguageModel): number | undefined;\n/**\n * Summarization middleware that automatically summarizes conversation history when token limits are approached.\n *\n * This middleware monitors message token counts and automatically summarizes older\n * messages when a threshold is reached, preserving recent messages and maintaining\n * context continuity by ensuring AI/Tool message pairs remain together.\n *\n * @param options Configuration options for the summarization middleware\n * @returns A middleware instance\n *\n * @example\n * ```ts\n * import { summarizationMiddleware } from \"langchain\";\n * import { createAgent } from \"langchain\";\n *\n * // Single condition: trigger if tokens >= 4000 AND messages >= 10\n * const agent1 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: { tokens: 4000, messages: 10 },\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * // Multiple conditions: trigger if (tokens >= 5000 AND messages >= 3) OR (tokens >= 3000 AND messages >= 6)\n * const agent2 = createAgent({\n * llm: model,\n * tools: [getWeather],\n * middleware: [\n * summarizationMiddleware({\n * model: new ChatOpenAI({ model: \"gpt-4o\" }),\n * trigger: [\n * { tokens: 5000, messages: 3 },\n * { tokens: 3000, messages: 6 },\n * ],\n * keep: { messages: 20 },\n * })\n * ],\n * });\n *\n * ```\n */\nexport declare function summarizationMiddleware(options: SummarizationMiddlewareConfig): import(\"./types.js\").AgentMiddleware<undefined, z.ZodObject<{\n trigger: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, z.ZodArray<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to use as the trigger\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to use as the trigger\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of messages to use as the trigger\n */\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, \"many\">]>>;\n keep: z.ZodOptional<z.ZodEffects<z.ZodObject<{\n /**\n * Fraction of the model's context size to keep\n */\n fraction: z.ZodOptional<z.ZodNumber>;\n /**\n * Number of tokens to keep\n */\n tokens: z.ZodOptional<z.ZodNumber>;\n messages: z.ZodOptional<z.ZodNumber>;\n }, \"strip\", z.ZodTypeAny, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }, {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }>>;\n tokenCounter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodType<BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>, z.ZodTypeDef, BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, \"many\">], z.ZodUnknown>, z.ZodUnion<[z.ZodNumber, z.ZodPromise<z.ZodNumber>]>>>;\n summaryPrompt: z.ZodDefault<z.ZodString>;\n trimTokensToSummarize: z.ZodOptional<z.ZodNumber>;\n summaryPrefix: z.ZodOptional<z.ZodString>;\n maxTokensBeforeSummary: z.ZodOptional<z.ZodNumber>;\n messagesToKeep: z.ZodOptional<z.ZodNumber>;\n} & {\n model: z.ZodOptional<z.ZodType<BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>, z.ZodTypeDef, BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions>>>;\n}, \"strip\", z.ZodTypeAny, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt: string;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}, {\n trigger?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n }[] | {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n keep?: {\n fraction?: number | undefined;\n tokens?: number | undefined;\n messages?: number | undefined;\n } | undefined;\n tokenCounter?: ((args_0: BaseMessage<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>[], ...args: unknown[]) => number | Promise<number>) | undefined;\n summaryPrompt?: string | undefined;\n trimTokensToSummarize?: number | undefined;\n summaryPrefix?: string | undefined;\n maxTokensBeforeSummary?: number | undefined;\n messagesToKeep?: number | undefined;\n model?: BaseLanguageModel<any, import(\"@langchain/core/language_models/base\").BaseLanguageModelCallOptions> | undefined;\n}>, any>;\nexport {};\n//# sourceMappingURL=summarization.d.ts.map"],"mappings":";;;;;;;;;KAKYO,YAAAA,cAA0BJ,2BAA2BK;cAC5CC,mBAAmBP,CAAAA,CAAEY,WAAWZ,CAAAA,CAAEW;;;AADvD;EACqBJ,QAAAA,EAIPP,CAAAA,CAAES,WAyBd,CAzB0BT,CAAAA,CAAEQ,SAyB5B,CAAA;EAzB4BA;;;EAIhBC,MAAAA,EAAFT,CAAAA,CAAES,WAAAA,CAAYT,CAAAA,CAAEQ,SAAdC,CAAAA;EAIgBD;;;EAZyBG,QAAAA,EAYzCX,CAAAA,CAAES,WAZuCE,CAY3BX,CAAAA,CAAEQ,SAZyBG,CAAAA;CAAfX,EAAEY,OAAAA,EAa9BZ,CAAAA,CAAEU,UAb4BE,EAAAA;EAAU,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EA8BxCC,MAAAA,CAAAA,EAAAA,MAAW,GAAA,SAAkBN;EACpBQ,QAAAA,CAAAA,EAAAA,MA0BnB,GAAA,SAAA;CAtB0Bf,EAAEQ;EAAdC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAIYD,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAdC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CACcT,CAAAA,EAAEQ;EAAdC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EACFC,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAVkCC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAfX,EAAEY;EAAU,QAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EA2BjCI,MAAAA,CAAAA,EAAAA,MAAQ,GAAA,SAAkBD;EACxBE,QAAAA,CAAAA,EAAAA,MAmLZ,GAAA,SAAA;CAAAC,CAAAA;AA/K4BhB,KAjClBW,WAAAA,GAAcb,CAAAA,CAAEc,KAiCEZ,CAAAA,OAjCWK,iBAiCXL,CAAAA;AAAuGkB,cAhChHL,UAgCgHK,EAhCpGpB,CAAAA,CAAEY,UAgCkGQ,CAhCvFpB,CAAAA,CAAEW,SAgCqFS,CAAAA;EAAUF;;;EAqB7GV,QAAAA,EAjDpBR,CAAAA,CAAES,WAiDkBD,CAjDNR,CAAAA,CAAEQ,SAiDIA,CAAAA;EAAdC;;;EAQcD,MAAAA,EArDtBR,CAAAA,CAAES,WAqDoBD,CArDRR,CAAAA,CAAEQ,SAqDMA,CAAAA;EAAdC,QAAAA,EApDNT,CAAAA,CAAES,WAoDIA,CApDQT,CAAAA,CAAEQ,SAoDVC,CAAAA;CACJT,EAAEU,OAAAA,EApDNV,CAAAA,CAAEU,UAoDIA,EAAAA;EAboCC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAbC,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAiCPJ,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAhBR,EAAES;EAIYD,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAdC,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAIgBD,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAhBR,CAAAA,EAAES;EACFC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAbgBC,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAbC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAbZ,EAAEsB;EA7BmBC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAdd,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAkEmBD,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;CAAhBR,CAAAA;AAIcQ,KA5FpBQ,QAAAA,GAAWhB,CAAAA,CAAEc,KA4FON,CAAAA,OA5FMO,UA4FNP,CAAAA;cA3FlBS,aA2FIR,EA3FWT,CAAAA,CAAEW,SA2FbF,CAAAA;EACgBD;;;EATKG,KAAAA,EA/E5BX,CAAAA,CAAEqB,OA+E0BV,CAAAA,MAAAA,GA/ETT,iBA+ESS,CAAAA,GAAAA,EAgGrCO,qCAAAA,CA/KkGC,4BAAAA,CA+E7DR,EA/E4FX,CAAAA,CAAEoB,UA+E9FT,EAAAA,MAAAA,GA/EmHT,iBA+EnHS,CAAAA,GAAAA,EA/EwGO,qCAAAA,CAAiFC,4BAAAA,CA+EzLR,CAAAA;EAAbC;;;;;;;;;;;;;;;;EA8BmUW,OAAAA,EA5FhVvB,CAAAA,CAAES,WA4F8Uc,CA5FlUvB,CAAAA,CAAEuB,QA4FgUA,CAAAA,CA5FtTvB,CAAAA,CAAEY,UA4FoTW,CA5FzSvB,CAAAA,CAAEW,SA4FuSY,CAAAA;IAA3TM;;;IAKbE,QAAAA,EA7FH/B,CAAAA,CAAES,WA6FCsB,CA7FW/B,CAAAA,CAAEQ,SA6FbuB,CAAAA;IAIsBvB;;;IAItBC,MAAAA,EAjGLT,CAAAA,CAAES,WAiGGA,CAjGST,CAAAA,CAAEQ,SAiGXC,CAAAA;IAIuBD;;;IAItBC,QAAAA,EArGJT,CAAAA,CAAES,WAqGEA,CArGUT,CAAAA,CAAEQ,SAqGZC,CAAAA;EACRC,CAAAA,EAAAA,OAAAA,EArGEV,CAAAA,CAAEU,UAqGJA,EAAAA;IAAUQ,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IACJhB,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAiBJ,QAAAA,CAAAA,EAAAA,MAAAA,GAeuC0B,SAAAA;EAAgB1B,CAAAA,EAAAA;IAA/DG,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAoJK,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAOY,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAOpKhB,CAAAA,CAAAA,EAAAA;IAAiBJ,QAAAA,CAAAA,EAAAA,MAAAA,GAeuC0B,SAAAA;IAAgB1B,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAqC2B;IAApGxB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAoJK,CAAAA,EAAAA;IA7KlJK,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAS,MAAA,CAAA,EAAA,MAAA,GAAA,SAAA;IAoL5BqB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAA6B;EAmDjBE,CAAAA,CAAAA,EArLhBlC,CAAAA,CAAEsB,QAqLcY,CArLLlC,CAAAA,CAAEY,UAqL0B,CArLfZ,CAAAA,CAAEW,SAqLa,CAAA;IAAUqB;;;IASzBxB,QAAAA,EA1LdR,CAAAA,CAAES,WA0LYD,CA1LAR,CAAAA,CAAEQ,SA0LFA,CAAAA;IAAdC;;;IAKAC,MAAAA,EA3LFV,CAAAA,CAAES,WA2LAC,CA3LYV,CAAAA,CAAEQ,SA2LdE,CAAAA;IAboCC;;;IAiClCF,QAAAA,EA3MFT,CAAAA,CAAES,WA2MAA,CA3MYT,CAAAA,CAAEQ,SA2MdC,CAAAA;EAIYD,CAAAA,EAAAA,OAAAA,EA9MhBR,CAAAA,CAAEU,UA8McF,EAAAA;IAAdC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAIgBD,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAdC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EACFC,CAAAA,EAAAA;IAbgBC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAbC,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAXU,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EA7BmBC,CAAAA,CAAAA,EAAAA;IAAdd,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IA+DmBD,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAdC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAIYD,CAAAA,EAAAA;IAAdC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IACgBD,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAdC,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EACFC,CAAAA,CAAAA,EAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA;EAVqBC;;;EAAhBb,IAAAA,EAhNbE,CAAAA,CAAES,WAgNWX,CAhNCE,CAAAA,CAAEY,UA2OoGY,CA3OzFxB,CAAAA,CAAEW,SA2OuFa,CAAAA;IAAgB1B;;;IAA+DA,QAAAA,EAvO3LE,CAAAA,CAAES,WAuO0Oe,CAvO9NxB,CAAAA,CAAEQ,SAuO4NgB,CAAAA;IAAgB1B;;;IAAlNwB,MAAAA,EAnO5CtB,CAAAA,CAAES,WAmO0Ca,CAnO9BtB,CAAAA,CAAEQ,SAmO4Bc,CAAAA;IAAkRI,QAAAA,EAlO5T1B,CAAAA,CAAES,WAkO0TiB,CAlO9S1B,CAAAA,CAAEQ,SAkO4SkB,CAAAA;EAA9RC,CAAAA,EAAAA,OAAAA,EAjOhC3B,CAAAA,CAAEU,UAiO8BiB,EAAAA;IAAyTnB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAA0BA,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAboB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAzBL,CAAAA,EAAAA;IAA3TM,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAdpB,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IACcqB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAbC,CAAAA,CAAAA,EAAAA;IACsBvB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAdC,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IACMqB,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAdrB,CAAAA,EAAAA;IACuBD,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IAAdC,MAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;IACMD,QAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAdC,CAAAA,CAAAA,CAAAA;EAAWS;;;EAEmHA,YAAAA,EApNlIlB,CAAAA,CAAES,WAoNgIS,CApNpHlB,CAAAA,CAAE6B,WAoN0LV,CApN9KnB,CAAAA,CAAE2B,QAoN4KR,CAAAA,CApNlKnB,CAAAA,CAAEsB,QAoNgKH,CApNvJnB,CAAAA,CAAEqB,OAoNqJF,CApN7IlB,WAoN6IkB,CAlPrMrB,yBAAAA,CA8BuG0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,CAoNyCN,EApN3BnB,CAAAA,CAAEoB,UAoNyBD,EApNblB,WAoNakB,CApNfrB,yBAAAA,CAAiD0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,CAoNvFN,CAAAA,EAAAA,MAAAA,CAAAA,CAAAA,EApNgHnB,CAAAA,CAAE0B,UAoNlHP,CAAAA,EApN+HnB,CAAAA,CAAEuB,QAoNjIJ,CAAAA,CApN2InB,CAAAA,CAAEQ,SAoN7IW,EApNwJnB,CAAAA,CAAE4B,UAoN1JT,CApNqKnB,CAAAA,CAAEQ,SAoNvKW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;EAAtEjB;;;;EAC9HJ,aAAAA,EAhNLE,CAAAA,CAAE+B,UA+NuDP,CA/N5CxB,CAAAA,CAAE8B,SA+N0CN,CAAAA;EAAgB1B;;;EAA4FoB,qBAAAA,EA3N7JlB,CAAAA,CAAES,WAiOqDU,CAjOzCnB,CAAAA,CAAEQ,SAiOuCW,CAAAA;EAAtEjB;;;EAgBiBD,aAAAA,EA7OVD,CAAAA,CAAES,WA6OQR,CA7OID,CAAAA,CAAE8B,SA6ON7B,CAAAA;EAAoJK;;;EApItCK,sBAAAA,EArG/GX,CAAAA,CAAES,WAqG6GE,CArGjGX,CAAAA,CAAEQ,SAqG+FG,CAAAA;;AAAd;;kBAjGzGX,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;YACxBR,CAAAA,CAAEU;kBACMR,uBADIgB,qCAAAA,CACkEC,4BAAAA;;;;;;;;;;;;;;;2BAe7DlB,YAfQH,yBAAAA,CAeuC0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,qCAAgDnB;;;;;;;kBAO7JJ,uBAPoKgB,qCAAAA,CAO9FC,4BAAAA;;;;;;;;;;;;;;;2BAe7DlB,YAfQH,yBAAAA,CAeuC0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,qCAAgDnB;;;;;;;KAOrK0B,6BAAAA,GAAgC7B,4BAA4Bc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmDhDiB,uBAAAA,UAAiCF,2DAAgFhC,CAAAA,CAAEW;WAC9HX,CAAAA,CAAES,YAAYT,CAAAA,CAAEuB,UAAUvB,CAAAA,CAAEY,WAAWZ,CAAAA,CAAEW;;;;cAIpCX,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;YAIlBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;cAIdR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;cAClBR,CAAAA,CAAEU;;;;;;;;;;;;;;;;MAgBVV,CAAAA,CAAEsB,SAAStB,CAAAA,CAAEY,WAAWZ,CAAAA,CAAEW;;;;cAIhBX,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;YAIlBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;cAIdR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;cAClBR,CAAAA,CAAEU;;;;;;;;;;;;;;;;;QAiBRV,CAAAA,CAAES,YAAYT,CAAAA,CAAEY,WAAWZ,CAAAA,CAAEW;;;;cAIrBX,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;;;YAIlBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;cACdR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;cAClBR,CAAAA,CAAEU;;;;;;;;;;;;;;;;;gBAiBAV,CAAAA,CAAES,YAAYT,CAAAA,CAAE6B,YAAY7B,CAAAA,CAAE2B,UAAU3B,CAAAA,CAAEsB,SAAStB,CAAAA,CAAEqB,QAAQpB,YA3BxDH,yBAAAA,CA2BuG0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,GAAczB,CAAAA,CAAEoB,YAAYnB,YAAFH,yBAAAA,CAAiD0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,cAAyBzB,CAAAA,CAAE0B,aAAa1B,CAAAA,CAAEuB,UAAUvB,CAAAA,CAAEQ,WAAWR,CAAAA,CAAE4B,WAAW5B,CAAAA,CAAEQ;iBAChXR,CAAAA,CAAE+B,WAAW/B,CAAAA,CAAE8B;yBACP9B,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;iBACxBR,CAAAA,CAAES,YAAYT,CAAAA,CAAE8B;0BACP9B,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;kBACxBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEQ;;SAEzBR,CAAAA,CAAES,YAAYT,CAAAA,CAAEqB,QAAQnB,uBAFFgB,qCAAAA,CAEwEC,4BAAAA,GAA+BnB,CAAAA,CAAEoB,YAAYlB,uBAAFgB,qCAAAA,CAAwEC,4BAAAA;YAChNnB,CAAAA,CAAEU;;;;;;;;;;;;;;;2BAeeT,YAfLH,yBAAAA,CAeoD0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,qCAAgDnB;;;;;;UAMrKJ,uBAN4KgB,qCAAAA,CAMtGC,4BAAAA;;;;;;;;;;;;;;;;2BAgBrDlB,YAhBAH,yBAAAA,CAgB+C0B,gBAAAA,EAAgB1B,yBAAAA,CAAqC2B,WAAAA,qCAAgDnB;;;;;;UAMrKJ,uBAN4KgB,qCAAAA,CAMtGC,4BAAAA"}
|
|
@@ -2,7 +2,7 @@ import { initChatModel } from "../../chat_models/universal.js";
|
|
|
2
2
|
import { hasToolCalls } from "../utils.js";
|
|
3
3
|
import { countTokensApproximately } from "./utils.js";
|
|
4
4
|
import { createMiddleware } from "../middleware.js";
|
|
5
|
-
import { AIMessage, HumanMessage, RemoveMessage, SystemMessage, ToolMessage, trimMessages } from "@langchain/core/messages";
|
|
5
|
+
import { AIMessage, HumanMessage, RemoveMessage, SystemMessage, ToolMessage, getBufferString, trimMessages } from "@langchain/core/messages";
|
|
6
6
|
import { REMOVE_ALL_MESSAGES } from "@langchain/langgraph";
|
|
7
7
|
import { z } from "zod/v3";
|
|
8
8
|
import { interopSafeParse } from "@langchain/core/utils/types";
|
|
@@ -346,7 +346,17 @@ async function findTokenBasedCutoff(messages, keep, tokenCounter, model) {
|
|
|
346
346
|
cutoffCandidate = messages.length - 1;
|
|
347
347
|
}
|
|
348
348
|
/**
|
|
349
|
-
* Find safe cutoff point that preserves
|
|
349
|
+
* Find safe cutoff point that preserves AI/Tool pairs.
|
|
350
|
+
* If cutoff lands on ToolMessage, move backward to include the AIMessage.
|
|
351
|
+
*/
|
|
352
|
+
const safeCutoff = findSafeCutoffPoint(messages, cutoffCandidate);
|
|
353
|
+
/**
|
|
354
|
+
* If findSafeCutoffPoint moved forward (fallback case), verify it's safe.
|
|
355
|
+
* If it moved backward, we already have a safe point.
|
|
356
|
+
*/
|
|
357
|
+
if (safeCutoff <= cutoffCandidate) return safeCutoff;
|
|
358
|
+
/**
|
|
359
|
+
* Fallback: iterate backward to find a safe cutoff
|
|
350
360
|
*/
|
|
351
361
|
for (let i = cutoffCandidate; i >= 0; i--) if (isSafeCutoffPoint(messages, i)) return i;
|
|
352
362
|
return 0;
|
|
@@ -357,6 +367,19 @@ async function findTokenBasedCutoff(messages, keep, tokenCounter, model) {
|
|
|
357
367
|
function findSafeCutoff(messages, messagesToKeep) {
|
|
358
368
|
if (messages.length <= messagesToKeep) return 0;
|
|
359
369
|
const targetCutoff = messages.length - messagesToKeep;
|
|
370
|
+
/**
|
|
371
|
+
* First, try to find a safe cutoff point using findSafeCutoffPoint.
|
|
372
|
+
* This handles the case where cutoff lands on a ToolMessage by moving
|
|
373
|
+
* backward to include the corresponding AIMessage.
|
|
374
|
+
*/
|
|
375
|
+
const safeCutoff = findSafeCutoffPoint(messages, targetCutoff);
|
|
376
|
+
/**
|
|
377
|
+
* If findSafeCutoffPoint moved backward (found matching AIMessage), use it.
|
|
378
|
+
*/
|
|
379
|
+
if (safeCutoff <= targetCutoff) return safeCutoff;
|
|
380
|
+
/**
|
|
381
|
+
* Fallback: iterate backward to find a safe cutoff
|
|
382
|
+
*/
|
|
360
383
|
for (let i = targetCutoff; i >= 0; i--) if (isSafeCutoffPoint(messages, i)) return i;
|
|
361
384
|
return 0;
|
|
362
385
|
}
|
|
@@ -390,6 +413,34 @@ function extractToolCallIds(aiMessage) {
|
|
|
390
413
|
return toolCallIds;
|
|
391
414
|
}
|
|
392
415
|
/**
|
|
416
|
+
* Find a safe cutoff point that doesn't split AI/Tool message pairs.
|
|
417
|
+
*
|
|
418
|
+
* If the message at `cutoffIndex` is a `ToolMessage`, search backward for the
|
|
419
|
+
* `AIMessage` containing the corresponding `tool_calls` and adjust the cutoff to
|
|
420
|
+
* include it. This ensures tool call requests and responses stay together.
|
|
421
|
+
*
|
|
422
|
+
* Falls back to advancing forward past `ToolMessage` objects only if no matching
|
|
423
|
+
* `AIMessage` is found (edge case).
|
|
424
|
+
*/
|
|
425
|
+
function findSafeCutoffPoint(messages, cutoffIndex) {
|
|
426
|
+
if (cutoffIndex >= messages.length || !ToolMessage.isInstance(messages[cutoffIndex])) return cutoffIndex;
|
|
427
|
+
const toolCallIds = /* @__PURE__ */ new Set();
|
|
428
|
+
let idx = cutoffIndex;
|
|
429
|
+
while (idx < messages.length && ToolMessage.isInstance(messages[idx])) {
|
|
430
|
+
const toolMsg = messages[idx];
|
|
431
|
+
if (toolMsg.tool_call_id) toolCallIds.add(toolMsg.tool_call_id);
|
|
432
|
+
idx++;
|
|
433
|
+
}
|
|
434
|
+
for (let i = cutoffIndex - 1; i >= 0; i--) {
|
|
435
|
+
const msg = messages[i];
|
|
436
|
+
if (AIMessage.isInstance(msg) && hasToolCalls(msg)) {
|
|
437
|
+
const aiToolCallIds = extractToolCallIds(msg);
|
|
438
|
+
for (const id of toolCallIds) if (aiToolCallIds.has(id)) return i;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
return idx;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
393
444
|
* Check if cutoff separates an AI message from its corresponding tool messages
|
|
394
445
|
*/
|
|
395
446
|
function cutoffSeparatesToolPair(messages, aiMessageIndex, cutoffIndex, toolCallIds) {
|
|
@@ -410,8 +461,19 @@ async function createSummary(messagesToSummarize, model, summaryPrompt, tokenCou
|
|
|
410
461
|
if (!messagesToSummarize.length) return "No previous conversation history.";
|
|
411
462
|
const trimmedMessages = await trimMessagesForSummary(messagesToSummarize, tokenCounter, trimTokensToSummarize);
|
|
412
463
|
if (!trimmedMessages.length) return "Previous conversation was too long to summarize.";
|
|
464
|
+
/**
|
|
465
|
+
* Format messages using getBufferString to avoid token inflation from metadata
|
|
466
|
+
* when str() / JSON.stringify is called on message objects.
|
|
467
|
+
* This produces compact output like:
|
|
468
|
+
* ```
|
|
469
|
+
* Human: What's the weather?
|
|
470
|
+
* AI: Let me check...[tool_calls]
|
|
471
|
+
* Tool: 72°F and sunny
|
|
472
|
+
* ```
|
|
473
|
+
*/
|
|
474
|
+
const formattedMessages = getBufferString(trimmedMessages);
|
|
413
475
|
try {
|
|
414
|
-
const formattedPrompt = summaryPrompt.replace("{messages}",
|
|
476
|
+
const formattedPrompt = summaryPrompt.replace("{messages}", formattedMessages);
|
|
415
477
|
/**
|
|
416
478
|
* Invoke the model with an empty callbacks array to prevent the internal
|
|
417
479
|
* summarization call from being streamed to the UI. This ensures the
|