- GPT_docs/ → _archive/gpt_docs/로 이동 (디렉토리 구조 정리) - ideas/250818_conversation_logs_및_robing_stats_활용_계획.md 추가 - conversation_logs, robing_stats, robing_settings 테이블 활용 방안 - 현재 0개 레코드인 미사용 테이블들의 구현 가이드 - 단계별 구현 계획 및 코드 예시 포함
12 KiB
12 KiB
능력가치평가지표 공식과 활용 시나리오
능력가치평가지표 (AVI: Ability Value Index)
핵심 평가 공식
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)
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)
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)
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
종합 평가 모델
다차원 능력 매트릭스
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: 팀 구성 최적화
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: 성과 기반 보상
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: 진화 경로 추천
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)
}
벤치마킹과 순위
글로벌 랭킹 시스템
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 성장 예측
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']
}