From 7fdd945a78749f4e3661cfcfbaec7b4779a6edf9 Mon Sep 17 00:00:00 2001 From: 8ga Date: Fri, 24 Jul 2026 11:30:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20a2s=5Fagent=5Farch.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- a2s_agent_arch.md | 106 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 105 insertions(+), 1 deletion(-) diff --git a/a2s_agent_arch.md b/a2s_agent_arch.md index e8522a3..cae9be9 100644 --- a/a2s_agent_arch.md +++ b/a2s_agent_arch.md @@ -21,6 +21,110 @@ ## 目录结构 +### 主目录 + ```text -ja +mis-modules\mis-agent\src\main\ +├── java # Java源文件 +└── resources + └── mapper # Mybatis Mapper XML + └── application.yml # 配置文件 +``` + +### 智能体 + +```text +com\lcfc\agent\agents\ +├── a2a # a2a agent +├── config # Spring配置类 +├── constants # 常量类 +├── context # 自定义的上下文载体类 +├── controller # SpringWeb控制器 +├── dubbo # Dubbo接口实现类 +├── enums # 枚举类 +├── events # Spring事件消息载体, 定义ApplicationEventPublisher.publishEvent的Payload +├── mapper # Mybatis Mapper 接口 +├── multiagent # 多智能体,采用agentscope-java的Agent AS Tool架构 +├── saa # 单智能体,采用spring-ai-alibaba的方案 +├── service # CRUD业务逻辑接口 +│ └── impl # CRUD业务逻辑接口实现类 +├── util # 工具类 +├── validator # 封装复杂的/可复用的验证工具 +├── domain # 数据库实体类 + ├── DTO # DTO + └── VO # VO +``` + +### 事件发布订阅 + +目的是摆脱对`ApplicationEventPublisher`的依赖,在非`springbean`对象中简单的使用发布订阅模式。 + +```text +com\lcfc\agent\eventhub\ +├── MisAgentEventHub.java # 通过init方法注册监听器,使用broadcast推送事件 +└── MisAgentEventListener.java # 所有监听器都必须实现该接口 +``` + +### 智能体记忆 + +管理智能体的长期记忆。 + +```text +com\lcfc\agent\memory\ +├── UserLongTermChannel.java # 长期记忆组件的通道枚举,例如hindsight +├── UserLongTermMemoryClient.java # 用户级别长期记忆的客户端接口 +├── UserLongTermMemoryConfig.java # 用户级别长期记忆的配置 +└── UserLongTermMemoryCtl.java # 用户级别长期记忆的控制类 +``` + +### 智能体监控 + +收集智能体运行时调用了哪些tool、使用了哪些Skill、触发了哪些工作流、查询了哪些知识库、消耗了多少token等数据。 + +```text +com\lcfc\agent\monitor\ +├── AgentChatMetricsCtx.java # 智能体监控数据的上下文对象 +├── AgentChatMetricsFinishEvent.java # 智能体监控数据收集完成事件消息载体 +├── AgentChatMetricsFinishListener.java # 智能体监控数据收集完成事件监听器 +├── IAgentChatMetricsConsumer.java # 消费智能体监控数据上下文对象的接口 +├── MisAgentChatMetricsCtl.java # 管理多智能体和单智能体监控上下文对象的控制类 +└── MisMcpToolMetadataCtl.java # 管理多智能体和单智能体MCP工具元数据的控制类 +``` + +### 对于agentscope-java的封装 + +提炼使用agentscope-java构建智能体可复用的能力。 + +```text +com\lcfc\agent\scope\ +├── AgentScopeAgentCtl.java # 构建ReActAgent.Builder和A2aAgent.Builder对象的控制类 +├── AgentScopeChatUsageUtils.java # 计算Token消耗的工具类 +├── AgentScopeMemoryCtl.java # 管理官方提供的AutoContextMemory自动压缩上下文控制类 +├── AgentScopeModelCtl.java # 控制agentscope-java默认使用的聊天模型 +├── AgentScopeMsgCtl.java # 管理智能体输入或输出消息,例如查询知识库或者保存用户输入或者智能体输出的消息,或者创建一个会话窗口ID +├── AgentScopeMsgUtils.java # 格式化Msg的工具类 +├── AgentScopeSkillCtl.java # 管理Skill的控制类 +├── AgentScopeToolCtl.java # 管理Tool以及MCPTool的控制类 +├── KbReferenceCtl.java # 引用的知识库控制类 +└── KbSearchCtl.java # 知识库搜索控制类 +``` + +### 项目数据统计相关 + +```text +com\lcfc\agent\stats\ +├── api # Controller +├── service # Service +├── conf # 配置类 +├── domain +│ ├── dto # DTO +│ ├── vo # VO +│ ├── enums # Enum +│ ├── entity # Entity +│ └── mapper # Mapper Java源文件 +├── mq +│ ├── event # 消息载体 +│ └── consumer # 监听器 +└── resources + └── mapper # Mapper XML文件 (位于src/main/resources/mapper) ``` \ No newline at end of file