feat: 先进智能体运行时基座 v1

- 支持高层调用进行可配置智能体业务开发
- 封装基于 agentscope-java
- 支持 tool、skill、知识库等封装
- 支持 tool 审批
- 支持智能体事件回传
- 等等
This commit is contained in:
2026-05-19 17:30:42 +08:00
parent 787ca328f9
commit 8356560c26
82 changed files with 9760 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -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
}