Finn Jensen
11/14/2025, 1:08 AMfun AIAgentSubgraphBuilderBase<*, *>.summarizer(
conversationManager: ConversationManager
) = node<String, String>("summarizer") {
println("SUMMARIZER ENTERED")
llm.writeSession {
updatePrompt {
user("Given all of the above information please provide a response to the user")
}
var isInitial = true
var finalMessage = ""
requestLLMStreaming().collect { chunk ->
when (chunk) {
is StreamFrame.Append -> {
println("APPEND: ${chunk.text}")
if (isInitial) {
conversationManager.sendInitialMessage {
assistant {
content(chunk.text)
status = MessageStatus.InProgress
}
}
isInitial = false
} else {
conversationManager.appendText(chunk.text)
}
finalMessage += chunk.text
}
is StreamFrame.ToolCall -> error { "Tool Calling isn't supported in Summarizer" }
is StreamFrame.End -> {
println("END: ${chunk.finishReason}")
conversationManager.sendFinished()
}
}
}
finalMessage
}
}rcd27
11/14/2025, 5:34 AM