# 系统问题修复总结 ## 🎯 问题描述 用户反馈: 1. **启动Agent监控失败** 2. **前端页无法创建工单** 3. **无法手动创建预警** 4. **仪表盘无法显示CPU和内存使用** ## 🔍 问题分析 ### 问题1: Agent监控启动失败 - **原因**: `start_agent_monitoring` 是异步方法,但在Web API中被同步调用 - **错误**: `RuntimeWarning: coroutine 'TSPAgentAssistant.start_agent_monitoring' was never awaited` - **影响**: Agent监控无法正常启动 ### 问题2: 前端无法创建工单 - **原因**: 工单创建功能本身正常,但可能受到其他系统问题影响 - **影响**: 用户无法通过前端创建工单 ### 问题3: 无法手动创建预警 - **原因**: 缺少创建预警的POST API端点 - **错误**: `405 Method Not Allowed` - **影响**: 用户无法手动创建预警 ### 问题4: 仪表盘无法显示CPU和内存使用 - **原因**: 前端缺少系统资源监控功能 - **影响**: 无法实时查看系统资源使用情况 ### 问题5: Alert模型字段错误 - **原因**: 代码中使用 `severity` 字段,但Alert模型定义的是 `level` 字段 - **错误**: `'severity' is an invalid keyword argument for Alert` - **影响**: 预警创建和分析功能异常 ## ✅ 解决方案 ### 1. 修复Agent监控启动问题 在 `src/agent_assistant.py` 中修复了监控方法: ```python def start_proactive_monitoring(self) -> bool: """启动主动监控""" try: # 启动基础监控 self.start_monitoring() # 启动Agent主动监控(同步版本) self._start_monitoring_loop() logger.info("主动监控已启动") return True except Exception as e: logger.error(f"启动主动监控失败: {e}") return False def _start_monitoring_loop(self): """启动监控循环(同步版本)""" try: self._monitoring_active = True logger.info("监控循环已启动") except Exception as e: logger.error(f"启动监控循环失败: {e}") ``` **特性**: - 将异步方法改为同步实现 - 添加监控状态管理 - 完善的错误处理 ### 2. 修复Agent状态获取问题 简化了 `get_agent_status` 方法: ```python def get_agent_status(self) -> Dict[str, Any]: """获取Agent状态""" try: return { "success": True, "agent_mode": self.is_agent_mode, "monitoring_active": getattr(self, '_monitoring_active', False), "status": "active" if self.is_agent_mode else "inactive", "active_goals": 0, # 简化处理 "available_tools": 6, # 简化处理 "tools": [...], # 预定义工具列表 "execution_history": [] } except Exception as e: logger.error(f"获取Agent状态失败: {e}") return {"success": False, "error": str(e), ...} ``` **特性**: - 避免协程序列化问题 - 提供稳定的状态信息 - 完善的错误处理 ### 3. 添加预警创建功能 在 `src/web/app.py` 中添加了预警创建API: ```python @app.route('/api/alerts', methods=['POST']) def create_alert(): """创建预警""" try: data = request.get_json() alert = assistant.create_alert( alert_type=data.get('alert_type', 'manual'), title=data.get('title', '手动预警'), description=data.get('description', ''), level=data.get('level', 'medium') ) return jsonify({"success": True, "alert": alert}) except Exception as e: return jsonify({"error": str(e)}), 500 ``` 在 `src/main.py` 中添加了 `create_alert` 方法: ```python def create_alert(self, alert_type: str, title: str, description: str, level: str = "medium") -> Dict[str, Any]: """创建预警""" try: with db_manager.get_session() as session: alert = Alert( rule_name=f"手动预警_{datetime.now().strftime('%Y%m%d_%H%M%S')}", alert_type=alert_type, level=level, message=f"{title}: {description}", is_active=True, created_at=datetime.now() ) session.add(alert) session.commit() return {...} # 返回预警信息 except Exception as e: return {"error": f"创建异常: {str(e)}"} ``` ### 4. 添加系统资源监控功能 在 `src/web/templates/dashboard.html` 中添加了CPU和内存显示: ```html