Class SummarizationHook

java.lang.Object
com.alibaba.cloud.ai.graph.agent.hook.messages.MessagesModelHook
com.alibaba.cloud.ai.graph.agent.hook.summarization.SummarizationHook
All Implemented Interfaces:
Hook, Prioritized

public class SummarizationHook extends MessagesModelHook
Hook that summarizes conversation history when token limits are approached. This hook monitors message token counts and automatically summarizes older messages when a threshold is reached, preserving the first user message and recent messages to maintain context continuity. Example: SummarizationHook summarizer = SummarizationHook.builder() .model(chatModel) .maxTokensBeforeSummary(4000) .messagesToKeep(20) .keepFirstUserMessage(true) // Default: true .build();
  • Method Details

    • builder

      public static SummarizationHook.Builder builder()
    • beforeModel

      public AgentCommand beforeModel(List<org.springframework.ai.chat.messages.Message> previousMessages, RunnableConfig config)
      Overrides:
      beforeModel in class MessagesModelHook
    • getName

      public String getName()
      Description copied from interface: Hook
      Gets the unique name of this hook. The name is used to identify the hook in the execution graph.
      Returns:
      the hook name, must not be null
    • canJumpTo

      public List<JumpTo> canJumpTo()
      Description copied from interface: Hook
      Gets the list of allowed jump destinations for this hook.

      Hooks can control the flow of execution by specifying where the agent can jump to after the hook executes. This allows hooks to redirect the execution flow based on their logic.

      Common jump destinations include:

      Returns:
      list of allowed jump destinations, empty list by default
      See Also: