import type { Compressor } from '../context-compression/compressor/compressor'; import type { CompressionStrategy } from '../context-compression/strategy/compression-strategy'; import type { ManagedReActAgentInterceptor } from '../managed-interceptor'; import type { Message } from '@agforge/core'; /** * 压缩拦截器配置选项。 */ export type CompressionInterceptorOptions = { /** 压缩策略 */ strategy: CompressionStrategy; /** 压缩器 */ compressor: Compressor; /** * 摘要消息格式化函数。 * @default 使用 user 角色 + 标签包裹 */ formatSummaryMessage?: (summary: string) => Message; }; /** * 创建压缩拦截器。 * * 压缩时机:eachLoop 开始前 * - 同步压缩:立即执行,阻塞当前 loop,压缩后的消息用于当前轮次 * - 异步压缩:后台执行,当前轮次继续使用原消息,下一轮 loop 开始前等待完成 * * 通过 `instanceof WritableMessageStore` 检测是否启用压缩能力。 * 如果用户使用普通 MessageStore(如 InMemoryMessageStore),则不触发压缩。 * * @see docs/context-compression-design/ */ export declare const createCompressionInterceptor: ({ strategy, compressor, formatSummaryMessage, }: CompressionInterceptorOptions) => ManagedReActAgentInterceptor;