llm-evaluation — скилл для Claude: оценка LLM-приложений
Скилл для оценки качества LLM-приложений: автоматические метрики, человеческая разметка, LLM-as-judge и бенчмарки. Пригодится, когда нужно сравнить модели или поймать регрессию до деплоя.
/plugin marketplace add wshobson/agents
/plugin install llm-application-dev@claude-code-workflowsЧто делает llm-evaluation
Скилл закрывает рутину вокруг оценки LLM-приложений. Внутри — набор подходов: автоматические метрики (BLEU, ROUGE, METEOR, BERTScore, perplexity для генерации текста; accuracy, precision, recall, F1, confusion matrix, AUC-ROC для классификации; MRR, NDCG, Precision@K, Recall@K для RAG-поиска), человеческая оценка по осям accuracy, coherence, relevance, fluency, safety, helpfulness и LLM-as-judge в четырёх вариантах — pointwise, pairwise, reference-based и reference-free.
В quick start лежит Python-код: dataclass Metric с фабриками accuracy(), bleu(), bertscore(), custom(), класс EvaluationSuite с асинхронным методом evaluate(), который прогоняет тест-кейсы через модель и усредняет оценки. Детальные паттерны вынесены в references/details.md — скилл читает файл, когда верхнего уровня не хватает.
Ставить стоит, если вы уже гоняете LLM в проде или собираетесь сравнивать промпты и модели на регулярной основе. Для одноразовой проверки хватит пары скриптов руками — скилл тут лишний.
Какие задачи решает
- сравнить две модели или два промпта на одном наборе тестов
- поймать регрессию качества до выката в прод
- посчитать BLEU и ROUGE для генерации текста
- оценить выдачу RAG-поиска через MRR и NDCG
- настроить LLM-as-judge для оценки без эталонных ответов
Примеры запросов агенту
- прогони мой промпт через EvaluationSuite с accuracy и bertscore
- сравни две версии промпта pairwise через LLM-as-judge
- добавь кастомную метрику groundedness в скилл llm-evaluation
Как установить llm-evaluation
1Через маркетплейс плагинов
/plugin marketplace add wshobson/agents/plugin install llm-application-dev@claude-code-workflowsКоманда ставит плагин llm-application-dev целиком, со всеми его скиллами
2Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill llm-evaluation -a claude-code3Вручную: положить файлы
~/.claude/skills/llm-evaluation/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/llm-evaluation/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill llm-evaluation -a codex2Вручную: положить файлы
.agents/skills/llm-evaluation/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill llm-evaluation -a cursor2Вручную: положить файлы
.cursor/skills/llm-evaluation/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshobson/agents llm-evaluation2Вручную: положить файлы
.github/skills/llm-evaluation/SKILL.mdКомандой платформы
gemini skills install https://github.com/wshobson/agents --path plugins/llm-application-dev/skills/llm-evaluationВручную: положить файлы
.devin/skills/llm-evaluation/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора213
Весь набор →Похожие
Вопросы о llm-evaluation
Как установить llm-evaluation в Claude?
Через маркетплейс плагинов: /plugin marketplace add wshobson/agents, затем /plugin install llm-application-dev@claude-code-workflows. Альтернатива — npx skills add wshobson/agents --skill llm-evaluation -a claude-code.
Что делает скилл llm-evaluation?
Описывает стратегии оценки LLM-приложений: автоматические метрики, человеческую разметку, LLM-as-judge и бенчмарки. Плюс даёт готовый Python-каркас EvaluationSuite для прогона тест-кейсов.
Какие метрики входят в скилл?
Для генерации текста — BLEU, ROUGE, METEOR, BERTScore, perplexity. Для классификации — accuracy, precision, recall, F1, confusion matrix, AUC-ROC. Для RAG — MRR, NDCG, Precision@K, Recall@K.
Исходный текст
SKILL.md · MIT
---
name: llm-evaluation
description: Implement comprehensive evaluation strategies for LLM applications using automated metrics, human feedback, and benchmarking. Use when testing LLM performance, measuring AI application quality, or establishing evaluation frameworks.
---
# LLM Evaluation
Master comprehensive evaluation strategies for LLM applications, from automated metrics to human evaluation and A/B testing.
## When to Use This Skill
- Measuring LLM application performance systematically
- Comparing different models or prompts
- Detecting performance regressions before deployment
- Validating improvements from prompt changes
- Building confidence in production systems
- Establishing baselines and tracking progress over time
- Debugging unexpected model behavior
## Core Evaluation Types
### 1. Automated Metrics
Fast, repeatable, scalable evaluation using computed scores.
**Text Generation:**
- **BLEU**: N-gram overlap (translation)
- **ROUGE**: Recall-oriented (summarization)
- **METEOR**: Semantic similarity
- **BERTScore**: Embedding-based similarity
- **Perplexity**: Language model confidence
**Classification:**
- **Accuracy**: Percentage correct
- **Precision/Recall/F1**: Class-specific performance
- **Confusion Matrix**: Error patterns
- **AUC-ROC**: Ranking quality
**Retrieval (RAG):**
- **MRR**: Mean Reciprocal Rank
- **NDCG**: Normalized Discounted Cumulative Gain
- **Precision@K**: Relevant in top K
- **Recall@K**: Coverage in top K
### 2. Human Evaluation
Manual assessment for quality aspects difficult to automate.
**Dimensions:**
- **Accuracy**: Factual correctness
- **Coherence**: Logical flow
- **Relevance**: Answers the question
- **Fluency**: Natural language quality
- **Safety**: No harmful content
- **Helpfulness**: Useful to the user
### 3. LLM-as-Judge
Use stronger LLMs to evaluate weaker model outputs.
**Approaches:**
- **Pointwise**: Score individual responses
- **Pairwise**: Compare two responses
- **Reference-based**: Compare to gold standard
- **Reference-free**: Judge without ground truth
## Quick Start
```python
from dataclasses import dataclass
from typing import Callable
import numpy as np
@dataclass
class Metric:
name: str
fn: Callable
@staticmethod
def accuracy():
return Metric("accuracy", calculate_accuracy)
@staticmethod
def bleu():
return Metric("bleu", calculate_bleu)
@staticmethod
def bertscore():
return Metric("bertscore", calculate_bertscore)
@staticmethod
def custom(name: str, fn: Callable):
return Metric(name, fn)
class EvaluationSuite:
def __init__(self, metrics: list[Metric]):
self.metrics = metrics
async def evaluate(self, model, test_cases: list[dict]) -> dict:
results = {m.name: [] for m in self.metrics}
for test in test_cases:
prediction = await model.predict(test["input"])
for metric in self.metrics:
score = metric.fn(
prediction=prediction,
reference=test.get("expected"),
context=test.get("context")
)
results[metric.name].append(score)
return {
"metrics": {k: np.mean(v) for k, v in results.items()},
"raw_scores": results
}
# Usage
suite = EvaluationSuite([
Metric.accuracy(),
Metric.bleu(),
Metric.bertscore(),
Metric.custom("groundedness", check_groundedness)
])
test_cases = [
{
"input": "What is the capital of France?",
"expected": "Paris",
"context": "France is a country in Europe. Paris is its capital."
},
]
results = await suite.evaluate(model=your_model, test_cases=test_cases)
```
## Detailed patterns and worked examples
Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.
© Seth Hobson · MIT · wshobson/agents