✨AI-Powered Communication Router System Project-2025

✨AI-Powered Communication Router System Project-2025

This project focuses on developing an intelligent agents communication system.
TECH
TECH
TECH
TECH

Project Overview

智能宿舍多智能体路由系统是一个纯软件模拟的智能宿舍管理系统,采用多智能体架构实现设备协同控制和场景自动化。系统通过四个核心智能体(指令输入、感知、执行、路由调度)协同工作,模拟真实智能宿舍环境中的设备控制和场景管理。

核心特性

  • 多智能体协同:基于消息总线的智能体间通信与协调
  • 场景化控制:支持多种预设场景模式(睡前、学习、娱乐等)
  • 路由冗余机制:智能路由调度与故障恢复
  • 纯软件模拟:无需真实硬件即可运行演示
  • 现代化技术栈:前后端分离,采用最新技术框架

技术架构分析

1. 整体架构设计

系统采用前后端分离的微服务架构,分为三层:
TECH

2. 智能体架构设计

系统包含四种核心智能体,各司其职:

2.1 指令输入智能体 (Command Agent)

  • 职责:接收用户指令,解析场景需求
  • 输入源:用户界面操作、API调用、定时触发器
  • 输出:标准化任务描述
  • 特性:支持自然语言指令解析(可选LLM集成)

2.2 路由调度智能体 (Router Agent)

  • 职责:协调智能体间通信,实现消息路由
  • 核心功能
    • 消息转发与负载均衡
    • 路由冗余与容错机制
    • 智能体状态监控与心跳检测
    • 备用路由策略

2.3 感知智能体 (Sensor Agent)

  • 职责:模拟传感器数据采集
  • 数据类型:温度、湿度、运动检测、门窗状态
  • 工作模式:定期轮询、事件触发、数据广播
  • 数据格式:标准化传感器数据包

2.4 执行智能体 (Actuator Agent)

  • 职责:控制虚拟设备执行动作
  • 控制对象:灯、插座、风扇、空调等虚拟设备
  • 控制方式:开关、调光、定时、场景联动
  • 状态反馈:执行结果实时反馈

3. 消息路由机制

系统采用基于规则的消息路由,支持多种路由模式:

3.1 正常路由流程

1
用户指令 → 指令输入智能体 → 路由调度智能体 → 执行智能体 → 虚拟设备

3.2 冗余路由机制

  • 主路由故障:自动切换到备用路由
  • 智能体故障:心跳检测与自动恢复
  • 消息重试:失败消息自动重试机制

3.3 路由规则示例

1
2
3
4
5
6
7
8
9
10
# 路由规则定义(backend/app/agents/router_agent/__init__.py:26-80)
{
"rule_id": "rule_001",
"source": "command_agent",
"destination": "router_agent",
"condition": "message.type in ['scene_trigger', 'device_control']",
"action": "route_to_router",
"priority": 1,
"enabled": True,
}

Technologies Used

部署与运维

1. 一键安装脚本

系统提供完整的安装脚本 (install.sh):

1
2
3
4
5
6
7
8
9
10
11
# 安装所有依赖
./install.sh

# 启动系统
./start.sh

# 停止系统
./stop.sh

# 查看日志
./logs.sh

2. 环境要求

  • Python 3.9+:包含pip包管理器
  • Node.js 18+:包含npm包管理器
  • Redis 6+:可选,用于消息中间件

3. 启动流程

  1. 后端启动uvicorn app.main:app --host 0.0.0.0 --port 5000 --reload
  2. 前端启动npm run dev
  3. 访问地址

性能指标

根据项目文档,系统设计性能指标如下:

  • 场景触发响应时间:< 3秒
  • 支持并发设备数:≥ 10个
  • 数据采集频率:≤ 30秒
  • 系统可用性:≥ 99%
  • 路由冗余切换时间:< 5秒

Key Features

Implementation Status

详见GITHUNB项目页面。

Comments

Comments are enabled. Feel free to join the discussion.

Comments will be recorded via GitHub Issues