# AgentFrame-多智能体框架
**Repository Path**: CocoLiu/agentframe
## Basic Information
- **Project Name**: AgentFrame-多智能体框架
- **Description**: Java版本的多智能体框架,AgentFrame是一个基于Java 17和Spring Boot 3.5.6的现代化多智能体协调框架,提供高性能、可扩展的智能体系统开发平台。
AgentFrame - 让多智能体系统开发变得简单而强大!
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-10-15
- **Last Updated**: 2025-10-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AgentFrame - 多智能体协调框架
AgentFrame是一个基于Java 17和Spring Boot 3.5.6的现代化多智能体协调框架,提供高性能、可扩展的智能体系统开发平台。
## 🚀 核心特性
- **智能体生命周期管理** - 完整的Agent创建、启动、暂停、停止和销毁流程
- **高性能异步通信** - 基于Netty的高性能消息传递,支持ACL消息格式
- **分布式集群支持** - 内置集群管理,支持节点发现、负载均衡和故障转移
- **服务发现与注册** - 灵活的服务注册和发现机制
- **Spring Boot集成** - 无缝集成Spring Boot生态系统
- **监控和扩展** - 基于Micrometer的监控指标收集
- **模块化架构** - 清晰的分层架构,支持灵活扩展
## 📋 系统要求
- Java 17+
- Maven 3.8+
- Spring Boot 3.5.6+
## 🏗️ 架构设计
AgentCore采用分层架构设计:
```
┌─────────────────────────────────────────┐
│ 应用层 (Examples) │
├─────────────────────────────────────────┤
│ 集成层 (Spring Boot) │
├─────────────────────────────────────────┤
│ 集群层 (Cluster) │
├─────────────────────────────────────────┤
│ 容器层 (Container) │
├─────────────────────────────────────────┤
│ 通信层 (Communication) │
├─────────────────────────────────────────┤
│ 核心层 (Core) │
└─────────────────────────────────────────┘
```
### 模块说明
- **agentcore-core**: 核心Agent抽象、行为模型、消息系统
- **agentcore-communication**: 消息序列化、传输层实现
- **agentcore-container**: Agent容器、服务注册发现
- **agentcore-cluster**: 集群管理、节点协调
- **agentcore-spring-boot-starter**: Spring Boot自动配置
- **agentcore-examples**: 示例应用和使用案例
## 🚀 快速开始
### 1. 添加依赖
在你的`pom.xml`中添加AgentCore依赖:
```xml
com.agentcore
agentcore-spring-boot-starter
1.0.0
```
### 2. 创建Agent
```java
@Component
public class MyAgent extends AbstractAgent {
public MyAgent() {
super(AgentId.create("MyAgent"));
}
@Override
protected CompletableFuture doStart() {
// 添加行为
addBehavior(new CyclicBehavior() {
@Override
public void action() {
// 执行周期性任务
logger.info("Agent {} is working...", getAgentId().getShortId());
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
});
return CompletableFuture.completedFuture(null);
}
@Override
protected void handleMessage(AgentMessage message) {
// 处理接收到的消息
logger.info("Received message: {}", message.content());
}
}
```
### 3. 配置应用
在`application.yml`中配置AgentCore:
```yaml
agentcore:
container:
name: MyAgentContainer
max-agents: 100
communication:
transport: local
serializer: jackson
monitoring:
enabled: true
```
### 4. 启动应用
```java
@SpringBootApplication
public class MyAgentApplication {
public static void main(String[] args) {
SpringApplication.run(MyAgentApplication.class, args);
}
}
```
## 📚 示例应用
### 基本示例
运行基本Agent示例:
```bash
cd agentcore-examples
mvn exec:java -Dexec.mainClass="com.agentcore.examples.basic.BasicAgentExample"
```
### Spring Boot示例
启动Spring Boot集成示例:
```bash
cd agentcore-examples
mvn spring-boot:run -Dspring-boot.run.main-class="com.agentcore.examples.springboot.SpringBootAgentApplication"
```
访问 http://localhost:8080/api/agents/status 查看Agent状态。
### 集群示例
启动多个集群节点:
```bash
# 节点1
mvn exec:java -Dexec.mainClass="com.agentcore.examples.cluster.ClusterAgentExample" -Dexec.args="node1 8080"
# 节点2
mvn exec:java -Dexec.mainClass="com.agentcore.examples.cluster.ClusterAgentExample" -Dexec.args="node2 8081"
# 节点3
mvn exec:java -Dexec.mainClass="com.agentcore.examples.cluster.ClusterAgentExample" -Dexec.args="node3 8082"
```
## 🔧 核心概念
### Agent生命周期
Agent具有以下状态:
- `CREATED` - 已创建
- `STARTING` - 启动中
- `ACTIVE` - 活跃状态
- `SUSPENDED` - 暂停状态
- `STOPPING` - 停止中
- `TERMINATED` - 已终止
### 行为模型
AgentCore支持多种行为类型:
- **OneShotBehavior** -一次行为
- **CyclicBehavior** - 循环行为
- **TickerBehavior** - 定时行为
```java
// 一次行为
addBehavior(new OneShotBehavior() {
@Override
public void action() {
// 执行一次任务
}
});
// 循环行为
addBehavior(new CyclicBehavior() {
@Override
public void action() {
// 循环执行的任务
}
});
// 定时行为
addBehavior(new TickerBehavior(Duration.ofSeconds(10)) {
@Override
protected void onTick() {
// 每10秒执行一次
}
});
```
### 消息通信
Agent间通过ACL消息进行通信:
```java
AgentMessage message = AgentMessage.builder()
.sender(getAgentId())
.receiver(targetAgentId)
.performative(MessagePerformative.REQUEST)
.content("Hello, World!")
.build();
sendMessage(message);
```
支持的消息类型:
- `INFORM` - 信息通知
- `REQUEST` - 请求
- `QUERY` - 查询
- `CONFIRM` - 确认
- `FAILURE` - 失败通知
## 🔧 配置选项
### 容器配置
```yaml
agentcore:
container:
name: MyContainer # 容器名称
max-agents: 1000 # 最大Agent数量
auto-start-agents: true # 自动启动Agent
enable-monitoring: true # 启用监控
```
### 通信配置
```yaml
agentcore:
communication:
transport: tcp # 传输类型: local, tcp
host: localhost # 主机地址
port: 9090 # 端口号
serializer: jackson # 序列化器: jackson, kryo
```
### 集群配置
```yaml
agentcore:
cluster:
enabled: true # 启用集群
node-name: node1 # 节点名称
bind-host: localhost # 绑定地址
bind-port: 8080 # 绑定端口
discovery:
type: multicast # 发现类型: multicast, redis
multicast-group: 224.0.0.1
multicast-port: 9999
```
## 📊 监控和管理
AgentCore集成了Spring Boot Actuator,提供丰富的监控端点:
- `/actuator/health` - 健康检查
- `/actuator/metrics` - 监控指标
- `/actuator/agentcore` - Agent状态信息
- `/actuator/cluster` - 集群状态信息
### 自定义指标
```java
@Autowired
private MeterRegistry meterRegistry;
// 计数器
Counter.builder("agent.messages.processed")
.register(meterRegistry)
.increment();
// 计时器
Timer.Sample sample = Timer.start(meterRegistry);
// ... 执行操作
sample.stop(Timer.builder("agent.operation.duration").register(meterRegistry));
```
## 🧪 测试
运行所有测试:
```bash
mvn test
```
运行特定模块测试:
```bash
mvn test -pl agentcore-core
```
测试文件说明:
- 1、AI数据库智能体系统 (问库智能体)示例程序
- 2、AgentCore 示例程序
- 3、AgentCore框架综合系统测试
- 4、AgentCore 容器测试说明
- 5、AgentCore 扩展测试功能总结
- 6、AgentCore 容器和智能体测试总结
## 📖 API文档
### Agent接口
```java
public interface Agent {
AgentId getAgentId();
AgentState getState();
CompletableFuture start();
CompletableFuture stop();
CompletableFuture suspend();
CompletableFuture resume();
void sendMessage(AgentMessage message);
void addBehavior(Behavior behavior);
void removeBehavior(Behavior behavior);
}
```
### 容器接口
```java
public interface AgentContainer {
CompletableFuture start();
CompletableFuture stop();
CompletableFuture registerAgent(Agent agent);
CompletableFuture unregisterAgent(AgentId agentId);
CompletableFuture startAgent(AgentId agentId);
CompletableFuture stopAgent(AgentId agentId);
List getAllAgents();
int getAgentCount();
}
```
## 🤝 贡献指南
1. Fork项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启Pull Request
## 📄 许可证
本项目采用MIT许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 🙏 致谢
- [JADE](https://jade.tilab.com/) - 启发了Agent通信模型
- [Spring Boot](https://spring.io/projects/spring-boot) - 提供了优秀的应用框架
- [Netty](https://netty.io/) - 高性能网络通信框架
- [Micrometer](https://micrometer.io/) - 监控指标收集
## 📞 联系我们
- 项目主页: https://gitee.com/CocoLiu/agentframe
- 问题反馈: https://gitee.com/CocoLiu/agentframe/issues
- 邮箱: liu_kou@sohu.com
---
**AgentCore** - 让多智能体系统开发变得简单而强大!