Skip to main content
Glama

compare_robots_performance

Analyze and compare performance metrics for multiple robots over specified time periods to evaluate operational efficiency.

Instructions

比较多个机器人的性能 参数: - robot_ids: 机器人ID列表 - metric_columns: 比较指标列 - start_time: 开始时间戳 - end_time: 结束时间戳 返回: - 比较结果

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
robot_idsYes
metric_columnsYes
start_timeNo
end_timeNo

Implementation Reference

  • MCP tool handler for compare_robots_performance. Decorated with @mcp.tool() for automatic registration. Delegates core logic to AdvancedDataAnalyzer.compare_robots() after initialization check.
    @mcp.tool() def compare_robots_performance(robot_ids: list, metric_columns: list, start_time: float = None, end_time: float = None): """ 比较多个机器人的性能 参数: - robot_ids: 机器人ID列表 - metric_columns: 比较指标列 - start_time: 开始时间戳 - end_time: 结束时间戳 返回: - 比较结果 """ try: if advanced_data_analyzer is None: return return_msg("高级数据分析器未初始化") # 执行比较 comparison = advanced_data_analyzer.compare_robots( robot_ids=robot_ids, metric_columns=metric_columns, start_time=start_time, end_time=end_time ) return return_msg({"comparison": comparison}) except Exception as e: logger.error(f"比较机器人性能失败: {str(e)}") return return_msg(f"比较机器人性能失败: {str(e)}")
  • Core helper method implementing the robot comparison logic. Loads data for each robot_id in the time range, computes statistics (mean, median, std, min, max) for each metric_column, and summarizes the best performer per metric (maximizing or minimizing based on metric name).
    def compare_robots(self, robot_ids: List[str], start_time: Optional[float] = None, end_time: Optional[float] = None, metric_columns: Optional[List[str]] = None) -> Dict[str, Any]: """ 比较多个机器人的性能 Args: robot_ids: 机器人ID列表 start_time: 开始时间 end_time: 结束时间 metric_columns: 要比较的指标列 Returns: Dict[str, Any]: 比较结果 """ comparison_results = { 'robots': {}, 'summary': {} } all_data = [] # 收集每个机器人的数据 for robot_id in robot_ids: df = self.load_data( start_time=start_time, end_time=end_time, robot_id=robot_id ) if not df.empty: comparison_results['robots'][robot_id] = { 'data_points': len(df), 'metrics': {} } # 计算指标 if metric_columns: for col in metric_columns: if col in df.columns: comparison_results['robots'][robot_id]['metrics'][col] = { 'mean': df[col].mean(), 'median': df[col].median(), 'std': df[col].std(), 'min': df[col].min(), 'max': df[col].max() } all_data.append((robot_id, df)) # 生成比较摘要 if metric_columns and all_data: for col in metric_columns: values = [] valid_robots = [] for robot_id, df in all_data: if col in df.columns: values.append(df[col].mean()) valid_robots.append(robot_id) if values: best_idx = np.argmin(values) if 'error' in col.lower() or 'temperature' in col.lower() else np.argmax(values) comparison_results['summary'][col] = { 'best_robot': valid_robots[best_idx], 'best_value': values[best_idx], 'average_value': np.mean(values), 'range': {'min': min(values), 'max': max(values)}, 'variation': np.std(values) / np.mean(values) if np.mean(values) > 0 else 0 } return comparison_results

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nonead/nUR_MCP_SERVER'

If you have feedback or need assistance with the MCP directory API, please join our Discord server