Class Turn

java.lang.Object
com.axelor.ai.chat.stream.Turn

public class Turn extends Object
Accumulator for one assistant turn. The streamer emits ASSISTANT + TOOL UIMessages across multiple agentic steps; this class folds them into a single parts list with UIPart.StepStart delimiters between steps.

One instance per top-level stream. Sub-agent frames share the same Turn with the parent — their parts are appended (and stamped with axelor.agentCode by the persistence service) into the same row.

  • Constructor Details

    • Turn

      public Turn()
  • Method Details

    • assistantUuid

      public UUID assistantUuid()
    • setAssistantUuid

      public void setAssistantUuid(UUID assistantUuid)
    • parts

      public List<UIPart> parts()
    • agentCode

      public String agentCode()
    • setAgentCode

      public void setAgentCode(String agentCode)
    • hasContent

      public boolean hasContent()
    • markContent

      public void markContent()
    • finishReason

      public FinishReason finishReason()
    • setFinishReason

      public void setFinishReason(FinishReason finishReason)
    • appendAssistantStep

      public void appendAssistantStep(List<UIPart> stepParts)
      Appends a new agentic step's parts, prefixing with UIPart.StepStart if the turn already has prior content.
    • appendParts

      public void appendParts(List<UIPart> stepParts)
      Appends parts within the current step, with no step boundary before them.
    • mergeToolParts

      public void mergeToolParts(List<UIPart> toolParts)
      Merges tool parts into the turn by toolCallId, or appends when no match exists.
    • mergeTool

      public static void mergeTool(List<UIPart> parts, UIPart.Tool incoming)
      Merges incoming into the tool with the same toolCallId, or appends if none found. input and callProviderMetadata are identity/ownership anchors set at first emission — both are kept from existing, so a synthetic update auto-stamped with a sub-agent's agentCode cannot reassign a parent-owned tool or wipe its input.