Implementa padrões iterativos para avaliar e refinar os outputs de agentes de IA por meio de autocritica, pipelines de avaliador-otimizador e pontuação baseada em rubricas.
- Estrelas no GitHub
- 41.038
- Arquivos
- 1
- Último commit
- 11 de nov. de 2026
- Licença
- MIT
- Ferramentas permitidas
- —
O que a skill agentic-eval faz?
agentic-eval é uma Agent Skill. Implementa padrões iterativos para avaliar e refinar os outputs de agentes de IA por meio de autocritica, pipelines de avaliador-otimizador e pontuação baseada em rubricas.
Resumo gerado a partir do SKILL.md da skill.
Sobre a skill agentic-eval
O agentic-eval permite melhorar a precisão de códigos, relatórios ou análises gerados por IA. Desenvolvedores utilizam esta skill para ir além da geração de tentativa única, implementando loops iterativos onde um agente avalia o próprio trabalho e realiza correções. Ela fornece padrões estruturados para autocritica, pipelines de avaliador-otimizador e fluxos de trabalho de refinamento baseados em testes.
Um agente deve carregar esta skill ao trabalhar em tarefas críticas de qualidade que exigem adesão a guias de estilo específicos, padrões de conformidade ou métricas de sucesso mensuráveis. A skill produz outputs refinados ao ciclar pelas fases de geração, avaliação e otimização. Ela se baseia em técnicas como LLM-as-judge para ranking, pontuação baseada em rubricas para dimensões ponderadas e parsing de JSON estruturado para garantir loops de feedback confiáveis. Usuários podem implementar estratégias específicas, como o CodeReflector para corrigir erros por meio de testes pytest ou o EvaluatorOptimizer para manter um limite de pontuação específico.
O que um agente pode fazer com ela
- 1Refinando relatórios técnicos complexosUm agente pode usar loops de autocritica para garantir que um relatório gerado atenda a critérios específicos de precisão e clareza.
- 2Automatizando a correção de erros de códigoDesenvolvedores podem implementar um loop orientado a testes que gera código e corrige automaticamente os erros encontrados durante os testes.
- 3Padronizando a qualidade do output via rubricasVocê pode pontuar as respostas do agente em relação a dimensões ponderadas, como completude e precisão, para garantir que atendam aos padrões profissionais.
- 4Comparando múltiplos outputs de IAUse um LLM judge para ranquear diferentes versões de um output para determinar qual delas satisfaz melhor um conjunto de critérios.
Escrito a partir do SKILL.md da skill. Cada caso de uso é verificado com uma citação dele.
Como instalar a skill agentic-eval
Cada comando copia a pasta da skill para o diretório de skills do cliente. Reinicie o cliente ou inicie uma nova sessão para carregá-la.Instalar a skill agentic-eval no Claude Code
~/.claude/skills/agentic-eval/SKILL.md
$ npx degit github/awesome-copilot/skills/agentic-eval ~/.claude/skills/agentic-evalInstalar a skill agentic-eval no Claude Code (project)
.claude/skills/agentic-eval/SKILL.md
$ npx degit github/awesome-copilot/skills/agentic-eval .claude/skills/agentic-evalInstalar a skill agentic-eval no Codex
~/.agents/skills/agentic-eval/SKILL.md
$ npx degit github/awesome-copilot/skills/agentic-eval ~/.agents/skills/agentic-evalInstalar a skill agentic-eval no Gemini CLI
~/.gemini/skills/agentic-eval/SKILL.md
$ npx degit github/awesome-copilot/skills/agentic-eval ~/.gemini/skills/agentic-evalInstalar a skill agentic-eval no Claude.ai
npx degit github/awesome-copilot/skills/agentic-eval agentic-eval && zip -r agentic-eval.zip agentic-eval # claude.ai → Customize → Skills → + → Create skill → Upload a skill → agentic-eval.zip
Verificações automatizadas
Executado em 15 de nov. de 2026Relatório completo →Passou nas nossas verificações automáticas. Não é uma auditoria de segurança: leia os scripts antes de deixar um agente executá-los. Como as verificações funcionam
- Repositório de origem vinculado e acessívelgithub/awesome-copilot/skills/agentic-eval is public and reachablegithub.com/github/awesome-copilot/tree/HEAD/skills/agentic-e ↗Passou
- Licença de código aberto (OSI)MITspdx.org/licenses/MIT.html ↗Passou
- Commit ou release no último anoLast commit 2026-11-11github.com/github/awesome-copilot/commits ↗Passou
- Sem baixar e executar nem roubo de credenciais nos scriptsNo scripts in the skill folderPassou
- Sem instruções ocultas no SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/github/awesome-copilot/blob/HEAD/skills/agentic-e ↗Passou
- Ferramentas pré-aprovadas são restritasNo pre-approved tools; the agent asks before using onegithub.com/github/awesome-copilot/blob/HEAD/skills/agentic-e ↗Passou
- O SKILL.md segue o formato Agent SkillsValid name and description; says when to use it; 190 linesgithub.com/github/awesome-copilot/blob/HEAD/skills/agentic-e ↗Passou
SKILL.md
Ver no GitHubAgentic Evaluation Patterns
Patterns for self-improvement through iterative evaluation and refinement.
Overview
Evaluation patterns enable agents to assess and improve their own outputs, moving beyond single-shot generation to iterative refinement loops.
Generate → Evaluate → Critique → Refine → Output
↑ │
└──────────────────────────────┘
When to Use
- Quality-critical generation: Code, reports, analysis requiring high accuracy
- Tasks with clear evaluation criteria: Defined success metrics exist
- Content requiring specific standards: Style guides, compliance, formatting
Pattern 1: Basic Reflection
Agent evaluates and improves its own output through self-critique.
def reflect_and_refine(task: str, criteria: list[str], max_iterations: int = 3) -> str:
"""Generate with reflection loop."""
output = llm(f"Complete this task:\n{task}")
for i in range(max_iterations):
# Self-critique
critique = llm(f"""
Evaluate this output against criteria: {criteria}
Output: {output}
Rate each: PASS/FAIL with feedback as JSON.
""")
critique_data = json.loads(critique)
all_pass = all(c["status"] == "PASS" for c in critique_data.values())
if all_pass:
return output
# Refine based on critique
failed = {k: v["feedback"] for k, v in critique_data.items() if v["status"] == "FAIL"}
output = llm(f"Improve to address: {failed}\nOriginal: {output}")
return output
Key insight: Use structured JSON output for reliable parsing of critique results.
Pattern 2: Evaluator-Optimizer
Separate generation and evaluation into distinct components for clearer responsibilities.
class EvaluatorOptimizer:
def __init__(self, score_threshold: float = 0.8):
self.score_threshold = score_threshold
def generate(self, task: str) -> str:
return llm(f"Complete: {task}")
def evaluate(self, output: str, task: str) -> dict:
return json.loads(llm(f"""
Evaluate output for task: {task}
Output: {output}
Return JSON: {{"overall_score": 0-1, "dimensions": {{"accuracy": ..., "clarity": ...}}}}
"""))
def optimize(self, output: str, feedback: dict) -> str:
return llm(f"Improve based on feedback: {feedback}\nOutput: {output}")
def run(self, task: str, max_iterations: int = 3) -> str:
output = self.generate(task)
for _ in range(max_iterations):
evaluation = self.evaluate(output, task)
if evaluation["overall_score"] >= self.score_threshold:
break
output = self.optimize(output, evaluation)
return output
Pattern 3: Code-Specific Reflection
Test-driven refinement loop for code generation.
class CodeReflector:
def reflect_and_fix(self, spec: str, max_iterations: int = 3) -> str:
code = llm(f"Write Python code for: {spec}")
tests = llm(f"Generate pytest tests for: {spec}\nCode: {code}")
for _ in range(max_iterations):
result = run_tests(code, tests)
if result["success"]:
return code
code = llm(f"Fix error: {result['error']}\nCode: {code}")
return code
Evaluation Strategies
Outcome-Based
Evaluate whether output achieves the expected result.
def evaluate_outcome(task: str, output: str, expected: str) -> str:
return llm(f"Does output achieve expected outcome? Task: {task}, Expected: {expected}, Output: {output}")
LLM-as-Judge
Use LLM to compare and rank outputs.
def llm_judge(output_a: str, output_b: str, criteria: str) -> str:
return llm(f"Compare outputs A and B for {criteria}. Which is better and why?")
Rubric-Based
Score outputs against weighted dimensions.
RUBRIC = {
"accuracy": {"weight": 0.4},
"clarity": {"weight": 0.3},
"completeness": {"weight": 0.3}
}
def evaluate_with_rubric(output: str, rubric: dict) -> float:
scores = json.loads(llm(f"Rate 1-5 for each dimension: {list(rubric.keys())}\nOutput: {output}"))
return sum(scores[d] * rubric[d]["weight"] for d in rubric) / 5
Best Practices
| Practice | Rationale |
|---|---|
| Clear criteria | Define specific, measurable evaluation criteria upfront |
| Iteration limits | Set max iterations (3-5) to prevent infinite loops |
| Convergence check | Stop if output score isn't improving between iterations |
| Log history | Keep full trajectory for debugging and analysis |
| Structured output | Use JSON for reliable parsing of evaluation results |
Quick Start Checklist
## Evaluation Implementation Checklist
### Setup
- [ ] Define evaluation criteria/rubric
- [ ] Set score threshold for "good enough"
- [ ] Configure max iterations (default: 3)
### Implementation
- [ ] Implement generate() function
- [ ] Implement evaluate() function with structured output
- [ ] Implement optimize() function
- [ ] Wire up the refinement loop
### Safety
- [ ] Add convergence detection
- [ ] Log all iterations for debugging
- [ ] Handle evaluation parse failures gracefully
Arquivos desta skill
1Perguntas sobre a skill agentic-eval
Como instalo a skill agentic-eval no Claude Code?
Execute npx degit github/awesome-copilot/skills/agentic-eval ~/.claude/skills/agentic-eval. O Claude Code carrega skills de ~/.claude/skills (todos os projetos) ou .claude/skills (um projeto) e usa uma skill quando a descrição dela corresponde à tarefa.
Quais clientes podem usar a skill agentic-eval?
Qualquer cliente que leia o formato Agent Skills: Claude Code, Codex, Gemini CLI e claude.ai (envie como ZIP). Scripts da skill são executados apenas onde o cliente permite execução de código.