Files
prompts/a2s_agent_arch.md
2026-07-24 11:30:44 +08:00

6.7 KiB

Intro

以下是mis-agent项目架构以及目录结构。

核心技术栈

名称 版本 官方文档 Github
Java OpenJDK21 - -
SpringBoot 3.2.9 https://docs.spring.io/spring-boot/docs/3.2.9/reference/html https://github.com/spring-projects/spring-boot/tree/v3.2.9
SpringFramework 6.1.12 https://docs.spring.io/spring-framework/reference/6.2/index.html https://github.com/spring-projects/spring-framework/tree/v6.1.12
rocketmq-spring-boot-starter 2.2.3 https://rocketmq.apache.org/zh/docs/4.x https://github.com/apache/rocketmq-spring/tree/rocketmq-spring-all-2.2.3
rocketmq-client 4.9.8 - https://github.com/apache/rocketmq/tree/rocketmq-all-4.9.8
mybatis-plus 3.5.7 https://baomidou.com/introduce/ https://github.com/baomidou/mybatis-plus/tree/v3.5.7
MySQL 8.0.25 https://dev.mysql.com/doc/refman/8.0/en/ https://github.com/mysql/mysql-server/tree/mysql-8.0.25
Redis 8.0+ - -
redisson-spring-boot-starter 3.34.1 https://redisson.pro/docs/integration-with-spring/#usage https://github.com/redisson/redisson/tree/redisson-3.34.1/redisson-spring-boot-starter/src/main
agentscope-java 1.0.11 https://java.agentscope.io/v1/zh/docs/task/agent-as-tool.html https://github.com/agentscope-ai/agentscope-java/tree/v1.0.11
spring-ai-alibaba 1.1.2.2 https://java2ai.com/docs/overview https://github.com/alibaba/spring-ai-alibaba/tree/v1.1.2.2
spring-ai 1.1.2 https://docs.spring.io/spring-ai/reference/1.1/index.html https://github.com/spring-projects/spring-ai/tree/v1.1.2

目录结构

主目录

mis-modules\mis-agent\src\main\
├── java                               # Java源文件
└── resources
    └── mapper                         # Mybatis Mapper XML
    └── application.yml                # 配置文件

智能体

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对象中简单的使用发布订阅模式。

com\lcfc\agent\eventhub\
├── MisAgentEventHub.java               # 通过init方法注册监听器,使用broadcast推送事件
└── MisAgentEventListener.java          # 所有监听器都必须实现该接口

智能体记忆

管理智能体的长期记忆。

com\lcfc\agent\memory\
├── UserLongTermChannel.java            # 长期记忆组件的通道枚举,例如hindsight
├── UserLongTermMemoryClient.java       # 用户级别长期记忆的客户端接口
├── UserLongTermMemoryConfig.java       # 用户级别长期记忆的配置
└── UserLongTermMemoryCtl.java          # 用户级别长期记忆的控制类

智能体监控

收集智能体运行时调用了哪些tool、使用了哪些Skill、触发了哪些工作流、查询了哪些知识库、消耗了多少token等数据。

com\lcfc\agent\monitor\
├── AgentChatMetricsCtx.java                  # 智能体监控数据的上下文对象
├── AgentChatMetricsFinishEvent.java          # 智能体监控数据收集完成事件消息载体
├── AgentChatMetricsFinishListener.java       # 智能体监控数据收集完成事件监听器
├── IAgentChatMetricsConsumer.java            # 消费智能体监控数据上下文对象的接口
├── MisAgentChatMetricsCtl.java               # 管理多智能体和单智能体监控上下文对象的控制类
└── MisMcpToolMetadataCtl.java                # 管理多智能体和单智能体MCP工具元数据的控制类

对于agentscope-java的封装

提炼使用agentscope-java构建智能体可复用的能力。

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                          # 知识库搜索控制类

项目数据统计相关

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)