FilteringExtractionStrategy

class FilteringExtractionStrategy(val messageRolesToExtract: Set<Message.Role> = setOf(Message.Role.User, Message.Role.Assistant), val lastMessageOnly: Boolean = false) : ExtractionStrategy(source)

Default extractor that filters messages by role.

This extractor filters messages to only include those with roles in messageRolesToExtract, then converts each message's content into MemoryRecords.

When lastMessageOnly is true, only the last message for each role in messageRolesToExtract is extracted. This is useful with ai.koog.agents.longtermmemory.ingestion.IngestionTiming.ON_LLM_CALL to avoid re-ingesting messages that were already stored in previous calls.

Constructors

Link copied to clipboard
constructor(messageRolesToExtract: Set<Message.Role> = setOf(Message.Role.User, Message.Role.Assistant), lastMessageOnly: Boolean = false)

Types

Link copied to clipboard

Properties

Link copied to clipboard

When true, only the last message for each matching role is extracted. Defaults to false.

Link copied to clipboard

The set of message roles to extract and persist. Defaults to setOf(Message.Role.User, Message.Role.Assistant).

Functions

Link copied to clipboard
open suspend override fun extract(messages: List<Message>): List<TextDocument>

Transforms a list of messages into a list of memory records for storage.