Skip to content

Issue #6: 【Eval】定义 skill 评估指标(metrics)#19

Open
alijiujiu123 wants to merge 1 commit intomainfrom
issue/6-eval-metrics
Open

Issue #6: 【Eval】定义 skill 评估指标(metrics)#19
alijiujiu123 wants to merge 1 commit intomainfrom
issue/6-eval-metrics

Conversation

@alijiujiu123
Copy link
Copy Markdown
Owner

Fixes #6

概述

本 PR 完成了 Issue #6 的所有任务,定义了 Skill 评估指标系统,支持数据驱动的晋升/淘汰决策。

完成的任务

1. 创建核心类型定义 (agent/skills/base.ts)

定义了以下核心类型:

  • SkillMetadata: Skill 元数据接口
  • SkillContext: 执行上下文
  • SkillResult: 执行结果
  • ExecutionMetrics: 执行指标
  • SkillMetrics: Skill 统计指标
  • Skill: Skill 接口
  • ScoreWeights: 评分权重
  • Thresholds: 配置阈值
  • MetricsConfig: Metrics 配置

2. 实现指标收集和评分逻辑 (agent/evaluation/metrics.ts)

MetricsCollector(指标收集器)

  • recordExecution(): 记录执行结果
  • calculateMetrics(): 计算 Skill 指标
  • clearRecords(): 清空记录
  • 支持多个 Skill 的独立指标收集

MetricsScorer(指标评分器)

  • calculateScore(): 计算综合评分
  • canPromote(): 判断是否可以晋升
  • shouldRetire(): 判断是否应该淘汰
  • 支持多种权重配置(平衡型、激进型、保守型)

3. 创建配置文件 (metrics.yaml)

包含以下配置:

  • 晋升/淘汰阈值
  • 评分权重(三种预设)
  • 核心指标定义和计算公式说明

4. 核心指标定义

实现了 5 个核心指标,每个指标都有明确的计算公式:

  1. success_rate (成功率)

    • 公式: success_rate = 成功次数 / 总执行次数
    • 范围: 0-1
  2. avg_cost (平均成本)

    • 公式: avg_cost = 所有执行成本之和 / 执行次数
    • 单位: 元
  3. avg_latency (平均延迟)

    • 公式: avg_latency = 所有执行延迟之和 / 执行次数
    • 单位: 毫秒
  4. rollback_rate (回滚率)

    • 公式: rollback_rate = 回滚次数 / 总执行次数
    • 范围: 0-1
  5. stability_score (稳定性分数)

    • 公式: stability_score = 1 - 标准差(归一化)
    • 范围: 0-1

验收标准检查

  • ✅ 至少定义 5 个核心指标
  • ✅ 每个指标有明确的计算公式
  • ✅ metrics.yaml 包含默认阈值

测试

创建了完整的单元测试(agent/evaluation/metrics.test.ts),覆盖:

  • MetricsCollector 的所有功能
  • MetricsScorer 的所有功能
  • 边界情况处理
  • 配置加载

并通过验证脚本验证了所有功能正常工作。

文件变更

  • 新增: agent/skills/base.ts - 核心类型定义
  • 新增: agent/evaluation/metrics.ts - 指标收集和评分逻辑
  • 新增: agent/evaluation/metrics.test.ts - 单元测试
  • 新增: metrics.yaml - 配置文件

相关文档

  • 架构文档: docs/v2/architecture.md

- 创建 agent/skills/base.ts,定义核心类型(Skill, SkillMetadata, SkillMetrics 等)
- 创建 agent/evaluation/metrics.ts,实现指标收集和评分逻辑
- 创建 metrics.yaml 配置文件,包含默认阈值和权重
- 定义 5 个核心指标:success_rate, avg_cost, avg_latency, rollback_rate, stability_score
- 实现指标收集逻辑(MetricsCollector)
- 实现指标评分逻辑(MetricsScorer)
- 支持数据驱动的晋升/淘汰决策

相关 Issue: #6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

【Eval】定义 skill 评估指标(metrics)

1 participant