142 lines
7.2 KiB
Markdown
142 lines
7.2 KiB
Markdown
# mis-agent
|
||
|
||
- [核心技术栈](./mis-core-arch.md)
|
||
- [Java代码书写规范](./java-coding-rules.md)
|
||
- [书写HTTP接口文档示例](./mis-api-doc.md)
|
||
|
||
## 目录结构
|
||
|
||
### 主目录
|
||
|
||
```text
|
||
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 # 知识库搜索控制类
|
||
```
|
||
|
||
### 管理Skill
|
||
|
||
```text
|
||
com\lcfc\agent\skills\
|
||
├── BaseSkillToolsExecutor.java # 执行Skill中的脚本工具类父类
|
||
├── AgentScopeSkillTools.java # 基于agentscope-java封装执行Skill中脚本的Tools
|
||
├── SpringAiSkillTools.java # 基于spring-ai封装执行Skill中脚本的Tools
|
||
├── AgentSkillMetadataHandler.java # 在磁盘文件记录存储了多少个Skill,包括技能ID和名称
|
||
├── AgentSkillResourceHandler.java # 负责Skill静态资源的下载、解压、删除
|
||
├── AgentSkillRuntimeHandler.java # 每个会话都会拷贝用到的Skill资源到临时目录,该类负责临时目录的创建与删除
|
||
├── AgentSkillRuntimeConfigHandler.java # Skill包含自定义配置,该类管理运行时自定义配置的创建、读取、删除
|
||
├── AgentSkillSessionCache.java # 管理智能体运行时SKill临时目录,包括自动续期与超时,超时会自动清理,避免磁盘空间浪费
|
||
├── RemoveSkillConsumer.java # 处理智能体解绑了某个skill的事件/服务端Skill资源被删除事件
|
||
├── SkillRemoveConsumer.java # ?
|
||
├── SkillResourceChangeConsumer.java # 处理Skill资源更新事件
|
||
├── SkillStateChangeConsumer.java # 处理Skill状态变更事件(禁用/启用)
|
||
├── AgentSkillRuntimeConfig.java # 智能体运行时Skill配置,例如:临时目录的根目录、过期时长等
|
||
└── AgentSkillResourceConfig.java # Skill资源配置,例如:静态资源的根目录、最多存放的静态资源数量等
|
||
```
|
||
|
||
### 公共工具包
|
||
|
||
```text
|
||
com\lcfc\agent\utils\
|
||
├── AsyncTaskTemplate.java # 多线程、异步任务模板
|
||
├── RLockTemplate.java # 基于Redis的分布式锁
|
||
└── TransactionTaskTemplate.java # 编程式Spring事务模板
|
||
```
|
||
|
||
### 项目数据统计相关
|
||
|
||
```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 # 监听器
|
||
``` |