DOCS/_archive/gpt_docs/19_능력가치평가지표_공식.md
happybell80 374a173e80 GPT_docs를 _archive로 이동 및 DB 테이블 활용 계획 문서 추가
- GPT_docs/ → _archive/gpt_docs/로 이동 (디렉토리 구조 정리)
- ideas/250818_conversation_logs_및_robing_stats_활용_계획.md 추가
  - conversation_logs, robing_stats, robing_settings 테이블 활용 방안
  - 현재 0개 레코드인 미사용 테이블들의 구현 가이드
  - 단계별 구현 계획 및 코드 예시 포함
2025-08-18 13:11:45 +09:00

425 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 능력가치평가지표 공식과 활용 시나리오
## 능력가치평가지표 (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']
}
```