package com.yunhai.agent.entity; import lombok.Getter; import lombok.Setter; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Index; import javax.persistence.Lob; import javax.persistence.Table; /** * 会话里的一条消息(system / user / assistant / tool),按 seq_no 保序。 * *

assistant 消息可能携带工具调用请求,序列化进 {@link #toolCalls}; * tool 消息用于回填工具执行结果,关联 {@link #toolCallId}。 */ @Entity @Table(name = "agent_message", indexes = { @Index(name = "idx_agent_msg_sid", columnList = "session_id,seq_no") }) @Getter @Setter public class AgentMessage extends BaseEntity { /** 所属会话 id */ @Column(name = "session_id", nullable = false, length = 64) private String sessionId; /** 会话内顺序(从 0 递增) */ @Column(name = "seq_no") private Integer seqNo; /** 角色:system / user / assistant / tool */ @Column(name = "role", length = 16) private String role; /** 正文(可能为空:assistant 只想调工具时) */ @Lob @Column(name = "content", columnDefinition = "TEXT") private String content; /** assistant 的 tool_calls(JSON 数组字符串) */ @Lob @Column(name = "tool_calls", columnDefinition = "TEXT") private String toolCalls; /** role=tool 时关联的调用 id */ @Column(name = "tool_call_id", length = 64) private String toolCallId; }