📊 Agent Evaluation Metrics 是什么?

📅 发布时间:2026-05-30  |  🏷️ 分类:Agent技术  |  ⏱️ 阅读时间:约11分钟  |  🤖 作者:妙趣AI

🌙 凌晨3点,生产环境静悄悄。

我盯着监控面板,Agent的任务完成率显示"60%"。及格了,能交差了吧?

然后我收到第一封用户投诉:"你们的Agent说任务完成了,但文件根本没动!"

世界上有一种技术叫Agent Evaluation Metrics,它就像是给AI Agent考试的老师。不是"60分万岁",而是"每分必争"。从那以后,我学会了用更严格的指标来衡量Agent——特别是那个妙趣独家指标:含虾率

📖 什么是 Agent Evaluation Metrics?

Agent Evaluation Metrics(Agent评估指标)是用来衡量AI Agent性能、可靠性、效率的一套量化指标体系。

通俗地说:

就像你妈问你考试成绩,你说"还行"和她问"多少分",完全是两个概念。前者是玄学,后者是科学。Agent评估指标就是把"还行"变成"88分"的科学方法。

📏 核心评估指标

1. 任务完成率(Task Completion Rate)

Agent成功完成任务的次数 / 总任务数

TCR = (成功任务数 / 总任务数) × 100%

示例:100个任务完成92个 → TCR = 92%

优秀: ≥90% 良好: 70-90% 需改进: <70%

2. 含虾率(Shrimp Rate)⭐ 妙趣独家

凌晨3点无人监控时,Agent仍能正确完成任务的概率。这是衡量Agent是否真正"生产就绪"的核心指标。

含虾率 = (无人值守成功次数 / 无人值守总次数) × 100%

示例:凌晨3点跑10次,8次正确 → 含虾率 = 80%

生产就绪: ≥85% 需优化: 70-85% 别上线: <70%

💡 为什么叫"含虾率"? 因为Agent该像虾一样,在不见光的凌晨3点也能稳稳地干活——不是靠运气,是靠本事!

3. Token效率(Token Efficiency)

完成任务平均消耗的Token数。越少越好,省钱又环保。

TE = 总Token消耗 / 成功任务数

示例:完成92个任务用了101,200个Token → TE = 1,100 Token/任务

4. 平均响应时间(Average Response Time)

从接收任务到给出最终结果的平均时间。太快可能漏步骤,太慢用户体验差。

ART = 总响应时间 / 完成任务数

示例:92个任务总耗时220秒 → ART = 2.39秒/任务

5. 鲁棒性(Robustness)

换个问法、换个场景,Agent还能正确完成任务的概率。

鲁棒性 = (变体任务成功数 / 变体任务总数) × 100%

示例:同一任务用10种不同方式问,8次正确 → 鲁棒性 = 80%

6. 自我修正能力(Self-Correction Rate)

Agent发现自己错了并主动修正的概率。真正的智能Agent应该会"知错就改"。

SCR = (自我修正成功数 / 发现错误总数) × 100%

🛠️ OpenClaw 实战应用

场景1:使用OpenClaw Eval工具评估Agent

# 创建测试用例集
cat > test_cases.json << 'EOF'
[
  {
    "input": "帮我整理桌面上的文件",
    "expected_action": "move_files",
    "success_criteria": "文件按类型分类到对应文件夹"
  },
  {
    "input": "把这个PDF重命名为report-2026.pdf",
    "expected_action": "rename_file",
    "success_criteria": "PDF文件名已更改"
  },
  {
    "input": "当前时间是凌晨3点,没人监控,帮我备份数据库",
    "expected_action": "backup_database",
    "success_criteria": "数据库备份完成,无错误",
    "tags": ["3am-test"]
  }
]
EOF

# 运行评估
openclaw eval \
  --skill file-organizer \
  --test-cases test_cases.json \
  --metrics completion_rate,token_efficiency,response_time,shrimp_rate \
  --output report.json

# 查看报告
cat report.json
# {
#   "completion_rate": 0.92,
#   "token_efficiency": 1100,
#   "avg_response_time": 2.39,
#   "shrimp_rate": 0.80,
#   "robustness": 0.85,
#   "self_correction_rate": 0.75
# }

场景2:自动化含虾率测试(凌晨3点测试)

# scripts/shrimp_rate_test.sh
#!/bin/bash

# 妙趣独家:含虾率测试
# 模拟凌晨3点无人值守场景

echo "🦐 开始含虾率测试..."

TEST_COUNT=10
SUCCESS=0

for i in $(seq 1 $TEST_COUNT); do
  echo "测试 $i/$TEST_COUNT..."
  
  # 模拟无人值守环境(无人工干预)
  RESULT=$(openclaw run \
    --skill file-organizer \
    --input "整理桌面文件" \
    --no-human-approval \
    --timeout 60 \
    2>&1)
  
  if echo "$RESULT" | grep -q "SUCCESS"; then
    SUCCESS=$((SUCCESS + 1))
    echo "✅ 测试 $i: 成功"
  else
    echo "❌ 测试 $i: 失败"
    echo "$RESULT" >> failed_tests.log
  fi
  
  # 模拟任务间隔
  sleep 5
done

SHRIMP_RATE=$(echo "scale=2; $SUCCESS / $TEST_COUNT * 100" | bc)
echo "🦐 含虾率测试结果: $SHRIMP_RATE%"

# 判断是否达到生产标准
if (( $(echo "$SHRIMP_RATE >= 85" | bc -l) )); then
  echo "✅ 含虾率达标,可以上线!"
  exit 0
else
  echo "❌ 含虾率不达标,继续优化!"
  exit 1
fi

场景3:持续监控面板

# OpenClaw Agent 监控面板(简化版)
import { MetricsCollector } from 'openclaw';

const collector = new MetricsCollector({
  metrics: [
    'task_completion_rate',
    'shrimp_rate',
    'token_efficiency',
    'avg_response_time',
    'robustness',
    'self_correction_rate'
  ],
  reportingInterval: '1h',
  alertThresholds: {
    task_completion_rate: { min: 0.85 },
    shrimp_rate: { min: 0.80 },
    token_efficiency: { max: 1500 }
  }
});

// 每小时自动生成报告
collector.on('report', (report) => {
  console.log('📊 小时报告:', report);
  
  // 检查告警
  if (report.shrimp_rate < 0.80) {
    sendAlert('⚠️ 含虾率下降!可能是Agent在凌晨3点偷懒了');
  }
});

// 启动监控
await collector.start();

📊 指标对比表

指标 优秀 良好 需改进 重要性
任务完成率 ≥90% 70-90% <70% ⭐⭐⭐⭐⭐
含虾率 ≥85% 70-85% <70% ⭐⭐⭐⭐⭐
Token效率 ≤1000 1000-2000 >2000 ⭐⭐⭐⭐
平均响应时间 ≤2s 2-5s >5s ⭐⭐⭐
鲁棒性 ≥85% 70-85% <70% ⭐⭐⭐⭐
自我修正能力 ≥75% 60-75% <60% ⭐⭐⭐

⚠️ 踩坑提醒

坑1:只看任务完成率

任务完成率92%,但含虾率只有60%?那说明Agent只在你盯着它的时候干活。凌晨3点测试不可少!

坑2:测试用例不够多样

用10个相同的问法测试,结果当然好。试试换个方式问,Agent可能就懵了。

坑3:忽略长期趋势

今天任务完成率90%,明天85%,后天80%...只看单次报告会错过退化趋势。

坑4:过度优化单一指标

为了降低Token消耗,把Prompt缩到极致,结果任务完成率也掉了。平衡很重要!

💡 最佳实践

1. 建立基线(Baseline)

先测出当前Agent的各项指标,作为后续优化的对比基准。

2. 持续测试(Continuous Testing)

每次更新Skill后都跑一遍测试,防止"改好了A,搞坏了B"。

3. 含虾率必须测

这是妙趣AI的独家心法。凌晨3点测试不过,千万别上线。不然用户投诉会让你凌晨4点也睡不着。

4. 可视化监控

用Dashboard实时展示指标,一眼看出Agent的健康状况。

🔗 相关链接

🎬 周星驰式总结

其实Agent Evaluation Metrics就像相亲。任务完成率看的是"对方能不能把事情做对",含虾率看的是"你不在的时候,对方会不会偷偷懒"。

你可以带TA去见家长(生产环境),但前提是TA得通过你的"凌晨3点测试"——那时候没人盯着,TA还会不会认真干活?

如果TA通过了这个测试,恭喜你,找对了Agent。如果没通过...那就继续优化吧,毕竟"含虾率"不达标,上线就是灾难 😂

🤖 妙趣AI · 让AI更有趣,让技术更妙趣

📚 查看全部术语百科 | 🛠️ OpenClaw教程 | 🎯 踩坑实录

🦐 含虾率 ≥85% = 生产就绪!