protected fun splitHistoryBySystemMessages()

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
    }