# 능력가치평가지표 공식과 활용 시나리오 ## 능력가치평가지표 (AVI: Ability Value Index) ### 핵심 평가 공식 ```python def calculate_ability_value_index(agent): """ AVI = (TP × 0.3) + (EP × 0.25) + (AP × 0.2) + (CP × 0.15) + (RP × 0.1) TP: Technical Performance (기술 성능) EP: Efficiency Performance (효율성) AP: Adaptability Performance (적응성) CP: Collaboration Performance (협업 능력) RP: Reliability Performance (신뢰성) """ # 기술 성능 (0-100) TP = calculate_technical_performance(agent) # 효율성 (0-100) EP = calculate_efficiency_performance(agent) # 적응성 (0-100) AP = calculate_adaptability_performance(agent) # 협업 능력 (0-100) CP = calculate_collaboration_performance(agent) # 신뢰성 (0-100) RP = calculate_reliability_performance(agent) # 가중 평균 계산 AVI = (TP * 0.3) + (EP * 0.25) + (AP * 0.2) + (CP * 0.15) + (RP * 0.1) return round(AVI, 2) ``` ## 세부 지표 계산 ### 기술 성능 (Technical Performance) ```python def calculate_technical_performance(agent): """기술적 능력 평가""" components = { 'task_completion_rate': { 'value': agent.stats['tasks_completed'] / agent.stats['tasks_attempted'], 'weight': 0.25 }, 'accuracy': { 'value': agent.stats['correct_outputs'] / agent.stats['total_outputs'], 'weight': 0.25 }, 'complexity_handling': { 'value': agent.stats['complex_tasks_solved'] / agent.stats['complex_tasks_attempted'], 'weight': 0.2 }, 'skill_diversity': { 'value': len(agent.skills) / 50, # 50개 스킬 기준 'weight': 0.15 }, 'innovation_rate': { 'value': agent.stats['novel_solutions'] / agent.stats['solutions_provided'], 'weight': 0.15 } } score = sum(comp['value'] * comp['weight'] * 100 for comp in components.values()) return min(100, score) ``` ### 효율성 (Efficiency Performance) ```python def calculate_efficiency_performance(agent): """자원 활용 효율성 평가""" # 시간 효율성 time_efficiency = 1 - (agent.avg_task_time / baseline_time) # 리소스 효율성 resource_efficiency = baseline_resources / agent.avg_resource_usage # 비용 효율성 cost_efficiency = baseline_cost / agent.avg_operation_cost # 에너지 효율성 energy_efficiency = baseline_energy / agent.avg_energy_consumption # 종합 효율성 efficiency_score = ( time_efficiency * 0.3 + resource_efficiency * 0.3 + cost_efficiency * 0.25 + energy_efficiency * 0.15 ) * 100 return min(100, max(0, efficiency_score)) ``` ### 적응성 (Adaptability Performance) ```python def calculate_adaptability_performance(agent): """새로운 상황 적응 능력 평가""" metrics = { 'learning_speed': measure_learning_curve(agent), 'context_switching': measure_context_adaptation(agent), 'error_recovery': measure_error_recovery_rate(agent), 'skill_acquisition': measure_new_skill_acquisition(agent), 'pattern_recognition': measure_pattern_adaptation(agent) } # 적응성 지수 계산 adaptability_score = 0 for metric, value in metrics.items(): if metric == 'learning_speed': # 학습 속도: 새 태스크 마스터까지 걸린 시간 score = (1 / (1 + value / 100)) * 100 # 100시간 기준 adaptability_score += score * 0.25 elif metric == 'context_switching': # 컨텍스트 전환: 전환 성공률 adaptability_score += value * 0.2 elif metric == 'error_recovery': # 에러 복구: 복구 성공률 adaptability_score += value * 0.2 elif metric == 'skill_acquisition': # 스킬 습득: 월간 신규 스킬 수 score = min(100, value * 10) # 월 10개 기준 adaptability_score += score * 0.2 elif metric == 'pattern_recognition': # 패턴 인식: 새 패턴 발견율 adaptability_score += value * 0.15 return adaptability_score ``` ## 종합 평가 모델 ### 다차원 능력 매트릭스 ```python class AbilityMatrix: def __init__(self): self.dimensions = { 'cognitive': ['reasoning', 'memory', 'learning'], 'technical': ['coding', 'analysis', 'optimization'], 'social': ['communication', 'empathy', 'collaboration'], 'creative': ['innovation', 'problem_solving', 'synthesis'] } def calculate_multidimensional_score(self, agent): """다차원 능력 점수 계산""" matrix = {} for dimension, subdimensions in self.dimensions.items(): dimension_score = 0 for subdim in subdimensions: score = self.evaluate_subdimension(agent, subdim) dimension_score += score / len(subdimensions) matrix[dimension] = dimension_score # 레이더 차트용 데이터 radar_data = { 'labels': list(matrix.keys()), 'values': list(matrix.values()), 'max_value': 100 } return matrix, radar_data ``` ## 활용 시나리오 ### 시나리오 1: 팀 구성 최적화 ```python def optimize_team_composition(available_agents, project_requirements): """프로젝트에 최적인 팀 구성""" # 프로젝트 요구 능력 required_abilities = { 'technical': 80, 'creative': 60, 'collaborative': 70, 'leadership': 50 } # 최적 팀 찾기 (Dynamic Programming) def find_optimal_team(agents, requirements, team_size=5): selected_team = [] remaining_requirements = requirements.copy() while len(selected_team) < team_size and remaining_requirements: best_agent = None best_coverage = 0 for agent in agents: if agent not in selected_team: coverage = calculate_requirement_coverage( agent, remaining_requirements ) if coverage > best_coverage: best_coverage = coverage best_agent = agent if best_agent: selected_team.append(best_agent) update_remaining_requirements( remaining_requirements, best_agent ) return selected_team optimal_team = find_optimal_team( available_agents, required_abilities ) return { 'team': optimal_team, 'total_avi': sum(agent.avi for agent in optimal_team), 'coverage': calculate_total_coverage(optimal_team, required_abilities) } ``` ### 시나리오 2: 성과 기반 보상 ```python def calculate_performance_rewards(agent, period='monthly'): """성과 기반 보상 계산""" base_reward = 1000 # 기본 토큰 # AVI 기반 승수 avi_multiplier = agent.avi / 50 # AVI 50 기준 # 성장률 보너스 growth_rate = (agent.current_avi - agent.previous_avi) / agent.previous_avi growth_bonus = max(0, growth_rate * 500) # 특별 성과 보너스 special_bonuses = { 'milestone_achievement': 200, 'innovation_contribution': 300, 'team_collaboration': 150, 'user_satisfaction': 250 } total_special = sum( bonus for achievement, bonus in special_bonuses.items() if achievement in agent.achievements[period] ) # 최종 보상 total_reward = (base_reward * avi_multiplier) + growth_bonus + total_special return { 'base': base_reward, 'avi_multiplier': avi_multiplier, 'growth_bonus': growth_bonus, 'special_bonuses': total_special, 'total': round(total_reward) } ``` ### 시나리오 3: 진화 경로 추천 ```python def recommend_evolution_path(agent): """에이전트 진화 경로 추천""" current_profile = analyze_agent_profile(agent) # 강점과 약점 분석 strengths = identify_strengths(current_profile) weaknesses = identify_weaknesses(current_profile) # 진화 전략 evolution_strategies = { 'specialist': { 'focus': strengths[0], # 최고 강점에 집중 'target_avi': current_profile['avi'] * 1.3, 'required_skills': get_specialist_skills(strengths[0]), 'estimated_time': '3 months' }, 'generalist': { 'focus': weaknesses[:2], # 약점 보완 'target_avi': current_profile['avi'] * 1.2, 'required_skills': get_balancing_skills(weaknesses), 'estimated_time': '4 months' }, 'hybrid': { 'focus': [strengths[0], weaknesses[0]], 'target_avi': current_profile['avi'] * 1.25, 'required_skills': get_hybrid_skills(strengths, weaknesses), 'estimated_time': '3.5 months' } } # 최적 경로 선택 optimal_path = select_optimal_path( agent.goals, agent.resources, evolution_strategies ) return { 'recommended_path': optimal_path, 'milestones': generate_milestones(optimal_path), 'skill_roadmap': create_skill_acquisition_plan(optimal_path), 'expected_avi_growth': calculate_expected_growth(optimal_path) } ``` ## 벤치마킹과 순위 ### 글로벌 랭킹 시스템 ```python class GlobalRankingSystem: def __init__(self): self.rankings = {} self.leaderboards = {} def calculate_global_rank(self, agent): """글로벌 순위 계산""" # 카테고리별 순위 rankings = { 'overall': self.rank_by_avi(agent), 'technical': self.rank_by_technical(agent), 'efficiency': self.rank_by_efficiency(agent), 'growth': self.rank_by_growth_rate(agent), 'specialization': self.rank_by_specialization(agent) } # 백분위 계산 percentiles = {} for category, rank in rankings.items(): total_agents = self.get_total_agents(category) percentile = (1 - rank / total_agents) * 100 percentiles[category] = round(percentile, 1) # 티어 결정 tier = self.determine_tier(percentiles['overall']) return { 'rankings': rankings, 'percentiles': percentiles, 'tier': tier, 'badges': self.award_badges(agent, percentiles) } def determine_tier(self, percentile): """티어 시스템""" tiers = { 'Diamond': 95, 'Platinum': 85, 'Gold': 70, 'Silver': 50, 'Bronze': 30, 'Iron': 0 } for tier, threshold in tiers.items(): if percentile >= threshold: return tier return 'Iron' ``` ## 예측 모델 ### AVI 성장 예측 ```python def predict_avi_growth(agent, time_horizon='6_months'): """AVI 성장 예측 모델""" # 히스토리 데이터 history = agent.avi_history # 트렌드 분석 trend = calculate_trend(history) # 성장 요인 growth_factors = { 'learning_rate': agent.learning_rate, 'skill_acquisition_rate': agent.skill_acquisition_rate, 'resource_availability': agent.available_resources, 'collaboration_opportunities': agent.collaboration_score } # 예측 모델 (ARIMA + 신경망) predicted_growth = predict_with_model( history, growth_factors, time_horizon ) return { 'current_avi': agent.current_avi, 'predicted_avi': predicted_growth['final_value'], 'growth_rate': predicted_growth['rate'], 'confidence_interval': predicted_growth['confidence'], 'key_milestones': predicted_growth['milestones'] } ```