in agents/agents-core/src/commonMain/kotlin/ai/koog/agents/core/dsl/extension/HistoryCompressionStrategies.kt [101:123]
protected fun splitHistoryBySystemMessages(messages: List<Message>): List<List<Message>> {
val result = mutableListOf<MutableList<Message>>()
var currentBlock = mutableListOf<Message>()
var beforeSystemMessage = true
for (message in messages) {
if (message is Message.System) {
if (beforeSystemMessage) {
beforeSystemMessage = false
} else {
result.add(currentBlock)
currentBlock = mutableListOf()
}
}
currentBlock.add(message)
}
if (currentBlock.isNotEmpty()) {
result.add(currentBlock)
}
return result
}