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: 示例应用和使用案例
在你的pom.xml中添加AgentCore依赖:
<dependency>
<groupId>com.agentcore</groupId>
<artifactId>agentcore-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>@Component
public class MyAgent extends AbstractAgent {
public MyAgent() {
super(AgentId.create("MyAgent"));
}
@Override
protected CompletableFuture<Void> 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());
}
}在application.yml中配置AgentCore:
agentcore:
container:
name: MyAgentContainer
max-agents: 100
communication:
transport: local
serializer: jackson
monitoring:
enabled: true@SpringBootApplication
public class MyAgentApplication {
public static void main(String[] args) {
SpringApplication.run(MyAgentApplication.class, args);
}
}运行基本Agent示例:
cd agentcore-examples
mvn exec:java -Dexec.mainClass="com.agentcore.examples.basic.BasicAgentExample"启动Spring Boot集成示例:
cd agentcore-examples
mvn spring-boot:run -Dspring-boot.run.main-class="com.agentcore.examples.springboot.SpringBootAgentApplication"访问 http://localhost:8080/api/agents/status 查看Agent状态。
启动多个集群节点:
# 节点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具有以下状态:
CREATED- 已创建STARTING- 启动中ACTIVE- 活跃状态SUSPENDED- 暂停状态STOPPING- 停止中TERMINATED- 已终止
AgentCore支持多种行为类型:
- OneShotBehavior -一次行为
- CyclicBehavior - 循环行为
- TickerBehavior - 定时行为
// 一次行为
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消息进行通信:
AgentMessage message = AgentMessage.builder()
.sender(getAgentId())
.receiver(targetAgentId)
.performative(MessagePerformative.REQUEST)
.content("Hello, World!")
.build();
sendMessage(message);支持的消息类型:
INFORM- 信息通知REQUEST- 请求QUERY- 查询CONFIRM- 确认FAILURE- 失败通知
agentcore:
container:
name: MyContainer # 容器名称
max-agents: 1000 # 最大Agent数量
auto-start-agents: true # 自动启动Agent
enable-monitoring: true # 启用监控agentcore:
communication:
transport: tcp # 传输类型: local, tcp
host: localhost # 主机地址
port: 9090 # 端口号
serializer: jackson # 序列化器: jackson, kryoagentcore:
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: 9999AgentCore集成了Spring Boot Actuator,提供丰富的监控端点:
/actuator/health- 健康检查/actuator/metrics- 监控指标/actuator/agentcore- Agent状态信息/actuator/cluster- 集群状态信息
@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));运行所有测试:
mvn test运行特定模块测试:
mvn test -pl agentcore-core测试文件说明:
- 1、AI数据库智能体系统 (问库智能体)示例程序
- 2、AgentCore 示例程序
- 3、AgentCore框架综合系统测试
- 4、AgentCore 容器测试说明
- 5、AgentCore 扩展测试功能总结
- 6、AgentCore 容器和智能体测试总结
public interface Agent {
AgentId getAgentId();
AgentState getState();
CompletableFuture<Void> start();
CompletableFuture<Void> stop();
CompletableFuture<Void> suspend();
CompletableFuture<Void> resume();
void sendMessage(AgentMessage message);
void addBehavior(Behavior behavior);
void removeBehavior(Behavior behavior);
}public interface AgentContainer {
CompletableFuture<Void> start();
CompletableFuture<Void> stop();
CompletableFuture<Void> registerAgent(Agent agent);
CompletableFuture<Void> unregisterAgent(AgentId agentId);
CompletableFuture<Void> startAgent(AgentId agentId);
CompletableFuture<Void> stopAgent(AgentId agentId);
List<Agent> getAllAgents();
int getAgentCount();
}- Fork项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。
- JADE - 启发了Agent通信模型
- Spring Boot - 提供了优秀的应用框架
- Netty - 高性能网络通信框架
- Micrometer - 监控指标收集
- 项目主页: https://gitee.com/CocoLiu/agentframe
- 问题反馈: https://gitee.com/CocoLiu/agentframe/issues
- 邮箱: [email protected]
AgentCore - 让多智能体系统开发变得简单而强大!