Pular para o conteúdo
Skillpedia
Agentes40 mil · #4989

agentic-eval

Ajuda seu agente a avaliar e melhorar suas próprias saídas. Ele implementa ciclos de autoavaliação para refinar resultados.

O que ela faz

Esta ferramenta ajuda a inteligência artificial a verificar e melhorar suas próprias respostas. Ela permite que a IA aprenda com seus erros e crie resultados de maior qualidade, como textos ou códigos mais precisos.

Quando usar

  • ✓Quando você precisa de respostas muito precisas (ex: relatórios, códigos).
  • ✓Quando há regras claras para saber se a resposta está boa.
  • ✓Quando a resposta precisa seguir um padrão específico (ex: estilo, formato).

Exemplo do que pedir para a IA

“Verifique este texto e me diga se ele está claro e sem erros, seguindo estas regras: [regras].”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/github/awesome-copilot/blob/main/skills/agentic-eval/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/agentic-eval/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A IA gera uma resposta, depois se autoavalia com base em critérios definidos. Se não estiver boa, ela tenta corrigir e melhora até atingir a qualidade desejada.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add github/awesome-copilot --skill agentic-eval

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/agentic-eval/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Padrões de Avaliação Agente

Padrões para autoaperfeiçoamento através de avaliação e refinamento iterativos.

Visão Geral

Padrões de avaliação permitem que agentes avaliem e melhorem seus próprios resultados, indo além da geração de um único tiro para loops de refinamento iterativos.

Generate → Evaluate → Critique → Refine → Output
    ↑                              │
    └──────────────────────────────┘

Quando Usar

  • Geração crítica de qualidade: Código, relatórios, análises que exigem alta precisão
  • Tarefas com critérios de avaliação claros: Métricas de sucesso definidas existem
  • Conteúdo que requer padrões específicos: Guias de estilo, conformidade, formatação

Padrão 1: Reflexão Básica

O agente avalia e melhora seu próprio resultado através de autocrítica.

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

Insight chave: Use saída JSON estruturada para análise confiável dos resultados da crítica.


Padrão 2: Avaliador-Otimizador

Separe a geração e a avaliação em componentes distintos para responsabilidades mais claras.

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

Padrão 3: Reflexão Específica para Código

Loop de refinamento orientado por testes para geração de código.

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

Estratégias de Avaliação

Baseada em Resultados

Avalie se o resultado atinge o esperado.

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-como-Juiz

Use LLM para comparar e classificar resultados.

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?")

Baseada em Rubrica

Pontue resultados em dimensões ponderadas.

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

Melhores Práticas

Prática Racional

…

Perguntas frequentes

Como a IA sabe se a resposta está boa?

Ela usa critérios definidos, como regras de um jogo ou uma lista de verificação, para se autoavaliar.

O que acontece se a IA não conseguir melhorar a resposta?

Ela pode tentar um número limitado de vezes. Se ainda não estiver boa, ela entrega o melhor resultado que conseguiu ou informa que não atingiu o objetivo.

Isso serve para qualquer tipo de resposta?

Funciona melhor para tarefas onde a qualidade pode ser medida objetivamente, como escrever código ou gerar relatórios com dados específicos.

Detalhes

Descrição original do autor

Patterns and techniques for evaluating and improving AI agent outputs. Use this skill when: - Implementing self-critique and reflection loops - Building evaluator-optimizer pipelines for quality-critical generation - Creating test-driven code refinement workflows - Designing rubric-based or LLM-as-judge evaluation systems - Adding iterative improvement to agent outputs (code, reports, analysis) -

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#4989
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas