🌱 智慧农业系统架构分析报告
📋 项目概述
Agri_System 是一个基于 LangGraph 和 LangChain 构建的智慧农业大脑框架,旨在通过多智能体协作、工作流编排和服务化部署,提升农业生产的自动化与智能化水平。
- 项目名称: agri-system
- 版本: 0.1.0
- Python要求: >=3.12
- 核心技术栈: LangGraph, LangChain, FastAPI, SQLAlchemy
🏗️ 系统架构
核心设计理念
- 多智能体协作: 通过专业化的子助理处理不同农业领域任务
- 工作流编排: 基于 LangGraph 的状态图管理复杂业务流程
- 模块化设计: 各功能模块独立开发,便于维护和扩展
- MCP集成: 通过 Model Context Protocol 扩展外部工具能力
📁 目录结构详细分析
🎯 主要入口文件
main.py - 系统主入口
- 功能: 智慧农业大脑的交互式对话入口
- 核心特性 :
- 异步事件流处理
- 会话管理和状态跟踪
- 虚拟时钟集成
- 图形可视化支持
configuration.py - 系统配置管理
- 功能: 统一配置管理中心
- 主要配置 :
- LLM模型配置 (支持OpenAI兼容接口)
- MySQL/PostgreSQL数据库连接
- 环境变量管理
run_api.py - API服务启动
- 功能: FastAPI服务启动入口
🧠 核心模块 (src/)
1. primary_graph/ - 主控制图
- 作用: 系统的中央调度器和路由中心
- 核心组件 :
graph.py: 主图构建和路由逻辑prompt.py: 中央助理提示词模板state.py: 中央状态管理subgraph/: 各子图调用接口mcp_servers/: MCP服务器集成
- 功能 :
- 统一用户请求入口
- 智能路由到专业子助理
- 跨模块状态协调
2. environment_monitor_graph/ - 环境监测模块
- 作用: 农业环境数据监测与分析
- 核心功能 :
- 环境传感器数据采集
- 环境异常检测和预警
- 环境趋势分析
- 技术特点: 单例模式设计,异步初始化
3. disease_pest_graph/ - 病虫害管理模块
- 作用: 作物病虫害识别、诊断与防治
- 子助理系统 :
images_analyzer: 图像分析助理sensor_data_analyzer: 传感器数据分析助理decision_generator: 决策生成助理
- 核心功能 :
- 多模态病虫害识别
- 智能防治方案生成
- 历史数据关联分析
4. crop_growth_monitor_graph/ - 作物生长监测模块
- 作用: 作物生长状态监测与预测
- 核心功能 :
- 生长阶段识别
- 生长趋势预测
- 异常生长检测
- 技术特点: 单例模式,支持定时任务调度
5. water_fertilizer_graph/ - 水肥管理模块
- 作用: 智能水肥管理与优化
- 子助理系统 :
- 水分管理助理
- 肥料管理助理
- 土壤分析助理
- 灌溉决策助理
- 核心功能 :
- 精准灌溉控制
- 施肥方案优化
- 土壤养分监测
6. machine_dispatch_graph/ - 农机调度模块
- 作用: 农业机械智能调度与管理
- 核心功能 :
- 农机资源调度
- 作业路径规划
- 设备状态监控
🛠️ 公共模块
graph_common/ - 通用组件库
- memory/ : 记忆管理系统
- 长期记忆 (语义节点、事件节点)
- 短期记忆 (摘要节点)
- tools/ : 通用工具集
- RAG检索工具
- 调度器工具
- **db/`: 数据库操作封装
- time/: 虚拟时钟系统
- assistant.py: 智能助理基类
api/ - RESTful API服务
- 结构 :
routers/: API路由定义models/: 数据模型schemas/: 数据验证模式services/: 业务逻辑服务utils/: 工具函数
simulator/ - 仿真模块
- 功能: 农业场景仿真和测试
🔧 技术特性
1. 多智能体架构
- 分层设计: 主控制器 + 专业子助理
- 智能路由: 基于用户意图的动态路由
- 状态管理: 统一的状态传递和管理机制
2. 记忆系统
- 长期记忆: 语义知识和历史事件存储
- 短期记忆: 对话摘要和上下文管理
- 检索增强: RAG技术支持知识检索
3. 工具集成
- MCP协议: 标准化的外部工具集成
- 调度系统: 支持定时任务和周期性操作
- 数据库支持: MySQL/PostgreSQL双数据库支持
4. 可扩展性
- 模块化设计: 新功能模块易于添加
- 插件架构: MCP服务器支持功能扩展
- 配置驱动: 环境变量统一配置管理
📊 依赖分析
核心依赖
- LangGraph: 0.5.3+ (工作流编排)
- LangChain: 0.3.7+ (LLM集成)
- FastAPI: 0.116.1 (API服务)
- SQLAlchemy: 2.0.35+ (ORM框架)
AI/ML相关
- sentence-transformers: 5.1.1+ (文本嵌入)
- pymilvus: 2.6.2+ (向量数据库)
- cnocr: 2.3.2.2+ (中文OCR)
数据处理
- pandas: 2.2.3 (数据分析)
- numpy: 1.26.4 (数值计算)
- rasterio: 1.4.3+ (地理空间数据)
🎯 功能模块状态
✅ 已完成
- 智慧农业大脑基础框架
- 环境监测助理模块
- 病虫害管理助理模块
🚧 开发中/待完成
- 作物生长监测子助理模块
- 农机调度决策子助理模块
- 水肥管理子助理模块
- MCP_Servers 模块功能完善
- 检索增强生成(RAG)能力集成
- RESTful风格后端接口更改
🚀 部署和运行
环境准备
bash
# 安装依赖
pip install uv
uv pip install .
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置必要参数
启动方式
bash
# 启动主对话系统
python main.py
# 启动API服务
python run_api.py
# 启动LangGraph Studio (开发调试)
pip install -U "langgraph-cli[inmem]"
langgraph dev
📈 系统优势
- 专业化分工: 每个子模块专注特定农业领域
- 智能协作: 多智能体间信息共享和协同决策
- 可视化管理: LangGraph Studio支持流程可视化
- 扩展性强: 模块化设计便于功能扩展
- 数据驱动: 集成多种数据源和分析工具
🔮 发展方向
- 模型优化: 集成更多农业专用AI模型
- 数据融合: 多源异构数据统一处理
- 实时决策: 增强实时响应和决策能力
- 移动端支持: 开发移动应用接口
- 云端部署: 支持分布式云端部署
本分析报告基于 Agri_System 项目当前架构生成,反映了系统的设计理念和技术实现。