feat: 先进智能体运行时基座 v1
- 支持高层调用进行可配置智能体业务开发 - 封装基于 agentscope-java - 支持 tool、skill、知识库等封装 - 支持 tool 审批 - 支持智能体事件回传 - 等等
This commit is contained in:
@@ -0,0 +1,236 @@
|
||||
package com.easyagents.agent.runtime.event;
|
||||
|
||||
import com.easyagents.agent.runtime.message.AgentMessage;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* 智能体执行过程中的中立运行时事件。
|
||||
*/
|
||||
public class AgentRuntimeEvent {
|
||||
|
||||
private String eventId = UUID.randomUUID().toString();
|
||||
private AgentRuntimeEventType eventType;
|
||||
private String traceId;
|
||||
private String sessionId;
|
||||
private String agentId;
|
||||
private String messageId;
|
||||
private String toolCallId;
|
||||
private AgentMessage message;
|
||||
private Map<String, Object> payload = new LinkedHashMap<>();
|
||||
private Map<String, Object> metadata = new LinkedHashMap<>();
|
||||
private Instant createdAt = Instant.now();
|
||||
|
||||
/**
|
||||
* 创建指定类型的事件。
|
||||
*
|
||||
* @param eventType 事件类型
|
||||
* @return 新事件
|
||||
*/
|
||||
public static AgentRuntimeEvent of(AgentRuntimeEventType eventType) {
|
||||
AgentRuntimeEvent event = new AgentRuntimeEvent();
|
||||
event.setEventType(eventType);
|
||||
return event;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取事件ID。
|
||||
*
|
||||
* @return 事件ID
|
||||
*/
|
||||
public String getEventId() {
|
||||
return eventId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置事件ID。
|
||||
*
|
||||
* @param eventId 事件ID
|
||||
*/
|
||||
public void setEventId(String eventId) {
|
||||
this.eventId = eventId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取事件类型。
|
||||
*
|
||||
* @return 事件类型
|
||||
*/
|
||||
public AgentRuntimeEventType getEventType() {
|
||||
return eventType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置事件类型。
|
||||
*
|
||||
* @param eventType 事件类型
|
||||
*/
|
||||
public void setEventType(AgentRuntimeEventType eventType) {
|
||||
this.eventType = eventType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取链路ID。
|
||||
*
|
||||
* @return 链路ID
|
||||
*/
|
||||
public String getTraceId() {
|
||||
return traceId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置链路ID。
|
||||
*
|
||||
* @param traceId 链路ID
|
||||
*/
|
||||
public void setTraceId(String traceId) {
|
||||
this.traceId = traceId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会话ID。
|
||||
*
|
||||
* @return 会话ID
|
||||
*/
|
||||
public String getSessionId() {
|
||||
return sessionId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置会话ID。
|
||||
*
|
||||
* @param sessionId 会话ID
|
||||
*/
|
||||
public void setSessionId(String sessionId) {
|
||||
this.sessionId = sessionId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取智能体ID。
|
||||
*
|
||||
* @return 智能体ID
|
||||
*/
|
||||
public String getAgentId() {
|
||||
return agentId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置智能体ID。
|
||||
*
|
||||
* @param agentId 智能体ID
|
||||
*/
|
||||
public void setAgentId(String agentId) {
|
||||
this.agentId = agentId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取消息ID。
|
||||
*
|
||||
* @return 消息ID
|
||||
*/
|
||||
public String getMessageId() {
|
||||
return messageId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置消息ID。
|
||||
*
|
||||
* @param messageId 消息ID
|
||||
*/
|
||||
public void setMessageId(String messageId) {
|
||||
this.messageId = messageId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工具调用ID。
|
||||
*
|
||||
* @return 工具调用ID
|
||||
*/
|
||||
public String getToolCallId() {
|
||||
return toolCallId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置工具调用ID。
|
||||
*
|
||||
* @param toolCallId 工具调用ID
|
||||
*/
|
||||
public void setToolCallId(String toolCallId) {
|
||||
this.toolCallId = toolCallId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结构化消息。
|
||||
*
|
||||
* @return 结构化消息
|
||||
*/
|
||||
public AgentMessage getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置结构化消息。
|
||||
*
|
||||
* @param message 结构化消息
|
||||
*/
|
||||
public void setMessage(AgentMessage message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取载荷。
|
||||
*
|
||||
* @return 载荷
|
||||
*/
|
||||
public Map<String, Object> getPayload() {
|
||||
return payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置载荷。
|
||||
*
|
||||
* @param payload 载荷
|
||||
*/
|
||||
public void setPayload(Map<String, Object> payload) {
|
||||
this.payload = payload == null ? new LinkedHashMap<>() : payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取元数据。
|
||||
*
|
||||
* @return 元数据
|
||||
*/
|
||||
public Map<String, Object> getMetadata() {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置元数据。
|
||||
*
|
||||
* @param metadata 元数据
|
||||
*/
|
||||
public void setMetadata(Map<String, Object> metadata) {
|
||||
this.metadata = metadata == null ? new LinkedHashMap<>() : metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取创建时间。
|
||||
*
|
||||
* @return 创建时间
|
||||
*/
|
||||
public Instant getCreatedAt() {
|
||||
return createdAt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置创建时间。
|
||||
*
|
||||
* @param createdAt 创建时间
|
||||
*/
|
||||
public void setCreatedAt(Instant createdAt) {
|
||||
this.createdAt = createdAt == null ? Instant.now() : createdAt;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.easyagents.agent.runtime.event;
|
||||
|
||||
/**
|
||||
* 智能体运行输出的运行时事件类型。
|
||||
*/
|
||||
public enum AgentRuntimeEventType {
|
||||
/**
|
||||
* 智能体运行已开始。
|
||||
*/
|
||||
STARTED,
|
||||
|
||||
/**
|
||||
* 流式推理内容,用于展示思考过程。
|
||||
*/
|
||||
REASONING_DELTA,
|
||||
|
||||
/**
|
||||
* 流式输出内容,用于流式展示聊天内容。
|
||||
*/
|
||||
MESSAGE_DELTA,
|
||||
|
||||
/**
|
||||
* 智能体发起工具调用。
|
||||
*/
|
||||
TOOL_CALL,
|
||||
|
||||
/**
|
||||
* 工具调用完成并返回结果。
|
||||
*/
|
||||
TOOL_RESULT,
|
||||
|
||||
/**
|
||||
* 知识库检索完成并返回文档摘要。
|
||||
*/
|
||||
KNOWLEDGE_RETRIEVAL,
|
||||
|
||||
/**
|
||||
* 工具执行前需要人工审批。
|
||||
*/
|
||||
TOOL_APPROVAL_REQUIRED,
|
||||
|
||||
/**
|
||||
* 智能体开始加载并调用 Skill。
|
||||
*/
|
||||
SKILL_CALL,
|
||||
|
||||
/**
|
||||
* Skill 内部执行步骤。
|
||||
*/
|
||||
SKILL_STEP,
|
||||
|
||||
/**
|
||||
* Skill 加载或调用完成。
|
||||
*/
|
||||
SKILL_RESULT,
|
||||
|
||||
/**
|
||||
* Skill 加载或调用失败。
|
||||
*/
|
||||
SKILL_FAILED,
|
||||
|
||||
/**
|
||||
* 智能体处理完成。
|
||||
*/
|
||||
COMPLETED,
|
||||
|
||||
/**
|
||||
* 智能体运行失败。
|
||||
*/
|
||||
FAILED,
|
||||
|
||||
/**
|
||||
* 智能体运行被取消。
|
||||
*/
|
||||
CANCELLED
|
||||
}
|
||||
Reference in New Issue
Block a user